Score:-1

ใครช่วยอธิบาย "ความลับ" และ "ข้อมูล" ในอัลกอริทึมการแฮช MD5 ได้ไหม

ธง uz

ฉันกำลังศึกษาอัลกอริทึมการแฮช MD5 และมีบางสิ่งที่ฉันยังไม่เข้าใจ พวกเขาบอกว่าเซิร์ฟเวอร์มีประเภทหรือ "ความลับ" บางอย่าง และต่อท้าย "ข้อความ" (หรือ "ข้อมูล") บางอย่างต่อท้ายความลับนั้น จากนั้น อัลกอริทึมจะเพิ่มการเติมที่เหมาะสมให้กับส่วนที่เชื่อมกัน ("ความลับ" + "ข้อมูล") และกระบวนการจะดำเนินต่อไปจากที่นั่นตอนนี้ ว่ากันว่ามีเพียงเซิร์ฟเวอร์เท่านั้นที่รู้ "ความลับ" แต่ผู้โจมตีจะรู้ "ข้อมูล" เช่นเดียวกับลายเซ็น (ซึ่งเห็นได้ชัดว่าเป็นผลที่มาจากการแฮช ("ความลับ + ข้อมูล")) ตอนนี้ นี่คือสิ่งที่ฉันไม่ได้รับ:

สมมติว่าเรามี URL:

http://website.com/ABCDEFGHIJKLMNOP?parameter=something

ตอนนี้ ส่วน ABCDEFGHIJKLMNOP เป็นส่วนที่แฮชของ URL นี้ ถูกต้องไหมที่จะเรียกส่วนนั้นว่าลายเซ็น? ถ้าเป็นเช่นนั้น อะไรคือ "ข้อมูล" ที่ผู้โจมตีควรจะรู้กันแน่? URL นี้คือ "ข้อมูล" ที่ต่อท้าย "ความลับ" ที่ไหน

นอกจากนี้ เหตุใด "ข้อมูล" จึงต่อท้าย "ความลับ" ในตอนแรก เหตุใด "ความลับ" จึงไม่ถูกแฮ็กด้วยตัวเองและซ่อนไว้ไม่ให้ผู้โจมตีแทนที่จะให้ "ข้อมูล" บางอย่างแก่ผู้โจมตี

fgrieu avatar
ng flag
สิ่งหนึ่งที่แน่นอนคือ MD5 เองไม่คิดว่าจะมีสิ่งใดเป็นความลับ และไม่ได้ระบุเอนทิตี "เซิร์ฟเวอร์" MD5 เป็นฟังก์ชันสาธารณะเต็มรูปแบบที่แปลงข้อความ (บิตสตริงใดๆ ที่มีขนาดใหญ่มาก) เป็นบิตสตริง 128 บิต ข้อความนั้นเป็นความลับหรือไม่ ไม่เกี่ยวข้องกับ MD5 เอง สิ่งที่แน่นอนคือหากแฮชเป็นความลับ อย่างน้อยต้องมีข้อความบางส่วน คำถามเกี่ยวกับ MD5 ในบางบริบทที่ยังไม่ชัดเจน การกล่าวถึง "ลายเซ็น" บ่งบอกถึงสิ่งที่ซับซ้อนกว่า HMAC หรือการแฮชรหัสผ่าน เราโทรไม่ได้!!
ph flag
ลิงก์ไปยังแหล่งข้อมูลที่อ้างสิทธิ์นี้จะเป็นประโยชน์ ดังที่ fgrieu กล่าว การอ้างสิทธิ์นั้นไม่เป็นความจริงเกี่ยวกับ MD5 ต่อ se แต่อาจถูกต้องในบริบทที่กว้างขึ้น สำหรับ URL ความสำคัญของส่วนต่างๆ ขึ้นอยู่กับผู้สร้าง - คุณไม่สามารถบอกได้โดยทั่วไปว่ามีการแฮชที่เกี่ยวข้องหรือไม่ และไม่ว่าในกรณีใด "ส่วนที่แฮชของ url" ก็ไม่ได้มีความหมายมากนัก
Rikudou avatar
uz flag
@ bmm6o นี่คือลิงค์ที่กล่าวถึงสิ่งที่ฉันหมายถึงเกี่ยวกับ "ความลับ" และ "ข้อมูล" และทั้งหมดนั้น: https://blog.skullsecurity.org/2012/everything-you-need-to-know-about- แฮชความยาวส่วนขยายการโจมตี
jp flag
@Rikudou บทความนั้นเกี่ยวกับการโจมตีอัลกอริทึม [รหัสการตรวจสอบข้อความ] (https://en.wikipedia.org/wiki/Message_authentication_code) ที่ออกแบบมาไม่ดี *อิงตาม* MD5 (หรือแฮชที่ขยายได้อื่นๆ) ส่วน "ความลับ" และ "ข้อมูล" มาจากการใช้เป็น MAC ไม่ใช่จาก MD5 เอง
fgrieu avatar
ng flag
ใน _signature_ ที่เหมาะสม จะมีคีย์ส่วนตัวที่ใช้เพื่อสร้างลายเซ็น และคีย์สาธารณะสำหรับตรวจสอบลายเซ็น ไม่มีสิ่งใดใน[กรณีนี้](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)
Score:1
ธง in

ตามที่ระบุไว้ นี่เป็นเรื่องเกี่ยวกับการสร้าง $\operatorname{MAC}_k(m) = \operatorname{H}(k \| ม)$ ที่ไหน $k$ คือกุญแจ/ความลับและ $m$ คือข้อความ/ข้อมูล

ตอนนี้ ส่วน ABCDEFGHIJKLMNOP เป็นส่วนที่แฮชของ URL นี้ ถูกต้องไหมที่จะเรียกส่วนนั้นว่าลายเซ็น? ถ้าเป็นเช่นนั้น อะไรคือ "ข้อมูล" ที่ผู้โจมตีควรจะรู้กันแน่?

ไม่ใช่ "ABCDEFGHIJKLMNOP" คือข้อมูลข้อความ ผู้โจมตีรู้เพราะมันแสดงอย่างชัดเจนใน URL

นอกจากนี้ เหตุใด "ข้อมูล" จึงต่อท้าย "ความลับ" ในตอนแรก เหตุใด "ความลับ" จึงไม่ถูกแฮ็กด้วยตัวเองและซ่อนไว้ไม่ให้ผู้โจมตีแทนที่จะให้ "ข้อมูล" บางอย่างแก่ผู้โจมตี

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

ในทั้งสองกรณี คุณยังคงควรระวัง เล่นซ้ำการโจมตี. อย่างไรก็ตาม นั่นเป็นหัวข้ออื่นที่ฉันคิดว่า

โพสต์คำตอบ

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