Score:1

RSA เข้ารหัสคีย์ AES แล้ว AES IV ล่ะ?

ธง pl

ฉันต้องส่งคีย์ AES ไปยังไคลเอนต์ระยะไกลอย่างปลอดภัย สิ่งที่ฉันทำจนถึงตอนนี้คือการสร้างคีย์ AES แบบสุ่มและเข้ารหัสโดยใช้คีย์สาธารณะ RSA ของไคลเอ็นต์ (การเติม PKCS#1 v1.5 ได้รับการดูแลโดยไลบรารี RSA ที่ฉันใช้ CryptJS)

ฉันไม่ทราบว่า AES ต้องใช้รหัส แต่ยังต้องใช้ IV ฉันไม่รู้ว่าวิธีที่ถูกต้องในการจัดการกับ IV คืออะไร ฉันควรเข้ารหัสด้วยหรือไม่ และส่ง blobs ที่เข้ารหัสมากกว่าสองรายการ (หนึ่งอันสำหรับคีย์ AES และอีกอันสำหรับ IV) หรือฉันสามารถผนวก IV เข้ากับคีย์ AES ได้อย่างปลอดภัยและเข้ารหัสอาร์เรย์ไบต์ที่ได้

ฉันใช้ RSA 2048 บิต ดังนั้นฉันจึงสามารถเข้ารหัสเพย์โหลดขนาดยาว 128+128=256 บิตได้อย่างแน่นอน

มีนัยด้านความปลอดภัยใด ๆ หรือไม่หากฉันผนวก IV เข้ากับคีย์ AES และ RSA เข้ารหัสอาร์เรย์ไบต์ที่เป็นผลลัพธ์

ฉันไม่พบแนวทางปฏิบัติที่ดีที่สุดเกี่ยวกับเรื่องนี้ ฉันไม่รู้ด้วยซ้ำว่าปลอดภัยหรือไม่ที่จะส่ง IV ตามที่เป็นอยู่โดยไม่เข้ารหัส

Eugene Styer avatar
dz flag
IV ไม่จำเป็นต้องเป็นความลับ (ดู https://crypto.stackexchange.com/questions/8592/iv-security-clarification) ฉันไม่เห็นปัญหาในการรวมไว้ในการเข้ารหัส RSA แต่ไม่จำเป็น
Gianluca Ghettini avatar
pl flag
จับดี! กรุณาตอบคำถาม (ถ้าคุณต้องการ) และฉันจะยอมรับมัน
Fractalice avatar
in flag
การส่งแยกกันอาจทำให้เกิดปัญหาด้านความปลอดภัย เนื่องจากผู้โจมตีสามารถผสม IV และคีย์ได้
Fractalice avatar
in flag
นอกจากนี้ ตามหลักการแล้ว ผู้ส่งควรมีรหัสสาธารณะที่มีให้สำหรับ "ไคลเอ็นต์ระยะไกล" และข้อความ RSA ควรได้รับการเซ็นชื่อ มิฉะนั้น ฝ่ายตรงข้ามอาจเพียงแค่เข้ารหัสคีย์ AES ของตนเองด้วยคีย์ RSA สาธารณะ และส่งไปยัง "ไคลเอนต์ระยะไกล"
Fractalice avatar
in flag
และแน่นอนว่าการเข้ารหัส RSA ควรได้รับการเสริมความปลอดภัย (OAEP) และการเข้ารหัส AES ควรได้รับการรับรองความถูกต้อง (AES-GCM)
Maarten Bodewes avatar
in flag
@Fractalice คุณช่วยดู [คำตอบที่ได้รับจาก Eugene](https://crypto.stackexchange.com/a/95591/1172) ดูเหมือนจะขัดแย้งกับความคิดเห็นแรกของคุณ ...
Fractalice avatar
in flag
@MaartenBodewes หาก IV อยู่ข้างใน (ตามที่ Eugene แนะนำ) ดูเหมือนว่าจะทำอะไรที่ไม่ดีได้ยาก หาก RSA ได้รับการถอดรหัสและตรวจสอบอย่างถูกต้อง
Fractalice avatar
in flag
@GianlucaGhettini โปรดทราบว่าเซิร์ฟเวอร์ถอดรหัส PKCS v1.5 อนุญาตให้ถอดรหัสข้อความรหัสโดยพลการสำหรับผู้โจมตี... (การโจมตีของ Bleichenbacher)
Score:4
ธง dz

สิ่งนี้อาจจะปิดเป็นสำเนา แต่ IV ไม่จำเป็นต้องเป็นความลับ ไม่แน่ใจเกี่ยวกับแนวทางปฏิบัติที่ดีที่สุด แต่ฉันไม่เห็นปัญหาในการรวม IV ในการเข้ารหัส RSA

Score:1
ธง in

คุณไม่จำเป็นต้องมี IV แบบสุ่มหากคุณมีรหัสลับแบบสุ่มที่เปลี่ยนแปลงสำหรับทุกข้อความอยู่แล้ว ดังนั้น คำตอบใดๆ จะไม่ผิดโดยพื้นฐาน เนื่องจากไม่มีข้อกำหนดด้านความปลอดภัยสำหรับ IV อย่างไรก็ตามฉันขอแนะนำให้คุณอ่าน คำตอบนี้ จัดหาโดยหมีที่เป็นมิตรของเราก่อนที่คุณจะพบกับ BEAST ที่เป็นมิตรน้อยกว่า

อย่างไรก็ตาม ฉันจะไม่รวม IV เข้ากับคีย์อินพุต AES ด้วยเหตุผลบางประการ: มันจะไม่เข้ากันได้กับฮาร์ดแวร์ใดๆ หรือ HSM (หรือที่เก็บคีย์อื่นๆ) ที่ทำการรวมคีย์ (เช่น การเข้ารหัสคีย์ด้วยคีย์การรวม กรณีของคุณคือรหัสสาธารณะ RSA) ดังนั้นหากคุณตัดสินใจว่าคุณต้องการสิ่งนั้น คุณจะต้องเปลี่ยนโปรโตคอล มิฉะนั้น คุณจะต้องถอดรหัสและเก็บคีย์ไว้ในซอฟต์แวร์ ความจริงแล้วนี่ไม่ใช่ปัญหาใหญ่ เนื่องจากข้อมูลจะยังคงอยู่ในหน่วยความจำ แต่เป็นสิ่งที่ต้องพิจารณา

หากคุณยืนยันในการสุ่ม IV คุณสามารถใช้เช่น แฮชเหนือคีย์ที่ห่อไว้ (เช่น ข้อความไซเฟอร์เท็กซ์ RSA) เป็น IV หรือคุณสามารถได้มาจากเนื้อหาคีย์ที่ห่อเอง (โดยใช้ Key Derivation Function หรือ KDF) วิธีหลังอาจเป็นหนึ่งในวิธีที่ใช้โดยนักเข้ารหัสลับส่วนใหญ่ที่นี่ แม้ว่าจะเข้าใจและนำไปใช้ได้ยากกว่า (เช่น RSA-KEM จากนั้น HKDF-Extract จากนั้น 2 ครั้ง HKDF-Expand - หนึ่งครั้งสำหรับคีย์ อีกครั้งสำหรับ IV - แม้ว่านี่อาจเข้ากันไม่ได้กับฮาร์ดแวร์จำนวนมากเช่นกัน)


ตามที่ระบุไว้ในความคิดเห็น การมีข้อความยืนยันตัวตนมักจะค่อนข้างสำคัญ ที่มักจะต้องใช้ ลงชื่อเข้าใช้แล้วเข้ารหัสซึ่งมีความเสี่ยงที่จะถูกโจมตีจาก Oracle ทั้ง PKCS#1 และ CBC หากคุณวางแผนที่จะใช้โหมดนั้น หากคุณพิจารณาผู้รับเพียงรายเดียวและการรักษาความลับและความซื่อสัตย์ การเซ็นชื่อแบบเข้ารหัสแล้วอาจทำงานได้ดีกว่าสำหรับคุณ

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

โพสต์คำตอบ

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