Score:0

การปลอมแปลงลายเซ็นดิจิทัลบนข้อความ 60,000 ข้อความด้วยความดุร้าย

ธง us

สมมติว่าระบบปฏิบัติการใช้ลายเซ็นดิจิทัลเพื่อให้แน่ใจว่าไฟล์ปฏิบัติการสามารถตรวจสอบสิทธิ์ได้และไม่สามารถแก้ไขได้ โดยที่ลายเซ็นดิจิทัลถูกสร้างขึ้นโดยการสร้างแฮชของไฟล์ปฏิบัติการ (เช่น SHA256) เข้ารหัสแฮชด้วยคีย์ส่วนตัว (เช่น RSA) จากนั้นแนบแฮชที่เข้ารหัสและคีย์สาธารณะ (ลายเซ็น) เข้ากับไฟล์ปฏิบัติการ

สมมติว่ามีซอฟต์แวร์ 1,000 ชิ้น (จากผู้เผยแพร่หลายราย) ที่อัปเดต (โดยเฉลี่ย) เดือนละครั้งเป็นเวลา 5 ปี

ผู้โจมตีรวบรวมแฮชและลายเซ็นดิจิทัลสำหรับซอฟต์แวร์ทั้งหมด 60,000 ชิ้น ผู้โจมตีเขียนมัลแวร์โทรจันของตนเองโดยมีส่วนเสริมที่ส่วนท้ายของไฟล์เรียกทำงาน ผู้โจมตีคำนวณแฮชบางส่วนของไฟล์ปฏิบัติการ แต่หยุด (บันทึกสถานะการคำนวณแฮช) ก่อนการเติม

ผู้โจมตีจะรีเซ็ตสถานะการคำนวณแฮช เสร็จสิ้นการคำนวณแฮชอย่างรวดเร็ว จากนั้นตรวจสอบว่าแฮชตรงกับหนึ่งในลายเซ็นดิจิทัล 60,000 ลายเซ็นที่พวกเขารวบรวมไว้หรือไม่ หากไม่เป็นเช่นนั้น พวกเขาจะเพิ่มช่องว่างภายในส่วนท้ายของไฟล์เรียกทำงานและลองอีกครั้ง ผู้โจมตีทำสิ่งนี้กับคอมพิวเตอร์หลายเครื่อง (หลาย CPU) พร้อมกัน จนกว่าพวกเขาจะพบลายเซ็นของสิ่งอื่นที่สามารถใช้ลงนามมัลแวร์ได้

สิ่งนี้สามารถป้องกันได้อย่างไร?

ความแข็งแกร่งของโครงร่างการเข้ารหัสนั้นไม่สำคัญ การเพิ่มขนาดแฮชหมายความว่าผู้โจมตีจำเป็นต้องรวบรวมลายเซ็นดิจิทัลมากขึ้น และ/หรือใช้ CPU มากขึ้นเป็นเวลานานขึ้นเพื่อค้นหาลายเซ็นที่ถูกต้องสำหรับมัลแวร์ของตน สมมติว่าผู้โจมตีสามารถรับ CPU ได้มากขึ้นโดยการซ่อนจาวาสคริปต์ในหน้าเว็บยอดนิยม โดยใช้บริการคลาวด์ ซ่อนในซอฟต์แวร์ที่เผยแพร่ด้วยลายเซ็นที่ถูกต้องตามกฎหมายของตนเอง (เช่น ยูทิลิตี้การขุดสกุลเงินดิจิทัล) เป็นต้น

อัลกอริทึมแฮชที่มีอยู่แข็งแกร่งเพียงพอหรือไม่

