โครงสร้างพื้นฐานกุญแจสาธารณะ
โครงสร้างพื้นฐานกุญแจสาธารณะ (PKI) คือระบบของหน่วยงานออกใบรับรอง ใบรับรองดิจิทัล และนโยบายที่เชื่อมโยงกุญแจสาธารณะเข้ากับตัวตนที่ได้รับการยืนยัน ทำให้คู่สัญญาที่ไม่เคยพบกันสามารถเชื่อถือกุญแจของกันและกันได้
Definition
โครงสร้างพื้นฐานกุญแจสาธารณะคือชุดของบทบาท นโยบาย ฮาร์ดแวร์ และซอฟต์แวร์ที่จำเป็นในการสร้าง แจกจ่าย จัดเก็บ ตรวจสอบ และเพิกถอนใบรับรองดิจิทัลที่เชื่อมโยงกุญแจสาธารณะเข้ากับตัวตน
Scope
หัวข้อนี้ครอบคลุมส่วนประกอบและการทำงานของ PKI: ใบรับรอง X.509, หน่วยงานออกใบรับรองและสายโซ่แห่งความน่าเชื่อถือ, การออกและการตรวจสอบใบรับรอง, การเพิกถอน (CRLs, OCSP) และกลไกความโปร่งใส นอกจากนี้ยังกล่าวถึงแบบจำลองความน่าเชื่อถือที่เป็นรากฐานของ web PKI และทางเลือกอื่น ๆ (web of trust) โดยไม่รวมถึงอัลกอริทึมลายเซ็นดิจิทัลที่ใบรับรองใช้ และโปรโตคอลช่องทางที่ปลอดภัย (TLS) ที่ใช้ใบรับรอง ซึ่งทั้งสองส่วนนี้จะกล่าวถึงแยกต่างหาก
Core questions
- ฝ่ายที่พึ่งพาจะมั่นใจได้อย่างไรว่ากุญแจสาธารณะเป็นของตัวตนที่เฉพาะเจาะจง?
- สายโซ่ใบรับรองและหน่วยงานรากสร้างความน่าเชื่อถือแบบลำดับชั้นได้อย่างไร?
- ใบรับรองได้รับการตรวจสอบอย่างไร และการเพิกถอนจะจัดการอย่างไรเมื่อกุญแจถูกบุกรุก?
- โหมดความล้มเหลวใดบ้าง (การประนีประนอม CA, การออกใบรับรองผิดพลาด) ที่คุกคามแบบจำลองความน่าเชื่อถือ?
- กลไกเช่น Certificate Transparency ปรับปรุงความรับผิดชอบได้อย่างไร?
Key concepts
- ใบรับรอง X.509
- หน่วยงานออกใบรับรอง (CA)
- สายโซ่แห่งความน่าเชื่อถือและที่เก็บราก
- คำขอลงนามใบรับรอง
- การเพิกถอนใบรับรอง (CRL, OCSP)
- Certificate Transparency
- web of trust
- การประนีประนอม CA และการออกใบรับรองผิดพลาด
- การปักหมุดใบรับรอง
Key theories
- สายโซ่แห่งความน่าเชื่อถือแบบลำดับชั้น
- ความน่าเชื่อถือมีรากฐานมาจากชุดหน่วยงานออกใบรับรองรากที่ลงนามด้วยตนเองจำนวนน้อยที่ติดตั้งไว้ล่วงหน้าในไคลเอนต์; หน่วยงานเหล่านี้ลงนาม CA ระดับกลาง ซึ่งลงนามใบรับรองปลายทาง ดังนั้นไคลเอนต์จึงสามารถตรวจสอบใบรับรองใดๆ ได้โดยการตรวจสอบสายโซ่ขึ้นไปยังรากที่เชื่อถือได้
- การเพิกถอนและความโปร่งใส
- เนื่องจากกุญแจอาจถูกบุกรุกหรือใบรับรองอาจออกผิดพลาด PKI จึงมีการเพิกถอน (รายการเพิกถอนใบรับรองและ OCSP) และมีการบันทึกการตรวจสอบสาธารณะที่เพิ่มขึ้น (Certificate Transparency) เพื่อให้สามารถตรวจจับและไม่เชื่อถือใบรับรองที่ออกผิดพลาดได้
Mechanisms
ผู้สมัครสร้างคู่กุญแจและส่งคำขอลงนามใบรับรอง (certificate signing request); CA จะตรวจสอบตัวตนของผู้สมัครหรือการควบคุมโดเมน และออกใบรับรอง X.509 ที่เชื่อมโยงกุญแจสาธารณะเข้ากับตัวตนนั้น โดยลงนามด้วยกุญแจส่วนตัวของ CA ฝ่ายที่พึ่งพาจะตรวจสอบใบรับรองโดยการตรวจสอบสายโซ่ลายเซ็นไปยังรากที่เชื่อถือได้, ระยะเวลาความถูกต้อง, ชื่อ และสถานะการเพิกถอน (ผ่าน CRL หรือ OCSP) Certificate Transparency จะบันทึกใบรับรองที่ออกทั้งหมดต่อสาธารณะ เพื่อให้เจ้าของโดเมนสามารถตรวจจับการออกใบรับรองที่ไม่ได้รับอนุญาตได้
Clinical relevance
Web PKI คือสิ่งที่ทำให้แม่กุญแจในเบราว์เซอร์มีความหมาย: การเชื่อมต่อ HTTPS ทุกครั้งอาศัยใบรับรองที่ออกโดย CA เพื่อยืนยันตัวตนของเซิร์ฟเวอร์ การออกใบรับรองอัตโนมัติและฟรี (Let's Encrypt) ผลักดันให้มีการนำ HTTPS มาใช้เกือบทั้งหมด PKI ยังเป็นรากฐานของการลงนามรหัส, อีเมลที่ปลอดภัย, การลงนามเอกสาร และการระบุตัวตนอุปกรณ์ขององค์กร ความล้มเหลวของ CA (เช่น การละเมิด DigiNotar ในปี 2011) มีผลกระทบทั่วโลก ซึ่งเป็นเหตุผลว่าทำไมความโปร่งใสและการเพิกถอนจึงมีความสำคัญ
Evidence & guidelines
ใบรับรอง X.509 และการเพิกถอนมีรายละเอียดอยู่ใน RFC 5280; Certificate Transparency ใน RFC 6962; OCSP ใน RFC 6960 ข้อกำหนดพื้นฐานของ CA/Browser Forum ควบคุม CA ที่ได้รับความเชื่อถือจากสาธารณะ โปรโตคอล ACME (RFC 8555) ทำให้การออกใบรับรองเป็นไปโดยอัตโนมัติ แนวปฏิบัติที่ดีที่สุดคือการใช้ใบรับรองที่มีอายุสั้น การต่ออายุอัตโนมัติ และการพึ่งพาการตรวจสอบ Certificate Transparency
History
แนวคิดใบรับรองถูกเสนอในวิทยานิพนธ์ MIT ของ Loren Kohnfelder ในปี 1978 X.509 เกิดขึ้นจากความพยายามของไดเรกทอรี X.500 ในช่วงปลายทศวรรษ 1980 และกลายเป็นพื้นฐานของ web PKI เมื่อ SSL/TLS แพร่หลายในทศวรรษ 1990 การประนีประนอมและการออกใบรับรองผิดพลาดของ CA ซ้ำๆ (Comodo และ DigiNotar ในปี 2011) เผยให้เห็นความเปราะบางของการเชื่อถือ CA โดยไม่มีเงื่อนไข ซึ่งกระตุ้นให้เกิด Certificate Transparency และการกำกับดูแล CA ที่เข้มงวดขึ้น ในขณะที่ Let's Encrypt (2015) ทำให้การออกใบรับรองเป็นประชาธิปไตยมากขึ้น
Key figures
- Loren Kohnfelder
- Whitfield Diffie
- Ross Anderson
- Ben Laurie
Related topics
Seminal works
- stallings2017
- rfc5280
- anderson2020
Frequently asked questions
- หน่วยงานออกใบรับรองตรวจสอบอะไรบ้าง?
- สำหรับใบรับรองที่ตรวจสอบโดเมนทั่วไป CA จะยืนยันเพียงว่าผู้สมัครควบคุมโดเมนนั้น (เช่น โดยการตอบสนองต่อการท้าทาย) โดยไม่ได้รับรองความถูกต้องตามกฎหมายขององค์กร ใบรับรองที่มีความน่าเชื่อถือสูงกว่าจะมีการตรวจสอบตัวตนที่มากขึ้น แต่ใบรับรองเว็บส่วนใหญ่รับรองเพียงการควบคุมโดเมนเท่านั้น
- จะเกิดอะไรขึ้นหากหน่วยงานออกใบรับรองถูกบุกรุก?
- ผู้โจมตีอาจออกใบรับรองปลอมสำหรับเว็บไซต์ใดๆ ซึ่งทำให้สามารถปลอมแปลงตัวตนได้ การป้องกันรวมถึงการเพิกถอนและไม่เชื่อถือ CA, บันทึก Certificate Transparency ที่แสดงใบรับรองที่ไม่ได้รับอนุญาต และอายุใบรับรองที่สั้นซึ่งจำกัดช่วงเวลาของการนำไปใช้ในทางที่ผิด