Score:12

ความขัดแย้งแฮชในไฟล์ภาพที่มีข้อความแฮช?

ธง cn

เป็นไปได้หรือไม่ที่จะใส่แฮชไดเจสต์ในรูปภาพ โดยที่แฮชของรูปภาพนั้นเป็นไดเจสต์เดียวกัน

เมื่อเราวาดข้อความของแฮชในภาพ แน่นอนว่าเราจะเปลี่ยนแฮช ของ ภาพในเวลาเดียวกัน เนื่องจากอย่างที่เราทราบ การเปลี่ยนแปลงเพียงเล็กน้อยกับอินพุตของฟังก์ชันแฮชทำให้เกิดการเปลี่ยนแปลงที่สำคัญในเอาต์พุต

ฉันทราบด้วยว่าฟังก์ชันแฮชนั้นไม่สามารถย้อนกลับได้

ฉันคิดเรื่องนี้ในขณะที่เรียนรู้การประมวลผลภาพ ฉันต้องการใส่ข้อความที่มีค่าของแฮชรูปภาพใกล้กับด้านบนของรูปภาพ

มีวิธีแก้ไขเพื่อให้บรรลุวัตถุประสงค์ของฉันหรือไม่?

ป้อนคำอธิบายรูปภาพที่นี่

xk flag
จากความคิดเห็นของคุณเกี่ยวกับคำตอบที่มีอยู่: "จริง ๆ แล้ว จุดประสงค์ของฉันไม่ใช่เหตุผลด้านความปลอดภัย แต่เพื่อโน้มน้าวใจคนที่เดาว่าภาพนี้กำลังพูดถึงอะไร ถ้าฉันบอกคำตอบว่า 'อกหัก' หลังจากที่พวกเขายอมจำนน แน่นอนว่าพวกเขาไม่เชื่อฉัน นั่นเป็นเหตุผลที่ฉันใส่แฮชไว้ในภาพ" ถ้าเป้าหมายคือการมีคำมั่นสัญญา (ในข้อความ `broken heart`) เหตุใดจึงไม่ใส่แฮชของสิ่งที่คุณให้คำมั่นไว้ในภาพก็เพียงพอแล้ว เหตุใด *ตัวรูปภาพเอง* จึงต้องแฮชสิ่งเดียวกับที่คุณกำหนดด้วย
cn flag
อัลกอริธึมการแฮชสมัยใหม่ทั้งหมดได้รับการออกแบบมาเพื่อลดความเป็นไปได้นี้ สิ่งที่คุณขอคือการหาอัลกอริทึมการแฮชที่ไม่มีการต่อต้าน [การโจมตีแบบพรีอิมเมจ](https://en.wikipedia.org/wiki/Preimage_attack) นี่เป็นเหตุผลว่าทำไม ข้อความที่ลงนาม PGP จึงรวมข้อความทั้งหมดในอีเมล *ยกเว้น* สำหรับลายเซ็น เป็นไปไม่ได้ที่จะคำนวณลายเซ็นที่มีตัวเองอยู่ในข้อความ อย่างน้อยก็เท่าที่เราทราบ
Joseph Sible-Reinstate Monica avatar
https://news.ycombinator.com/item?id=13823704
Score:13
ธง in

มีวิธีแก้ไขอย่างไรเพื่อให้บรรลุวัตถุประสงค์ของฉัน?

เราสามารถจัดรูปแบบคำถามของคุณให้เป็นรูปแบบทั่วไปได้ดังนี้

ค้นหาข้อความที่มีแฮชอยู่ภายใน $$\text{digest-value} = \operatorname{Hash}(\text{บางส่วน| ค่าย่อย | ส่วนอื่นๆ)})$$

เมื่อคุณเปลี่ยนข้อความ ค่าแฮชจะเปลี่ยนไป สิ่งนี้ไม่สามารถทำได้ด้วยฟังก์ชันแฮชการเข้ารหัสเนื่องจากการค้นหาอยู่เหนือสิ่งอื่นใด

