บทความทั้งหมด

X.509: ภายในใบรับรอง SSL มีอะไรบ้าง

ระบบยืนยันตัวตนดิจิทัลแห่งชาติของไทย (National Digital ID) ที่กำกับดูแลโดย ETDA (สำนักงานพัฒนาธุรกรรมทางอิเล็กทรอนิกส์) รับรองผู้ให้บริการออกใบรับรองสำหรับใช้ยืนยันตัวตนในการทำ KYC ของธนาคารและบริการภาครัฐ ซึ่งเป็นสายโซ่ความน่าเชื่อถือที่แยกออกจากสายที่เบราว์เซอร์ใช้ตรวจสอบใบรับรอง TLS ของเว็บไซต์ทั่วไปโดยสิ้นเชิง

ใบรับรองประกอบด้วยฟิลด์ใดบ้าง

  • Subject — ใบรับรองออกให้กับใคร (โดเมน องค์กร หรือในบริบทยืนยันตัวตนคือบุคคล)
  • Issuer — ใครเป็นผู้ออกใบรับรอง (หน่วยงานออกใบรับรอง หรือ CA)
  • ระยะเวลาความถูกต้อง — วันที่เริ่มต้นและสิ้นสุดความถูกต้องของใบรับรอง
  • กุญแจสาธารณะ — กุญแจที่ใช้สร้างการเชื่อมต่อที่ปลอดภัยหรือตรวจสอบลายเซ็น
  • ลายเซ็นดิจิทัล — ลายเซ็นของผู้ออก ยืนยันความแท้จริงของฟิลด์อื่นทั้งหมด

รูปแบบเดียวกัน แต่ห่วงโซ่ความน่าเชื่อถือต่างกัน

ใบรับรองจากผู้ให้บริการที่ ETDA รับรอง กับใบรับรอง TLS ของเว็บไซต์ ใช้โครงสร้าง X.509 และกลไกห่วงโซ่ความน่าเชื่อถือแบบเดียวกันทุกประการ — หน่วยงานออกใบรับรองระดับกลางเซ็นใบรับรองสุดท้าย และ root CA เซ็นหน่วยงานระดับกลางนั้นอีกที ความต่างอยู่ที่ว่าคลังความน่าเชื่อถือใดเป็นผู้ตรวจสอบ: ซอฟต์แวร์ยืนยันตัวตนของธนาคารเชื่อถือ root ที่ ETDA รับรอง ในขณะที่เบราว์เซอร์เชื่อถือชุด root เชิงพาณิชย์ที่ต่างออกไปโดยสิ้นเชิงสำหรับ HTTPS — ห่วงโซ่ทั้งสองไม่จำเป็นต้องมาบรรจบกันเลย

เหตุใดระยะเวลาความถูกต้องจึงถูกจำกัด

ระยะเวลาความถูกต้องที่จำกัด (โดยปกติ 90 วันถึง 1 ปีสำหรับใบรับรองเว็บสมัยใหม่) ลดความเสี่ยงจากกุญแจส่วนตัวที่ถูกบุกรุก และบังคับให้อัปเดตพารามิเตอร์การเข้ารหัสเป็นประจำตามมาตรฐานความปลอดภัยปัจจุบัน

ทำไมต้องใช้สิ่งนี้

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

ใบรับรองที่ลงนามด้วยตนเอง (self-signed)

ใบรับรองสามารถลงนามด้วยคีย์ส่วนตัวของตัวเองแทนที่จะใช้ CA ใด ๆ เลย — ในเชิงโครงสร้างจะดูเหมือน X.509 "แท้" ทุกประการ มีฟิลด์เดียวกัน แต่ Issuer และ Subject จะตรงกัน นี่คือคำถามเรื่องความน่าเชื่อถือแบบเดียวกันที่ถูกผลักไปถึงขีดสุด — ห่วงโซ่ไม่นำไปสู่ที่ใดเลย จึงไม่มีสิ่งใดนอกเหนือจากการตั้งค่าของคุณเองที่มีเหตุผลจะเชื่อถือมัน นี่คือเหตุผลที่มันเหมาะกับการทดสอบภายในแต่ถูกทำเครื่องหมายว่าไม่น่าเชื่อถือในที่อื่น ๆ ทั้งหมด

ลองใช้เครื่องมือ