Score:1

ทำความเข้าใจรหัสสาธารณะในใบรับรองอย่างแม่นยำ

ธง cn

ใบรับรองถูกใช้บ่อยมากในการเข้ารหัสลับ จากการค้นหา ค่อนข้างงงว่าคืออะไร อย่างแน่นอน "รหัสสาธารณะ" อยู่ในใบรับรองเป็นหลักหรือไม่ เสมอหรือไม่ คีย์การตรวจสอบลายเซ็นหรืออาจจะเป็น คีย์การเข้ารหัส?

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

โปรดเพิ่มลิงก์ไปยังแหล่งข้อมูลที่แท้จริงเพื่อสนับสนุนคำตอบของคุณและสำหรับการอ่านเพิ่มเติม

Score:3
ธง my

เป็นคีย์การตรวจสอบลายเซ็นเสมอ หรืออาจเป็นคีย์เข้ารหัสด้วย

คีย์สาธารณะของลีฟ (นั่นคือคีย์ที่เป็นของเอนทิตีปลายทาง) แน่นอนที่สุดคือสามารถเป็นคีย์เข้ารหัสได้ (หรือสำหรับเรื่องนั้น คีย์แลกเปลี่ยนค่าสาธารณะ เช่น คีย์แชร์ DH) ประเพณีดังกล่าวไม่ได้แปลกใหม่ทั้งหมด