คุณสามารถทำอะไรได้บ้าง;

  • หากเป็นข้อความแฮชจริงๆ 16 ค่าฐานสิบหกจากนั้นคุณพยายามอย่างเต็มที่ $2^{64}$ ค่าที่ตรงกัน เราอาจถือว่าคุณใช้ SHA-256 และตัดแต่งผลลัพธ์ ข้อเสียคือสิ่งนี้ เราไม่รู้ว่า SHA-256 ที่ตัดแต่งแล้วจะบรรลุค่าทั้งหมด

    ถ้าใครแฮช $2^k$ ค่าและการตัดแต่งเพื่อ $k-บิต$ จากนั้นเนื่องจากการคาดหวังการชนกันโดยความขัดแย้งวันเกิด เราไม่คาดหวังว่าค่าทั้งหมดจะเกิดขึ้น

    ดังนั้นสิ่งนี้อาจไม่มีวิธีแก้ปัญหาสำหรับทุกภาพ สิ่งนี้ยังต้องใช้งานอีกมาก

    หากข้อความแฮชมีขนาดจริง จะไม่สามารถดำเนินการตามข้างต้นได้

  • ใช้บางส่วนของภาพซึ่งคล้ายกับกระดาษ PUF พวกเขาสกัดพื้นผิวของกระดาษด้วยเครื่องสกัดแบบฟัซซี จากนั้นจึงเซ็นกระดาษในส่วนที่ไม่ได้ทำการสกัด

    ใช้ส่วนของรูปภาพเพื่อคำนวณค่าแฮช จากนั้นพิมพ์ค่าแฮชในส่วนที่ไม่ได้คำนวณแฮช

  • ใช้ภาพซ้อนกัน. เลเยอร์หนึ่งประกอบด้วยรูปภาพที่สามารถแฮชส่วนทั้งหมดได้และเลเยอร์บนสามารถมีค่าได้

    ผู้ใช้อาจประมวลผลเลเยอร์ได้ยาก แต่คุณสามารถใช้เทคนิคการเขียนโปรแกรมเช่นในหน้าเว็บ สามารถเพิ่มข้อความบนรูปภาพด้วย HTML และ CSS.

จุดประสงค์ของฉันคือทำให้บางคนง่ายขึ้นโดยที่พวกเขาไม่ต้องแฮชด้วยตนเอง

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

