Score:3

AEAD ให้ประโยชน์เหนือการเข้ารหัสดิบในการตั้งค่านี้หรือไม่?

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

ฉันเชื่อว่าสิ่งนี้แตกต่างจากหัวข้อเข้ารหัสแบบคลาสสิกแล้วเป็น MAC เนื่องจากไม่มีแฮชหรือ MAC ที่เก็บไว้กับ blob เพื่อรับรองความถูกต้อง แต่แฮชเป็นข้อมูลอ้างอิงภายนอกจากที่อื่นที่ได้รับการพิสูจน์ตัวตนแล้ว (ไม่อยู่ภายใต้การแจ้งเตือนจากผู้โจมตี)

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

Score:1
ธง in

หากมีวิธีการตรวจสอบความถูกต้องของข้อความธรรมดาอยู่แล้ว เป็นไปได้ที่จะข้ามการรับรองความถูกต้องของข้อความธรรมดาหรือข้อความเข้ารหัสด้วยวิธีอื่น

แน่นอนว่ามีของ catcha อยู่บ้าง

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

นอกจากนี้ การใช้งานไม่ควรให้ข้อมูลใด ๆ เกี่ยวกับกระบวนการถอดรหัส หากเป็นเช่นนั้น การนำไปใช้งานอาจถูกโจมตีจากช่องทางด้านข้าง แย่กว่านั้นถ้าเช่น ใช้ CBC จากนั้นจึงใช้ช่องว่างภายใน ดังนั้นจึงเหมาะสมกว่าที่จะใช้ AES-CTR หรือรหัสสตรีมเช่น ChaCha20

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

โดยส่วนตัวแล้วฉันจะไม่ใช้โหมดรับรองความถูกต้องสำหรับสิ่งนี้


โปรดทราบว่าการจัดการ IV ไม่ได้ระบุไว้ในโปรโตคอลที่คุณอธิบาย ไม่จำเป็นต้องเป็นส่วนหนึ่งของแฮชหากเป็นการปกป้องข้อความธรรมดาแทนที่จะเป็นข้อความไซเฟอร์ อย่างไรก็ตาม คุณควรตรวจสอบให้แน่ใจว่าข้อความนั้นไม่ซ้ำกันสำหรับแต่ละข้อความที่เข้ารหัสด้วยคีย์เดียวกัน (และหากคุณใช้โหมด CBC ก็จะคาดเดาไม่ได้)

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

Maarten Bodewes avatar
in flag
มีคำที่ดีกว่าสำหรับ "การโจมตีแบบคาดเดาข้อความธรรมดา" หรือ "การโจมตีแบบคาดเดาข้อความ" หรือไม่
R.. GitHub STOP HELPING ICE avatar
แท้จริงแล้วคือไซเฟอร์เท็กซ์ (รวมถึง nonce และ ephemeral public) ที่ได้รับการรับรองความถูกต้องแล้ว เนื่องจากข้อมูลถูกระบุด้วยแฮชของไซเฟอร์เท็กซ์ ด้วยเหตุนี้จึงไม่มีข้อมูลสำหรับการคาดเดาข้อความธรรมดา IV ได้รับการจัดการอย่างถูกต้อง (ไม่ใช้ซ้ำ)
R.. GitHub STOP HELPING ICE avatar
หากคุณสนใจรายละเอียดเพิ่มเติมเกี่ยวกับระบบนี้ ตอนนี้เป็นสาธารณะ: https://github.com/richfelker/bakelite
Maarten Bodewes avatar
in flag
น่าสนใจมาก! คงจะดีไม่น้อยหากคุณสามารถเขียนแบบจำลองข้อมูลที่เป็นทางการมากกว่านี้ได้ ขณะนี้เป็นเพียงคำอธิบายที่เป็นข้อความและรหัส นอกจากนี้ สำหรับความน่าเชื่อถือของโปรแกรมสำรองข้อมูลเป็นข้อกังวลหลัก ฉันคาดหวังให้โค้ดบางส่วนทำการทดสอบการทำงานของรูทีนที่ใช้ หากรู้จักการออกแบบ คนอื่นๆ อาจช่วยคุณในเรื่องเหล่านี้ได้ เอกสารไวท์เปเปอร์สามารถช่วยให้ผู้คนยอมรับสิ่งนี้ได้อย่างมหัศจรรย์
Score:-1
ธง si

แฮชสร้างความสมบูรณ์ ไม่ใช่ความถูกต้อง แท็ก AEAD หรือ MAC ของไซเฟอร์เท็กซ์สร้างทั้งความสมบูรณ์และความถูกต้อง

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

หากแฮชเป็นข้อความธรรมดา คุณจะได้รับจุดอ่อนเช่นเดียวกับแบบแผน "MAC-then-encrypt" ที่คุณละเมิด หลักการการลงโทษแบบเข้ารหัส.

