ฉันเพิ่งเรียนรู้เกี่ยวกับการแบ่งพาร์ติชันของการโจมตีด้วยออราเคิลเมื่อเร็วๆ นี้ และฉันต้องการชี้แจงบางสิ่งที่ยังคลุมเครือเล็กน้อยสำหรับฉันในตอนนี้
ตาม หัวข้อนี้,
เป้าหมายคือการกู้คืนรหัสผ่าน pw พิจารณาว่าคุณต้องการทดสอบการเป็นสมาชิกของรหัสผ่านสองตัว Sâ1={pw1,pw2} สร้างคีย์สองคีย์ K1=PBKDF(salt,pw1) และ K2=PBKDF(salt,pw2) (เกลือสามารถพบได้โดยการดมกลิ่น!) ตอนนี้ใช้ Dodis et, al's approach [1] สร้างข้อความรหัส Câ² ด้วย a แท็กเพื่อให้ถอดรหัสอย่างถูกต้องภายใต้คีย์ K1 และ K2 ตอนนี้ส่งค่าการแยก V^ ไปยังเซิร์ฟเวอร์ หากเซิร์ฟเวอร์ระบุว่าการถอดรหัสสำเร็จ ให้ pwâSâ1 ด้วยการทำซ้ำขั้นตอนนี้ ผู้โจมตีสามารถค้นหารหัสผ่านใน |D|/2+1 ข้อความค้นหา ในขณะที่ค่าเริ่มต้นต้องใช้ |D| แบบสอบถาม การโจมตีนี้มีระดับ 2 หากเป็นไปได้ ระดับ k จะทำให้จำนวนการสืบค้นลดลงอย่างมาก
ในกรณีนี้ PKBDF จะใช้เพื่อรับรหัสจากรหัสผ่าน สมมติว่าฉันใช้ Argon2 ด้วยพารามิเตอร์ที่เพียงพอ (การสืบทอดมาหลายวินาที) สิ่งนี้จะไม่ทำให้ผู้โจมตีช้าลงจนถึงจุดที่ทำการโจมตีไม่ได้จริงหรือ
และจาก หัวข้อนี้ซึ่งเกี่ยวข้องกับคำถามของฉันเกี่ยวกับการเข้ารหัสไฟล์
การโจมตีนี้ต้องใช้ออราเคิลที่ส่งคืนค่าเช่นการโจมตีจากออราเคิลหากไม่มีการส่งคืน แสดงว่าไม่มีการทดสอบแม้แต่การเดารหัสผ่านออนไลน์ปกติ การโจมตี k=1 พวกเขาได้ดูห้องสมุดที่ใช้แบบแผน OPAQUE และ AEAD และเห็นว่าบางส่วนใช้ไม่ได้ ดูคอลัมน์ข้อผิดพลาดในการส่ง การโจมตี Shadowsocks นั้นน่าสนใจเนื่องจากผู้โจมตีมีช่องด้านข้างให้ทดสอบ
ดังนั้นหากไม่มี oracle พาร์ติชัน ออราเคิล การโจมตีจะไม่สามารถทำได้ แต่ในขณะเดียวกัน การเข้ารหัสไฟล์จะสามารถบอกผู้โจมตีได้ว่าข้อมูลถูกถอดรหัสสำเร็จหรือไม่ ซึ่งเกี่ยวข้องกับการแบ่งพาร์ติชันของการโจมตีด้วยออราเคิล แต่อีกครั้ง การเข้ารหัสไฟล์เป็นกิจกรรมออฟไลน์ ดังนั้นหากไม่มีเซิร์ฟเวอร์ที่เกี่ยวข้อง จะมีออราเคิลหรือไม่
การแบ่งพาร์ติชันของการโจมตีด้วย Oracle จะส่งผลต่อการเข้ารหัสไฟล์หรือไม่ โดยสมมติว่ารหัสผ่านที่ปลอดภัยได้รับมาจาก Argon2 ด้วยพารามิเตอร์ที่ปลอดภัย ขอบคุณล่วงหน้า.