Score:2

AES CBC: เมื่อใดควรใช้ IV ใหม่

ธง cn

ฉันกำลังพยายามหาว่าเมื่อใดควรใช้ IV ใหม่สำหรับการสื่อสาร AES-CBC และวิธีการของฉันปลอดภัยหรือไม่

นี่คือ อ้าง จาก Thomas Pornin จากคำถามที่คล้ายกัน:

สรุป: คุณต้องเลือก IV ใหม่แบบสุ่ม (ที่มี a ตัวสร้างที่แข็งแกร่งในการเข้ารหัส) เมื่อใดก็ตามที่คุณกำลังจะเข้ารหัส ข้อมูลข้อความธรรมดาที่ได้มาหลังจากส่งผ่านสาย บล็อกที่เข้ารหัสก่อนหน้านี้

ฉันต้องการคำชี้แจงเกี่ยวกับเรื่องนี้ การตั้งค่าปัจจุบันของฉันคืออุปกรณ์สองเครื่องที่สื่อสารระหว่างกันโดยใช้รูปแบบคำสั่ง/คำตอบ (หลักและรอง) ทาสมีตัวสร้างตัวเลขสุ่มที่แท้จริง

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

ปลอดภัยหรือไม่? ขอบคุณ!

cn flag
เนื่องจากคุณไม่ได้สร้างช่องทางที่ปลอดภัยระหว่างมาสเตอร์และสเลฟที่ร้องขอ IV จากสเลฟผ่านช่องทางที่ไม่มีการป้องกัน หมายความว่าผู้โจมตีสามารถจัดการ (-> เลือก) IV ได้ มันแย่กว่าตัวสร้างสุ่มหลอกทุกตัวที่คุณสามารถใช้ได้ในเครื่อง
earthling avatar
cn flag
คุณหมายถึงการใช้การรับรองความถูกต้องเช่น HMAC หรือไม่ ฉันละเลยสิ่งนี้สำหรับตัวอย่างนี้ พิจารณาว่ามันมีอยู่
kelalaka avatar
in flag
อันตราย.... [เหตุใด CBC ที่มี IV ที่คาดการณ์ได้จึงถือว่าไม่ปลอดภัยจากการโจมตีแบบข้อความธรรมดาที่เลือก](https://crypto.stackexchange.com/q/3883/18298)
earthling avatar
cn flag
หาก IV ที่ร้องขอถูกส่งด้วยการรับรองความถูกต้อง เช่น HMAC ฝ่ายตรงข้ามไม่สามารถบังคับให้ใช้ IV ซ้ำได้ใช่ไหม
foreverska avatar
cn flag
สิ่งที่ดีที่สุดที่ฉันสามารถตีความได้คือคุณหมายความว่าสเลฟจำเป็นต้องส่ง IV ภายใต้ HMAC และมาสเตอร์จะไม่ดำเนินการต่อหาก HMAC ล้มเหลว หากผู้โจมตี (แสร้งทำเป็นทาส) เพียงแค่เล่นซ้ำข้อความ HMACed เดิมซ้ำแล้วซ้ำเล่า ซึ่งจะผ่านการตรวจสอบนี้และบังคับให้ใช้ IV ซ้ำ นอกเสียจากว่านายจะออกคำท้าที่ต้องรวมไว้กับ IV ดังนั้นคุณจึงมีกลไกการตอบสนองต่อความท้าทายสำหรับกลไกการตอบสนองต่อความท้าทายของคุณในฐานะตัวช่วยในการเข้ารหัสที่ใช้ไม่ดี กรณีที่ดีที่สุดของคุณคือใช้การเข้ารหัสตามที่กำหนด (โดยสุ่ม IV ทั้งหมด) และรวมความท้าทายเป็นข้อความล้วน
Score:3
ธง cn

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

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

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

Score:2
ธง fr

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

หากอุปกรณ์หลักของคุณมี CSPRNG บางประเภท ไม่ว่าจะป้อนโดยตัวสร้างตัวเลขสุ่มจริงหรือไม่ก็ตาม คุณก็สามารถใช้สิ่งนั้นได้ มิฉะนั้น หากคุณสามารถมีตัวนับถาวรได้ วิธีง่ายๆ วิธีหนึ่งในการจัดการกับสิ่งนี้คือการใช้ฟังก์ชันการสืบทอดคีย์ เช่น HKDF เพียงใช้รหัสที่ใช้ร่วมกันของคุณเป็นอินพุตเอนโทรปีในฟังก์ชันการหาค่าของคีย์ ใช้ตัวนับเป็นเกลือ แล้วสร้าง ทั้งสอง รหัสใหม่และ IV สำหรับแต่ละข้อความ ส่งตัวนับแทน IV พร้อมข้อความ และอีกฝั่งสามารถรับรหัสของคุณได้

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

คุณยังสามารถใช้โปรโตคอลวงล้อคู่ได้แม้ว่าจะซับซ้อนกว่าก็ตาม นอกจากนี้ยังต้องการให้ทั้งสองฝ่ายมี CSPRNG อย่างน้อยในขั้นต้นเนื่องจากคุณต้องการคีย์ Diffie-Hellman

โพสต์คำตอบ

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