R.. GitHub STOP HELPING ICE avatar
ฉันคิดว่าคุณอ่านคำถามผิด แฮชเป็นที่รู้จักและเชื่อถือได้นอกแบนด์ ดังนั้นผู้โจมตีจึงคำนวณแฮชใหม่ไม่มีประโยชน์ พวกเขาจะไม่สร้างหยดที่ตรงกับแฮชที่คาดไว้เว้นแต่ฟังก์ชันแฮชจะใช้งานไม่ได้
SAI Peregrinus avatar
si flag
ปัญหาอยู่ที่ความเชื่อใจ แฮชของข้อความเข้ารหัสนอกแบนด์สามารถให้การรับรองความถูกต้องได้หากแชนเนลนอกแบนด์ให้การรับรองความถูกต้อง (MACs หรือเซ็นแฮช) แต่ถ้าไม่มีแชนเนลนอกแบนด์ก็ไม่ปลอดภัยเท่ากับ MAC ในแบนด์ทั่วไปของ ciphertext หรือแท็ก AEAD
R.. GitHub STOP HELPING ICE avatar
ช่อง OOB เป็นพื้นฐานของการตั้งค่าที่ฉันถามถึง แฮชมี *เอกลักษณ์* ของข้อมูลที่ถูกอ้างอิง (คิดแบบเดียวกับที่แฮชเป็นตัวตนในคอมไพล์หรือระบบไฟล์ที่ใช้แฮช) ฉันกำลังถามในการตั้งค่านี้ว่าจะเกิดอะไรขึ้นหากมีการป้องกัน AEAD ให้
Manish Adhikari avatar
us flag
มันอาจจะปลอดภัยถ้าช่องนอกแบนด์ของคุณเชื่อถือได้ แต่ฉันใช้ AEAD เสมอโดยไม่คำนึงถึง
R.. GitHub STOP HELPING ICE avatar
ฉันคิดว่าคุณยังขาดประเด็น หากผู้ใช้ข้อมูลได้รับแฮชที่ไม่ถูกต้อง ก็ถือเป็นการละเมิดขั้นวิกฤตแล้ว เพราะจะมีการเข้าถึงข้อมูลที่ไม่ถูกต้อง ตัวอย่างเช่น พวกเขาอาจโหลด `$malware_sample` แทนที่จะเป็น `$trusted_script`ในการตั้งค่าที่นี่ แนวคิดของความถูกต้องดูเหมือนไม่มีความหมายหากไม่มีความถูกต้องของข้อมูลอ้างอิง
R.. GitHub STOP HELPING ICE avatar
ยิ่งไปกว่านั้น - ฉันตัดสิ่งนี้ออกจากคำถามเพราะฉันคิดว่ามันไม่เกี่ยวข้อง แต่บางทีฉันไม่ควรมี - คีย์สมมาตรที่ blobs เข้ารหัสด้วยไม่ใช่คีย์ที่แบ่งปันล่วงหน้า แต่เป็นเอาต์พุตของการเข้ารหัสคีย์สาธารณะ ด้วยเหตุนี้ ใครก็ตามที่ทราบคีย์สาธารณะสามารถสร้าง blob ด้วยแท็ก AEAD ที่ถูกต้องได้ แต่วิธีนี้ไม่มีประโยชน์เนื่องจากแฮชที่ได้จะไม่ตรงกับกระบวนการใดๆ ที่ blob กำลังมองหาอยู่
SAI Peregrinus avatar
si flag
แฮชไม่ได้บอกว่าใครสร้างแฮช หากแชนเนลที่เชื่อถือได้ให้ความถูกต้อง (เฉพาะบุคคลที่ได้รับการรับรองความถูกต้องเท่านั้นที่สามารถส่งข้อความบนแชนเนลได้ และผู้โจมตีไม่สามารถแก้ไขข้อความได้) แฮชก็ทำเช่นนั้นเช่นกัน หากข้อใดข้อหนึ่งไม่เป็นความจริง แสดงว่าแฮชไม่เพียงพอ และคุณต้องการแท็ก MAC หรือ AEAD นอกจากนี้ AEAD มักจะเร็วกว่าการแฮชข้อความไซเฟอร์มาก เนื่องจากโดยปกติแล้วคุณจะต้องประมวลผลข้อมูลเพียงครั้งเดียวแทนที่จะเป็นสองครั้ง
R.. GitHub STOP HELPING ICE avatar
@SAIPeregrinus: ไม่ใช่คำถามของ "แฮชหรือ AEAD" แฮชเป็นสิ่งจำเป็นโดยพื้นฐาน (โครงสร้างประเภทต้นไม้ Merkle) และคำถามก็คือว่า AEAD จะเพิ่มมูลค่าหรือไม่ แต่ฉันคิดว่ามันชัดเจนว่าไม่

โพสต์คำตอบ

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