เมื่อใช้งาน openssl cms - เข้ารหัส -pwri_password
เป็นไปตามกระบวนการที่อธิบายไว้ใน อาร์เอฟซี3211ซึ่งส่งผ่านรหัสผ่านที่ผู้ใช้ระบุไปยัง KDF แต่แทนที่จะใช้เอาต์พุตของ KDF นั้นเพื่อเข้ารหัสเนื้อหา กลับใช้คีย์นั้นเป็น KEK เพื่อเข้ารหัสคีย์เข้ารหัสเนื้อหาจริง (CEK) ซึ่งก็คือ แล้วรวมไว้ข้างเนื้อหา:
ลำดับ (2 องค์ประกอบ)
ตัวระบุวัตถุ 1.2.840.113549.1.7.3 ซองข้อมูล (PKCS #7)
[0] (1 องค์ประกอบ)
ลำดับ (3 องค์ประกอบ)
จำนวนเต็ม 3
SET (1 องค์ประกอบ)
[3] (4 องค์ประกอบ)
จำนวนเต็ม 0
[0] (2 องค์ประกอบ)
ตัวระบุวัตถุ 1.2.840.113549.1.5.12 pkcs5PBKDF2 (PKCS #5 v2.0)
ลำดับ (2 องค์ประกอบ)
OCTET STRING (8 ไบต์) D81093AEE45462EE
จำนวนเต็ม 2048
ลำดับ (2 องค์ประกอบ)
ตัวระบุวัตถุ 1.2.840.113549.1.9.16.3.9 pwriKEK (อัลกอริทึม S/MIME)
ลำดับ (2 องค์ประกอบ)
ตัวระบุวัตถุ 1.2.840.113549.3.7 des-EDE3-CBC (อัลกอริทึมการเข้ารหัส RSADSI)
OCTET STRING (8 ไบต์) BB96EE7A71BA5792
OCTET STRING (32 ไบต์) 569E1E845BA33D24D4243ED28B265B0974C486B813E6B9582B014D7E53DD01B9
ลำดับ (3 องค์ประกอบ)
ข้อมูลระบุวัตถุ 1.2.840.113549.1.7.1 (PKCS #7)
ลำดับ (2 องค์ประกอบ)
ตัวระบุวัตถุ 1.2.840.113549.3.7 des-EDE3-CBC (อัลกอริทึมการเข้ารหัส RSADSI)
OCTET STRING (8 ไบต์) 05AD3B1BDCB767CC
[0] (16 ไบต์) 7FA32912ECCCD7C421D4F122FD1ED172
สถานะข้อกำหนด (เน้นเพิ่ม):
§1.2.1 เหตุผล
การห่อคีย์ด้วยรหัสผ่าน เป็น กระบวนการสองขั้นตอน ขั้นแรกซึ่งรหัสผ่านที่ผู้ใช้ระบุจะถูกแปลงเป็น KEK หากจำเป็น และขั้นตอนที่สองซึ่ง KEK ใช้เพื่อเข้ารหัส CEK
แต่ฉันไม่ชัดเจน ทำไม การเข้ารหัส CMS โดยใช้รหัสผ่านทำได้ผ่านกระบวนการสองขั้นตอนนี้ มันป้องกันช่องโหว่ในอนาคตที่จะถูกค้นพบใน KDF หรือไม่?
KDF มีการใช้งานแบบใช้เกลืออยู่แล้ว ตารางสายรุ้งâ แล้วอะไรคือข้อได้เปรียบที่อยู่เบื้องหลังโมเดล CEK ที่ได้มาจากรหัสผ่านพร้อมชุดเข้ารหัสที่เข้ารหัส-CEK นี้ เกิน เพียงแค่ใช้เอาต์พุตของ KDF โดยตรงเป็น CEK?