Maarten Bodewes avatar
in flag
ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้[ย้ายไปแชท](https://chat.stackexchange.com/rooms/133668/discussion-on-answer-by-kelalaka-hash-paradox-in-an-image-file-that-contain- กัญชา).
Score:9
ธง in

มีความพยายามอย่างน้อยสองครั้งที่ประสบความสำเร็จในการสร้างภาพ GIF ที่แสดงแฮช MD5 ของตนเอง:

แฮชควินโดย spq

แฮชควินโดย spq

hashquine โดย Copyheart Rogdham

Hashquine โดย Copyheart Rogdham

คุณสามารถดาวน์โหลดทั้งสองไฟล์และตรวจสอบว่าไฟล์ md5sum แฮชเท่ากับแฮชที่แสดงในภาพ

สิ่งเหล่านี้ขึ้นอยู่กับความจริงที่ว่าการชนกันของ MD5 นั้นเกิดขึ้นได้ง่ายในปัจจุบัน และข้อเท็จจริงที่ว่ารูปแบบ GIF เป็นลำดับของเฟรม GIFs ประกอบด้วยข้อมูลภาพเคลื่อนไหว 32 ชิ้น แต่ละอันจะคำนวณเป็น 16-way MD5 multicollision นั่นคือมี 16 อันที่แตกต่างกันซึ่งสร้างแฮชเดียวกัน แต่แสดงเลขฐานสิบหกที่แตกต่างกัน ดังนั้น GIF จึงถูกสร้างขึ้นโดยการคำนวณและเชื่อมโยงการชนกันแบบ 16 ทางทั้ง 32 รายการเข้าด้วยกัน คำนวณแฮชที่เป็นผลลัพธ์ของไฟล์ จากนั้นเลือกชิ้นที่สร้างผลลัพธ์ที่ต้องการกล่าวอีกนัยหนึ่ง ความยืดหยุ่นของรูปแบบ GIF และจุดอ่อนของ MD5 ทำให้สามารถเลือกแฮชที่แสดงได้ครั้งละหนึ่งหลักโดยไม่กระทบต่อแฮชของไฟล์ภาพ

โดยหลักการแล้ว ผลลัพธ์ที่คล้ายคลึงกันสามารถทำได้สำหรับฟังก์ชันแฮชอื่นๆ ตราบเท่าที่มันทำให้เกิดการชนกันได้ง่าย ตัวอย่างเช่น การทำเช่นนี้กับกลุ่มแฮช CRC จะเป็นเรื่องง่าย เนื่องจากง่ายต่อการชนกัน (เพียงแค่แก้สมการเชิงเส้น) อย่างไรก็ตาม สำหรับฟังก์ชันแฮชที่ป้องกันการชนกันในปัจจุบัน เช่น SHA-256 นั้นเป็นไปไม่ได้ในการคำนวณ

รูปแบบไฟล์อื่นๆ สามารถถูกโจมตีด้วยวิธีนี้ได้เช่นกัน ตัวอย่างเช่น ฉบับที่ 14 ของวารสาร PoC||GTFO แสดงแฮช MD5 ของตัวเองบนหน้าปกของ PDF: https://www.alchemistowl.org/pocorgtfo/pocorgtfo14.pdf. PostScript และแม้แต่รูปแบบ NES ROM ก็สามารถถูกโจมตีได้เช่นเดียวกันด้วยเทคนิครูปแบบไฟล์ อ่านวารสารสำหรับรายละเอียดทางเทคนิคเพิ่มเติม

kelalaka avatar
in flag
ใช่ ต้องใช้ GIF ที่ไม่สามารถใช้ได้กับไฟล์ภาพมาตรฐาน
in flag
ฉันค่อนข้างแน่ใจว่ารูปแบบ GIF เป็น "ไฟล์ภาพมาตรฐาน"; เป็นที่ยอมรับอย่างกว้างขวางในเบราว์เซอร์และเครื่องมือรูปภาพ และพบได้ทั่วไปบนอินเทอร์เน็ต ใช่ วิธีนี้ใช้ไม่ได้กับทุกรูปแบบ เช่น BMP อาจใช้งานไม่ได้ แต่ฉันจะไม่แปลกใจเลยถ้าคุณสามารถทำให้เทคนิคที่คล้ายกันนี้ใช้งานได้มากกว่าแค่ GIF (มี hashquines สำหรับ PDF, PS และอื่น ๆ อยู่แล้ว)
kelalaka avatar
in flag
ฉันควรจะบอกว่าไม่ใช่ภาพเคลื่อนไหวที่เป็นกุญแจสำคัญในการโจมตี อย่างไรก็ตาม ฉันคิดว่าฉันไม่สามารถหาวิธีที่จะใช้การโจมตีนี้ได้ เราควรลืม MD5 และ SHA-1 และแน่นอน ยินดีต้อนรับสู่ [cryptography.se]
in flag
PDF และ PS ไม่ใช่ภาพเคลื่อนไหว แต่การโจมตียังคงใช้ได้ ฉันจะไม่แปลกใจเลยหากมีวิธีที่ชาญฉลาดในการนำไปใช้กับ PNG หรือ JPEG โดยใช้รูปแบบในทางที่ผิด
kelalaka avatar
in flag
ข้อเสียเปรียบเพียงอย่างเดียว OP กำลังขอแฮชเฉพาะ ไม่ใช่แฮชแบบสุ่มที่เกิดจากการชนกัน คุณสามารถดูสิ่งนี้ได้จากความคิดเห็นที่ย้ายเข้าสู่แชทใต้คำตอบของฉัน หรือในส่วนสุดท้ายของคำตอบในส่วนที่ยกมา
kelalaka avatar
in flag
เมื่อไรก็ตามที่รูปแบบข้อมูลเปิดให้ใช้งานได้อย่างอิสระ การโจมตีนี้จะได้ผล
ph flag
jpa
สิ่งนี้อาจเป็นไปได้ในรูปแบบบิตแมปด้วยวิธีนี้: สร้างสองส่วนขนาด 32x RGB32 พิกเซล หนึ่งสำหรับพื้นหน้าและอีกชิ้นสำหรับสีพื้นหลัง สุ่มบิตที่มีความไวน้อยที่สุดของแต่ละพิกเซลจนกว่าคุณจะพบการชนกันของ MD5 ระหว่างพื้นหน้าและพื้นหลัง (มีอัลกอริทึมเฉพาะเพื่อเพิ่มความเร็วให้เร็วขึ้น) ประกอบชิ้นส่วนกลับไปกลับมาเพื่อให้ได้ภาพที่คุณต้องการ ผลลัพธ์ในบล็อกข้อความความละเอียดต่ำ
in flag
@jpa: นั่นเป็นความคิดที่ดี ฉันคิดว่าถ้าคุณมีความอดทน *มาก* คุณสามารถใช้การชนกันของคำนำหน้าที่เลือกเพื่อให้ได้สิ่งนี้ด้วยวิธีที่แตกต่างออกไปเล็กน้อย การโจมตีแบบปะทะกันที่เลือกโดย MD5 ช่วยให้คุณใช้คำนำหน้าที่แตกต่างกันสองรายการโดยพลการ และคำนวณบล็อกข้อมูลสุ่มสองบล็อกที่สอดคล้องกัน (ในเวลาประมาณ 1 วัน) ที่สามารถต่อท้ายเพื่อทำให้แฮช MD5 เท่ากัน สิ่งนี้สอดคล้องกับการมีขยะหนึ่งหรือสองแถวระหว่างชิ้น โชคไม่ดี แต่อาจมีวิธีซ่อน/ลดการรบกวนการมองเห็น เช่น ด้วยเทคนิคพาเล็ตต์
Score:4
ธง cn

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

https://en.wikipedia.org/wiki/Windows_Metafile_vulnerability

ฉันรู้ว่านี่ไม่ใช่คำตอบที่คุณต้องการ แต่นั่นคือสิ่งที่เป็นอยู่ คำตอบที่แท้จริงสำหรับแฮช crypto นั้นเป็นเรื่องยาก อัลกอริทึมแฮชของการเข้ารหัสลับได้รับการออกแบบมาเพื่อให้คุณไม่สามารถทำได้ และนั่นคือประเด็น หากคุณทำสิ่งนี้กับข้อมูลคงที่ได้ แฮชก็ไม่สามารถทำสิ่งที่ออกแบบมาให้ทำได้

เมื่อพิจารณาแล้ว การทำงานแบบ Quine เพียงพอ และคุณอาจได้รับ postscript หรือไฟล์ PDF ที่ทำสิ่งนี้ได้ มันค่อนข้างจะรบกวนชุมชนความปลอดภัยจนกว่าพวกเขาจะรู้เคล็ดลับ

Score:3
ธง cn

นี่เป็นหนึ่งในกรณีที่คำตอบทางคณิตศาสตร์และคำตอบ CS ค่อนข้างแตกต่างกัน รับแฮชที่ปลอดภัยด้วยการเข้ารหัส:

จากมุมมองทางคณิตศาสตร์ เมื่อกำหนดไฟล์ f และวิธีการรวมไฟล์และแฮชที่ตายตัว เราควรคาดหวังโอกาส 1/e ที่จะมีแฮช h อย่างน้อยหนึ่งแฮช ซึ่งแฮชของ h รวมกับ f คือ h ถ้าเราเปลี่ยนวิธีการรวม (ใส่ที่มุมบนซ้ายแบบสัมบูรณ์, ใส่ที่มุมขวาบน, ใส่ที่มุมบนซ้ายแต่เลื่อนไปทางขวาหนึ่งพิกเซล ฯลฯ) ความน่าจะเป็นจะเข้าใกล้ 1 อย่างรวดเร็ว .

จากมุมมองของ CS จำนวนการคำนวณที่คาดหวังจะเป็นสัดส่วนกับจำนวนเอาต์พุตแฮชที่เป็นไปได้ สำหรับแฮชที่มีขนาดเหมาะสม นั่นคือการคำนวณจำนวนมากอย่างเหลือเชื่อ จำนวนการคำนวณที่จำเป็นจะเทียบได้กับจำนวนที่จำเป็นในการรับไฟล์ที่มีแฮชเท่ากับแฮชที่เลือกไว้ล่วงหน้า หากคุณสามารถทำเช่นนี้ได้ ผู้คนจะเริ่มกังวลทันทีว่าคุณทำแฮชไม่สำเร็จด้วยวิธีใดวิธีหนึ่ง

ru flag
วิธีที่ดีในการฆ่าฟังก์ชันแฮชที่คุณไม่ชอบ - สร้างไฟล์ภาพที่มีส่วนแฮชของรูปภาพ
Score:1
ธง us

ใช้ชื่อไฟล์

เนื่องจากแฮชในรูปภาพมีไว้เพื่อเป็นทิปจริงๆ คุณจึงสามารถตั้งชื่อไฟล์ได้ 3e2c5b56e34f1979.jpg

โพสต์คำตอบ

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