อลิซต้องการเก็บของ คีย์: ค่า
คู่กับบ๊อบ
เป้าหมายของแบบฝึกหัดคือให้อลิซสามารถใช้ Bob เป็นบริการจัดเก็บข้อมูลที่เชื่อถือได้ แม้ว่า Bob จะไม่น่าเชื่อถือก็ตาม
A (ใช้งานอย่างถูกต้อง) MAC/AEAD/ลายเซ็น หมายความว่า Bob ไม่สามารถยุ่งเกี่ยวกับบันทึกได้
แต่การรับรองความถูกต้องขั้นพื้นฐานไม่เพียงพอเพื่อให้แน่ใจว่า Bob ส่งคืนระเบียนที่ถูกต้อง เนื่องจากไม่ได้หยุด Bob จากการเล่นซ้ำระเบียนเก่า
นี่คือตัวอย่าง สมมติว่าอยู่ที่ไหนสักแห่ง กุญแจ
และ ค่า
เป็นตัวตรวจสอบความปลอดภัยที่ใช้งานอย่างถูกต้องซึ่ง Alice สามารถใช้เพื่อตรวจสอบบันทึกที่ได้รับ:
- อลิซตั้งค่า
คีย์ 1: ค่า 1
กับบ๊อบ
- อลิซเขียนทับในภายหลัง
คีย์ 1
และชุด คีย์ 1: ค่า 2
กับบ๊อบที่ไหน ค่า2 != ค่า1
- เมื่ออลิซถาม
คีย์ 1
จากบ๊อบ เธอคาดหวังว่าจะได้รับ ค่า2
- แต่ Bob สามารถบันทึกและเล่นซ้ำได้
มูลค่า1
- การยืนยันแท็ก HMAC จะผ่านเพราะอลิซเป็นคนสร้างเรคคอร์ดทั้งสอง
ดังนั้นการตรวจสอบข้อมูลเพียงอย่างเดียวจึงไม่เพียงพอ
หนึ่งเข้าถึง nonce บางประเภทโดยธรรมชาติ
อย่างไรก็ตาม เนื่องจากเป็นไปได้ที่อลิซจะสูญเสีย (หรือไม่มี) สถานะและต้องพึ่งพาการกู้คืนสถานะนั้นจากบ็อบ (ประเด็นทั้งหมดของแบบฝึกหัด) เราต้องจัดการกับกรณีที่อลิซไม่มีสถานะและส่งผลให้ไม่มีสถานะล่าสุดอีกต่อไป ไม่เคย นี่ดูเหมือนจะเป็นส่วนที่ยาก
อลิซจะแน่ใจได้อย่างไรว่าเธอได้รับบันทึกล่าสุดจากบ็อบ
เป้าหมายอื่น ๆ / ปัญหาด้านความปลอดภัย
Bob ที่เป็นอันตรายยังคงปฏิเสธที่จะจัดเก็บบันทึกหรือลบบันทึก เมื่อพิจารณาว่าเหตุการณ์เหล่านี้เป็นเหตุการณ์ตามธรรมชาติที่อาจเกิดขึ้นระหว่างการทำงานที่ไม่เป็นอันตราย (เช่น พื้นที่ว่างของ Bob หมด) จึงไม่เป็นที่ชัดเจนว่าการป้องกันความสามารถเหล่านี้มีความจำเป็นหรือเป็นประโยชน์อย่างเคร่งครัด
อาจมีเป้าหมายอื่นเกี่ยวกับพื้นที่เก็บข้อมูล/สำรองข้อมูลที่ปลอดภัยที่ฉันไม่ทราบ คำอธิบายหรือกระดาษที่ครอบคลุมแนวคิดด้านความปลอดภัยที่เป็นมาตรฐานอย่างเป็นทางการของฟิลด์ย่อยนี้จะดีมาก