Curious avatar
cn flag
หากเป็นคีย์เข้ารหัสอย่างแน่นอนที่สุด แล้วห่วงโซ่แห่งความไว้วางใจจะดำเนินการกับสิ่งนี้ได้อย่างไร ตัวอย่างเช่น หน้า Wikipedia (https://en.wikipedia.org/wiki/Root_certificate#/media/File:Chain_Of_Trust.svg) นั้นผิดทั้งหมด เนื่องจากใน "รหัสสาธารณะ Root CA" ใน "ใบรับรองหลัก " คือคีย์การตรวจสอบลายเซ็น (เทียบกับคีย์การเข้ารหัส) ดังที่แสดงไว้อย่างชัดเจนด้วยลูกศรพร้อมข้อความ "ยืนยันลายเซ็น" เดียวกันถือใบรับรองระดับกลาง
poncho avatar
my flag
@Curious: การแก้ไขของฉันทำให้ความหมายชัดเจนขึ้นไหม
Curious avatar
cn flag
ใช่ ถ้าจะให้พูดง่ายๆ ก็คือ คุณยอมรับว่าคีย์สาธารณะในใบรับรองหลักและใบรับรองระดับกลางเป็นคีย์การตรวจสอบลายเซ็นเสมอ ในขณะที่คีย์สาธารณะในใบรับรองเอนทิตีจะเป็นคีย์เข้ารหัส (หรือ DH keyshare G^X) คุณสามารถแนะนำฉันถึงแหล่งข้อมูลที่แท้จริงซึ่งระบุอย่างชัดเจนได้หรือไม่? คุณช่วยอธิบาย "แปลกใหม่" ได้ไหม
poncho avatar
my flag
@Curious: จริง ๆ แล้วรหัสสาธารณะเอนทิตีอาจเป็นรหัสลายเซ็นได้เช่นกัน (และนั่นเป็นเรื่องธรรมดามาก)
Curious avatar
cn flag
ตอนนี้สับสนเล็กน้อย แต่เพื่อสรุปข้อสรุปของฉันอีกครั้ง: "คีย์สาธารณะ" ในใบรับรองทั้งหมด (หมายถึงรูต ตัวกลาง และเอนทิตีปลายทาง) ส่วนใหญ่เป็นคีย์การตรวจสอบลายเซ็น และในบางกรณี คีย์สาธารณะในตอนท้าย ใบรับรองเอนทิตีสามารถเป็นรหัสเข้ารหัส (หรือคีย์แชร์ DH) ใช่ไหม อีกครั้ง คุณสามารถแนะนำแหล่งข้อมูลที่แท้จริงซึ่งระบุอย่างชัดเจนให้ฉันทราบได้ไหม
Score:2
ธง jp

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

ส่วนขยายการใช้งานคีย์สามารถระบุสิ่งใดสิ่งหนึ่งหรือทั้งหมด: digitalSignature, contentCommitment (คล้ายกับ digitalSignature แต่ความหมายแตกต่างกัน), keyEncipherment, dataEncipherment, keyAgreement, keyCertSign (ใบรับรอง CA จะมีอันนี้ & อาจมีอย่างอื่น) และ cRLSign หนึ่งที่มีการใช้งานข้อตกลงคีย์ยังสามารถมี encipherOnly หรือ decipherOnly เพื่อแก้ไขสิ่งนั้น

ตัวอย่างเช่น ฉันมีใบรับรองอีเมล (S/MIME) ที่มีชุดบิต digitalSignature, keyEncipherment และ dataEncipherment ในส่วนขยายการใช้งานคีย์ ซึ่งหมายความว่าใครบางคนสามารถใช้เพื่อตรวจสอบลายเซ็นในข้อความอีเมลที่ฉันส่งถึงพวกเขา และเข้ารหัสข้อความถึงฉันด้วย (โดยทั่วไปคือการเข้ารหัสคีย์สมมาตรแบบสุ่มที่จะใช้ในการเข้ารหัสข้อความจริง)

อีกตัวอย่างหนึ่ง สมมติว่าคุณมีใบรับรองที่มีการตั้งค่าบิต keyAgreement ในส่วนขยายการใช้งานคีย์เท่านั้น นั่นหมายความว่าไม่สามารถใช้สำหรับการตรวจสอบลายเซ็นได้ หรือ การเข้ารหัสแต่ เท่านั้น เพื่อเจรจาคีย์ผ่านอัลกอริทึม Diffie-Hellman

BTW สามารถจำกัดการใช้คีย์ด้วยวิธีอื่นได้เช่นกัน ตัวอย่างเช่น ฟิลด์ "อัลกอริทึม" ของคีย์เส้นโค้งวงรีมักจะกำหนดให้เป็น id-ecPublicKey (ซึ่งไม่มีข้อจำกัดเพิ่มเติม) แต่อาจระบุเป็น id-ecDH (หมายความว่าสามารถใช้ได้สำหรับข้อตกลงคีย์ EC Diffie-Hellman เท่านั้น ) หรือ id-ecMQV (หมายความว่าสามารถใช้กับข้อตกลงคีย์ EC Menezes-Qu-Vanstone เท่านั้น)

Score:1
ธง in

ฉันคิดว่าคุณเข้าใจถูกต้องแล้วในตอนนี้ แต่ฉันคิดว่าฉันสามารถสรุปได้อย่างกระชับ

ผู้ออกใบรับรอง ไม่ว่าจะเป็นผู้ออกใบรับรองหลักหรือ CA ย่อยใดๆ จะใช้ในการลงนามใบรับรองอื่นๆ ดังนั้นในการตรวจสอบเส้นทางความน่าเชื่อถือไปยังใบรับรองที่เชื่อถือได้ - โดยปกติจะเป็นรูท - พวกเขาจำเป็นต้องมีรหัสสาธารณะที่สามารถใช้สำหรับการตรวจสอบใบรับรองที่พวกเขามีอยู่ ออก. ซึ่งสอดคล้องกับก ส่วนขยายการใช้งานคีย์ ที่ระบุการใช้งานดังกล่าว:

เดอะ คีย์ใบรับรอง บิตถูกยืนยันเมื่อคีย์สาธารณะของหัวเรื่องคือ ใช้สำหรับตรวจสอบลายเซ็นในใบรับรองคีย์สาธารณะ ถ้า คีย์ใบรับรอง บิตถูกยืนยันแล้ว cA บิตในพื้นฐาน ส่วนขยายข้อจำกัด (ส่วน 4.2.1.9) จะต้องถูกยืนยันด้วย

เดอะ crLSign บิตถูกยืนยันเมื่อใช้คีย์สาธารณะหัวเรื่อง สำหรับการตรวจสอบลายเซ็นในรายการเพิกถอนใบรับรอง (เช่น CRL, delta CRL หรือ ARL)

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


ใบรับรองลีฟสามารถใช้กับอะไรก็ได้ ยกเว้นใบรับรองการเซ็นชื่อ (ตามคำจำกัดความ) และของ CRL (ตามแนวทางปฏิบัติทั่วไป) นั่นหมายความว่าการใช้คีย์อาจระบุสิ่งอื่น แน่นอนว่าการ พิมพ์ ของคู่คีย์และคีย์สาธารณะควรเป็นไปตามการใช้งานคีย์:

การใช้คีย์ นิดหน่อย รหัสสาธารณะต้องสามารถดำเนินการได้
ลายเซ็นดิจิทัล 0 การตรวจสอบลายเซ็น
การไม่ปฏิเสธ 1 การตรวจสอบลายเซ็น
การเข้ารหัสคีย์ 2 การเข้ารหัส (การห่อหุ้มหรือการห่อหุ้มคีย์)
การเข้ารหัสข้อมูล 3 การเข้ารหัส (โดยทั่วไปยังคงเป็นการห่อหุ้มคีย์สำหรับระบบเข้ารหัสลับแบบไฮบริด)
ข้อตกลงที่สำคัญ 4 ข้อตกลงที่สำคัญ (เช่น Diffie-Hellman)
คีย์ใบรับรอง 5 การตรวจสอบลายเซ็น
crLSign 6 การตรวจสอบลายเซ็น
เข้ารหัสเท่านั้น 7 การเข้ารหัส (การห่อหุ้มหรือการห่อหุ้มคีย์)
ถอดรหัสเท่านั้น 8 การเข้ารหัส (การห่อหุ้มหรือการห่อหุ้มคีย์)

บันทึก:

  • ใน TLS 1.3 leaf key ใช้สำหรับการรับรองความถูกต้องของเอนทิตีโดยเฉพาะซึ่งสอดคล้องกับ ลายเซ็นดิจิทัล.

ต่อไปนี้คือตารางที่ระบุว่าสามารถใช้ประเภทคีย์เฉพาะได้อย่างไร

ประเภทกุญแจ ลายเซ็น การห่อหุ้ม ข้อตกลงที่สำคัญ
คีย์ RSA ใช่ ใช่ ไม่
ปุ่ม DH ไม่ ไม่ ใช่
คีย์ DSA ใช่ ไม่ ไม่
ปุ่ม EC (เส้นโค้ง Koblitz & Prime) ใช่ ไม่ ใช่
เอ็ด25519 & เอ็ด448 ใช่ ไม่ ไม่
X25519 & X448 ไม่ ไม่ ใช่

ในกรณีของคีย์สาธารณะ การดำเนินการจะเป็นลายเซ็น การตรวจสอบ และการเข้ารหัสสำหรับสองประเพณีแรก

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

สามารถใช้อัลกอริทึมข้อตกลงที่สำคัญเพื่อใช้โครงร่างการเข้ารหัสแบบรวมหรือ IES ดังนั้นคู่คีย์ของข้อตกลงคีย์ใดๆ จึงสามารถใช้ในการเข้ารหัสทางอ้อมได้


ตารางเหล่านี้เป็นเนื้อหาต้นฉบับ X.509 RFC ไม่ได้ระบุอย่างชัดเจนว่าคีย์สาธารณะควรเข้ากันได้กับเจตนาที่ระบุไว้ในการใช้คีย์ - ดูเหมือนว่าจะบ่งบอกโดยนัยว่าควรเข้ากันได้

Curious avatar
cn flag
นี้แน่นอนรัดกุม คุณสามารถเพิ่มลิงค์ไปยังตาราง เครื่องหมายคำพูด ฯลฯ เพื่ออ่านเพิ่มเติมได้หรือไม่?

โพสต์คำตอบ

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