kelalaka avatar
in flag
ที่เกี่ยวข้อง [การโจมตีหลายเป้าหมายสำหรับแฮช](https://crypto.stackexchange.com/q/75880/18298)
Score:4
ธง my

อัลกอริทึมแฮชที่มีอยู่แข็งแกร่งเพียงพอหรือไม่

ใช่; อันที่จริง อัลกอริธึมแฮชที่มีการเข้ารหัสอย่างปลอดภัย (เช่น SHA-2, SHA-3, Blake2) จะแข็งแกร่งเพียงพอ

เพื่อเน้นสิ่งนี้ ให้ฉันชี้ให้เห็นว่า MD5 นั้นแข็งแกร่งพอ ตอนนี้ MD5 ถือว่าค่อนข้างอ่อนแอ (และที่นี่ไม่มีใครรับรองการใช้งาน); อย่างไรก็ตามแม้จะมีจุดอ่อนที่ทราบแล้ว แต่ก็ยังแข็งแกร่งเพียงพอต่อการโจมตีเฉพาะนี้

MD5 มีเอาต์พุต 128 บิต (ตรงกันข้ามกับฟังก์ชันแฮชการเข้ารหัสที่เราใช้ในทางปฏิบัติ ซึ่งมีเอาต์พุตที่ใหญ่กว่ามาก) นอกจากนี้ยังมีวิธีที่ทราบกันดีในการสร้าง "การชนกัน" นั่นคือคู่ของอินพุตที่แฮช MD5 เป็นค่าเดียวกัน อย่างไรก็ตาม วิธีการเหล่านั้นถือว่าการโจมตีสามารถควบคุมอินพุตทั้งสองได้ ในกรณีนี้ ผู้เผยแพร่ที่ถูกต้องจะสร้างภาพที่ถูกต้อง และผู้โจมตีไม่สามารถแก้ไขสิ่งที่ผู้เผยแพร่ลงนาม ดังนั้นจุดอ่อนของการปะทะกันของ MD5 จึงใช้ไม่ได้ MD5 ไม่มีจุดอ่อนที่รู้จักในการโจมตี 'second preimage' หรือการโจมตี 'multitarget second preimage' (ซึ่งก็คือสิ่งนี้นั่นเอง) ดังนั้นแนวทางเดียวที่ผู้โจมตีมีคือแฮชอินพุตต่าง ๆ จนกว่าเขาจะพบการจับคู่

ตอนนี้เราคิดว่ามี $60,000 \ประมาณ 2^{16}$ ลายเซ็นที่ถูกต้อง หากผู้โจมตีแฮชเดาว่ามีประมาณ $2^{-128+16} = 2^{-112}$ ความน่าจะเป็นของการแฮชไปยังหนึ่งในเป้าหมาย กล่าวอีกนัยหนึ่ง เพื่อให้ได้โอกาสหนึ่งในพันในการค้นหารูปภาพที่แฮชไปยังเป้าหมายใดเป้าหมายหนึ่ง เขาจะต้องแฮชประมาณ $2^{102}$ ภาพ

ตอนนี้เป็นที่คาดกันว่าอุตสาหกรรมการขุด bitcoin ทั่วโลกประเมินเกี่ยวกับ $2^{68}$ แฮชต่อวินาที (จริง ๆ แล้วน้อยกว่าเล็กน้อย); นั่นหมายความว่าหากการโจมตีสามารถทุ่มเทการประมวลผลทั้งหมด [1] เพื่อโจมตีระบบของคุณ พวกเขาจะต้องดำเนินการประมาณ $2^{34}$ วินาที (หรือประมาณ 500 ปี) เพื่อรับโอกาส 1 ในพันนั้น

หากคุณสลับ MD5 ด้วยแฮชเข้ารหัสจริง 500 ปีนั้นจะกลายเป็นกรอบเวลาประเภท 'ความตายอันร้อนระอุของจักรวาล'

[1]: แน่นอน โครงสร้างพื้นฐานการขุด bitcoin ในปัจจุบันถูกสร้างขึ้นโดยใช้ SHA-256 - ฉันจะไม่สนใจรายละเอียดนั้น

us flag
คุณกำลังมองข้ามปัญหาวันเกิด? ฉันคาดหวังว่าจะได้ 1
poncho avatar
my flag
@Brendan: ดังที่ฉันได้กล่าวไว้ข้างต้น "ในกรณีนี้ ผู้เผยแพร่ที่ถูกต้องสร้างภาพที่ถูกต้องและผู้โจมตีไม่สามารถแก้ไขสิ่งที่ผู้เผยแพร่ลงนาม ดังนั้นจุดอ่อนของการปะทะกันของ MD5 จึงใช้ไม่ได้" หากสิ่งนี้ไม่เป็นความจริง (นั่นคือ ผู้โจมตีสามารถแทรกการเปลี่ยนแปลงของตนเองในสิ่งที่ผู้เผยแพร่ลงนาม) แสดงว่า MD5 อาจไม่เพียงพอ ในทางกลับกัน หากเราย้อนกลับไปที่ SHA256 (สมจริงกว่ามาก) การโจมตีแบบปะทะกันจะใช้แฮช $2^{128}$ ที่คาดไว้ ซึ่งใกล้เคียงกับจำนวนการประเมินที่เราได้รับสำหรับการโจมตีแบบหลายเป้าหมายล่วงหน้าของ MD5 - ใช้การประมาณเวลาใกล้เคียงกัน
poncho avatar
my flag
@Brendan: แน่นอน หากผู้โจมตีสามารถแทรกการเปลี่ยนแปลงของตัวเองในสิ่งที่ผู้เผยแพร่ลงนาม ทำไมเขาถึงไม่ใส่มัลแวร์ของเขาไว้ในนั้น และไม่ต้องพยายามสร้างการปลอมแปลง
us flag
อ่า คุณพูดถูก (ฉันพลาดการโจมตีวันเกิด) 1
Score:1
ธง kr

SHA-256 ทนทานต่อการโจมตีแบบพรีอิมเมจ วิธีเดียวที่จะค้นหาพรีอิมเมจที่สร้างแฮชที่กำหนดคือการบังคับให้เดรัจฉาน ทรัพยากรการคำนวณปัจจุบันที่ใช้สำหรับการขุด bitcoin ในโลกคำนวณ $2^{90}$ แฮชต่อปี ดังนั้น แม้ว่าคนทั้งโลกจะพยายามสร้างอิมเมจ (ในกรณีของคุณ เพื่อหาช่องว่างภายในโดยเฉพาะ) ด้วยแฮชที่กำหนด ก็จะไม่สามารถทำได้แม้ในสองสามล้านปี

poncho avatar
my flag
อันที่จริง "ในอีกไม่กี่ล้านปี" เป็นการมองโลกในแง่ดีมากเกินไป ที่ $2^{90}$ แฮช/ปี และ 60,000 เป้าหมาย การค้นหาจะใช้เวลา $1.5 \times 10^{45}$ ปี
kr flag
@poncho: ถูกต้อง :-) แต่ฉันเกรงว่าจะยากที่จะจินตนาการว่ามีเวลามากจริงๆ คุณสามารถพูดได้ว่ามันยาวนานกว่าที่จักรวาลมีอยู่ แต่นี่อาจเป็นเรื่องยากที่จะจินตนาการได้ อาจเป็นเรื่องยากที่จะจินตนาการถึงล้านปีและพันปีอาจจะดีกว่า :-) นั่นเป็นเหตุผลที่ฉันหวังว่าการใช้ถ้อยคำดังกล่าวจะทำให้คำตอบมีประโยชน์มากขึ้น
poncho avatar
my flag
ฉันเข้าใจแล้ว แต่คำพูดของคุณฟังดูเหมือน "ดวงดาวอยู่ห่างออกไปมากกว่า 10 เมตร" ฉันคิดว่าเป็นเรื่องจริงในทางเทคนิค แต่ก็เป็นการพูดเกินจริงในการ์ตูนด้วย...

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา