Score:0

OPENSSL CMS: พับลิกคีย์ของข้อมูล, พับลิกคีย์ของใบรับรอง; พวกเขาเหมือนกันหรือไม่?

ธง cn

ฉันอ่าน rfc5652 และฉันสร้างข้อมูลที่ห่อหุ้มผ่าน openssl:

openssl cms - เข้ารหัส - ในธรรมดา -aes256 -recip certificate.pem -outform DER -out enveloped-data.ber

จากนั้นฉันตรวจสอบรหัสสาธารณะ ขั้นแรก นี่คือรหัสสาธารณะของใบรับรอง

ป้อนคำอธิบายรูปภาพที่นี่

และเป็นกุญแจสาธารณะของข้อมูลที่ห่อหุ้มไว้

ป้อนคำอธิบายรูปภาพที่นี่

ดังนั้น ฉันเข้าใจว่าข้อมูลที่ห่อหุ้มมีรหัสสาธารณะของผู้รับ (รหัสผับของใบรับรอง) มันใช่เหรอ?

ถ้าอย่างนั้นทำไมสองปุ่มข้างบนถึงแตกต่างกัน?

Score:2
ธง cn

ไม่ ข้อมูลห่อหุ้ม CMS ไม่มีคีย์สาธารณะของผู้รับ (ข้อมูลที่ห่อหุ้มและข้อมูลที่เข้ารหัสนั้นแตกต่างกัน แม้ว่า OpenSSL จะใช้อย่างสับสนก็ตาม - เข้ารหัส และ -ถอดรหัส สำหรับอดีตและ -EncryptedData_encrypt และ -EncryptedData_decrypt สำหรับอันหลัง!) ไม่จำเป็นต้อง; ข้อความถูกส่งไปยังผู้รับและผู้รับทราบรหัสของตนเอง

Enveloped-data สำหรับผู้รับที่มีคีย์ ECC จะใช้ ES-ECDH หรือ 1-pass ECMQV และ OpenSSL จะเลือกอันแรก ดู RFC5753 3.1. ตามที่ระบุไว้นั่นหมายความว่า RecipientInfo ใช้ KeyAgreeRecipientInfo ตัวเลือก (พร้อมแท็ก 1) ตามที่ดำเนินการโดย OpenSSL ประกอบด้วย:

  • รุ่น 3

  • ผู้ริเริ่ม (แท็ก 0 ชัดเจน) ตัวเลือก คีย์ผู้ริเริ่ม (แท็ก 1 ลำดับโดยนัย) ที่มี AlgorithmIdentifier และ BITSTRING ซึ่งมีตามที่ RFC5753 ระบุว่า "คีย์สาธารณะ EC ชั่วคราวของผู้ส่ง" โปรดทราบว่านี่คือคีย์ของผู้ส่ง ไม่ใช่ของผู้รับ และเป็นคีย์ชั่วคราว ดังนั้นจึงไม่อยู่ในใบรับรองใดๆ แม้แต่สำหรับผู้ส่ง

  • สหราชอาณาจักร (แท็ก 1 ชัดแจ้ง) ไม่บังคับและไม่ได้ใช้

  • อัลกอริทึมการเข้ารหัสคีย์ AlgorithmIdentifier สำหรับ dhSinglePass และการตัดคีย์แบบสมมาตร

  • ผู้รับเข้ารหัสคีย์ ลำดับของลำดับแต่ละรายการมี ผู้ออกและหมายเลขซีเรียล (ชื่อเฉพาะและจำนวนเต็ม) และ เข้ารหัสคีย์ (BITSTRING ซึ่งเป็นคีย์ข้อมูลที่เป็นความลับ DH) นี้ ระบุ คีย์ผู้รับ แต่ไม่มี

ดูเหมือนว่าคุณได้ละเว้นหรือระงับอย่างน้อยส่วนหนึ่งของ ผู้รับเข้ารหัสคีย์ ข้อมูลในรูปภาพของคุณ แต่ก็ยากที่จะบอกได้อย่างแน่นอน นี่คือ แม่นยำ แสดง (รวมถึง KARI) ของข้อความที่ฉันสร้าง:

    0:d=0 hl=4 l= 280 ข้อเสีย: ลำดับ
    4:d=1 hl=2 l= 9 prim: OBJECT :pkcs7-envelopedData
   15:d=1 hl=4 l= 265 ข้อเสีย: ต่อ [ 0 ]
   19:d=2 hl=4 l= 261 ข้อเสีย: ลำดับ
   23:d=3 hl=2 l= 1 พริม: INTEGER :02
   26:d=3 hl=3 l= 202 ข้อเสีย: SET
   29:d=4 hl=3 l= 199 ข้อเสีย: ต่อ [ 1 ]
   32:d=5 hl=2 l= 1 พริม: INTEGER :03
   35:d=5 hl=2 l= 65 ข้อเสีย: ต่อ [ 0 ]
   37:d=6 hl=2 l= 63 ข้อเสีย: ต่อ [ 1 ]
   39:d=7 hl=2 l= 9 ข้อเสีย: ลำดับ
   41:d=8 hl=2 l= 7 prim: OBJECT :id-ecPublicKey
   50:d=7 hl=2 l= 50 เบื้องต้น: BIT STRING
  102:d=5 hl=2 l= 28 ข้อเสีย: ลำดับ
  104:d=6 hl=2 l= 9 เบื้องต้น: OBJECT :dhSinglePass-stdDH-sha1kdf-scheme
  115:d=6 hl=2 l= 15 ข้อเสีย: ลำดับ
  117:d=7 hl=2 l= 11 พริม: OBJECT :id-smime-alg-CMS3DESwrap
  130:d=7 hl=2 l= 0 เบื้องต้น: NULL
  132:d=5 hl=2 l= 97 ข้อเสีย: ลำดับ
  134:d=6 hl=2 l= 95 ข้อเสีย: ลำดับ
  136:d=7 hl=2 l= 51 ข้อเสีย: ลำดับ
  138:d=8 hl=2 l= 45 ข้อเสีย: ลำดับ
  140:d=9 hl=2 l= 43 ข้อเสีย: SET
  142:d=10 hl=2 l= 41 ข้อเสีย: ลำดับ
  144:d=11 hl=2 l= 3 พริม: OBJECT :commonName
  149:d=11 hl=2 l= 34 เบื้องต้น: PRINTABLESTRING :(REDACTED)
  185:d=8 hl=2 l= 2 พริม: INTEGER :(REDACTED)
  189:d=7 hl=2 l= 40 prim: OCTET STRING [การถ่ายโอนข้อมูล HEX]:847B0D796D954C05AF37E1AEFE11C7F6762FB8CE2A891AD22B5646E79E95B556EDEC5A240ACCC621
  231:d=3 hl=2 l= 51 ข้อเสีย: ลำดับ
  233:d=4 hl=2 l= 9 พริม: OBJECT :pkcs7-data
  244:d=4 hl=2 l= 20 ข้อเสีย: ลำดับ
  246:d=5 hl=2 l= 8 พริม: OBJECT :des-ede3-cbc
  256:d=5 hl=2 l= 8 prim: OCTET STRING [การถ่ายโอนข้อมูล HEX]:9780611D4883D5B1
  266:d=4 hl=2 l= 16 เบื้องต้น: ต่อ [ 0 ]
cn flag
อ้าว ตอนเวอร์ชั่น 3 มันทำงานโดยใช้ DH เหรอ? แล้วรหัสสาธารณะของผู้ริเริ่มจะใช้สำหรับการถอดรหัสหรือไม่? นอกจากนี้เส้นโค้งยังเหมือนกับของผู้รับ?
dave_thompson_085 avatar
cn flag
ไม่ เมื่อแท็ก RecipientInfo เป็น 1 อัลกอริทึมข้อตกลงคีย์จะถูกกำหนดโดย keyEncryptionAlgorithm ซึ่ง OpenSSL ระบุเป็น (EC)DH รุ่น KARI เป็น 3 เสมอตามที่ระบุไว้ทั้งใน RFC5652 และ RFC5753 ใช่ สำหรับ DH ในโหมด E-S ผู้รับจะใช้พับลิกคีย์ชั่วคราวของผู้เริ่มต้นและไพรเวตคีย์ของตัวเองเพื่อคำนวณความลับที่ใช้ร่วมกันและถอดรหัส ดูส่วนที่เหลือของส่วนที่ 3.1 ใน RFC5753 ที่ฉันชี้ให้คุณดู ใช่ สำหรับ ECDH ทั้งสองฝ่ายใช้เส้นโค้งเดียวกัน (หรือกลุ่มเดียวกันสำหรับ DH ทุกประเภท)
cn flag
ขอขอบคุณ! :) ฉันจะอ่าน RFC5753 ตอนนี้

โพสต์คำตอบ

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