Certificate Authority (CA) และการยืนยันตัวตน
Certificate Authority (CA) คือองค์กรบุคคลที่สามที่เชื่อถือได้ (Trusted Third Party) ออก Digital Certificate เพื่อผูก Public Key กับตัวตน (บุคคล/องค์กร/เซิร์ฟเวอร์) ใช้ใน SSL/TLS, Code Signing, Email Encryption (S/MIME), Document Signing
📋 ข้อมูลที่ CA ต้องการเพื่อออก Certificate
| ประเภท Certificate | ระดับการตรวจสอบ (Validation Level) | เอกสาร/ข้อมูลที่ต้องให้ |
|---|---|---|
| DV (Domain Validation) | ต่ำสุด | ยืนยันความครอบครองโดเมน (Email DNS, HTTP file, CNAME) |
| OV (Organization Validation) | ปานกลาง | DV + ใบจดทะเบียนบริษัท, สถานที่จริง, โทรศัพท์ที่ตรวจสอบได้ |
| EV (Extended Validation) | สูงสุด | OV + กฎหมายการดำเนินงาน, สถานะทางกฎหมาย, ผู้ประสานงานที่ได้รับอนุญาต |
| Code Signing | OV/EV | เอกสารยืนยันตัวตนผู้พัฒนา (Passport/ID, ใบจดทะเบียน) |
| Client/Email (S/MIME) | DV/OV | ยืนยันอีเมล + ตรวจสอบตัวตน (OV) |
🔍 ขั้นตอนการยืนยันตัวตน (Identity Verification)
- สร้าง CSR (Certificate Signing Request) บนเซิร์ฟเวอร์/เครื่อง → สร้าง Key Pair (Private + Public) → ส่ง Public Key + ข้อมูล Subject (CN, O, OU, C, ST, L) ให้ CA
- CA ตรวจสอบ ตาม Validation Level ด้านบน
- CA ลงนาม (Sign) ด้วย Private Key ของ CA → ออก Certificate (CRT/PEM)
- ติดตั้ง Certificate บนเซิร์ฟเวอร์/อุปกรณ์ พร้อม Private Key
📄 ข้อมูลใน Digital Certificate (X.509)
- Subject: CN (Common Name), Organization, Country, ฯลฯ
- Public Key: คีย์สาธารณะ (RSA 2048+/ECC P-256+)
- Issuer: ชื่อ CA ที่ออก
- Validity: Not Before / Not After
- Serial Number: เลขเฉพาะของ Certificate
- Extensions: SAN (Subject Alternative Names), Key Usage, Extended Key Usage, CRL/OCSP URLs
- Signature: ลายเซ็นดิจิทัลของ CA
🏢 Trusted CA และ Root Store
Browser/OS มาพร้อม Root CA Store (Microsoft, Apple, Mozilla, Google) CA ที่อยู่ใน Store นี้ ถือว่า "Trusted" อัตโนมัติ CA ใหญ่: DigiCert, Sectigo, GlobalSign, Entrust, Let's Encrypt (ฟรี DV), ZeroSSL, Buypass
🔐 Private CA (Internal PKI)
องค์กรใหญ่อาจสร้าง Private CA (Microsoft AD CS, HashiCorp Vault, Smallstep, EJBCA) เพื่อออก Certificate ภายใน: Wi-Fi 802.1X, VPN, mTLS, Code Signing ภายใน โดยต้องกระจาย Root CA ให้อุปกรณ์ทั้งหมด Trust
⚠️ จุดสังเกตสำคัญ
- Private Key ต้องเก็บเป็นความลับ ห้ามส่งให้ CA (CA รับแค่ Public Key ใน CSR)
- เลือก CA ที่อยู่ใน Root Store ของเป้าหมาย (Browser, OS, Mobile)
- EV Certificate ให้แถบสีเขียว/ชื่อองค์กรใน Address Bar (Browser บางตัวลดความสำคัญ)
- ใช้ ACME (Let's Encrypt, ZeroSSL) สำหรับ DV อัตโนมัติ ฟรี
- ระวัง CA ที่ถูก Revoke Trust (เช่น Symantec/Thawte เก่า, WoSign, StartCom)
สรุป
CA ต้องการข้อมูลตาม Validation Level: DV (ยืนยันโดเมน), OV (เพิ่มเอกสารบริษัท), EV (เพิ่มกฎหมาย/สถานะ) ข้อมูลใน Certificate: Subject, Public Key, Issuer, Validity, Extensions, Signature ใช้ Trusted CA ใน Root Store หรือ Private PKI สำหรับภายในองค์กร