บทความนี้อธิบายข้อกำหนดที่ใบรับรองแต่ละรายการในเชน X.509 ต้องเป็นไปตามนั้นจึงจะเชื่อถือได้สำหรับการใช้กับอีเมลที่เข้ารหัสหรืออีเมลที่ลงชื่อด้วย S/MIME
นอกจากข้อกำหนดเหล่านี้แล้ว กลุ่มใบรับรองต้องยึดตามใบรับรองของผู้ออกใบรับรอง (CA) ที่ Google เชื่อถืออย่างชัดเจนเพื่อวัตถุประสงค์นี้ คุณสามารถเลือกรับใบรับรองรูทจาก CA ที่คุณเชื่อถือได้เช่นกัน ดูข้อมูลเพิ่มเติมได้ที่หลักเกณฑ์ของใบรับรองรูท
หมายเหตุ
- Google มีและดูแลรายการใบรับรอง CA ที่ Gmail เชื่อถือ สำหรับ S/MIME โดย Google สร้างรายการดังกล่าวตามการพิจารณาเห็นสมควรแต่เพียงผู้เดียว Google ขอสงวนสิทธิ์ในการนำ CA ระดับรูทออกได้ทุกเมื่อโดยไม่ต้องแจ้งให้ทราบ
- ตรวจสอบว่าส่วนขยายที่ติดตั้งไม่ขัดแย้งกับส่วนขยายอื่นๆ ในใบรับรองเดียวกัน เช่น หากมีการกำหนด nsCertTypes ก็จะต้องครอบคลุมการใช้งานที่เหมือนกันทุกประการกับส่วนขยายการใช้งานคีย์ ส่วนขยายการใช้งานคีย์แบบขยาย และส่วนขยายข้อจำกัดพื้นฐาน
กฎของเชนใบรับรอง
CA ระดับรูท
| ช่อง | ค่า |
|---|---|
|
DN ของผู้ออก |
ต้องระบุ CA ตัวอย่างเช่น DN ต้องไม่เป็นค่าทั่วไป เช่น "ผู้ออกใบรับรอง" (Certificate Authority) |
|
DN ของเรื่อง |
แบบฟอร์มที่เข้ารหัสจะต้องเหมือนกับ DN ของผู้ออกแบบไบต์ต่อไบต์ |
|
ข้อมูลคีย์สาธารณะของเรื่อง |
rsaEncryption พร้อมโมดูลัส RSA ที่ 2048, 3072 หรือ 4096 หรือ ecPublicKey โดยใช้ secp256r1 หรือ secp384r1 |
ใบรับรอง CA ระดับกลางที่ไม่ได้มาจาก CA ระดับกลางซึ่งทำหน้าที่ออกใบรับรอง
ใช้ข้อมูลนี้หากมี CA ระดับกลางมากกว่า 1 รายการระหว่างรูทกับเอนทิตีปลายทาง ไม่ว่าจะโดยตรงหรือโดยอ้อม
CA ระดับกลางซึ่งทำหน้าที่ออกใบรับรอง คือ CA ระดับกลางที่ออกใบรับรองเอนทิตีปลายทาง ส่วนนี้ใช้กับ CA ระดับกลางใดๆ ในห่วงโซ่ นอกเหนือจาก CA ระดับกลางที่ออกใบรับรอง
| ช่อง | ค่า | ||
|---|---|---|---|
| เวอร์ชัน | เวอร์ชัน 3 | ||
| หมายเลขซีเรียล | ต้องมีค่ามากกว่าศูนย์ (0) และเมื่อเข้ารหัส DER เป็นเลขจำนวนเต็ม ต้องมีค่าไม่เกิน 20 ไบต์ | ||
| อัลกอริทึมลายเซ็น | RSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 หรือ ECDSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 | ||
| DN ของผู้ออก |
ต้องเหมือนกับ DN เรื่องของ CA ผู้ออกแบบไบต์ต่อไบต์ |
||
| ระยะเวลาที่ใช้งานได้ | ไม่ระบุ | ||
| DN ของเรื่อง | ไม่ระบุ | ||
| ข้อมูลคีย์สาธารณะของเรื่อง |
rsaEncryption พร้อมโมดูลัส RSA ที่ 2048, 3072 หรือ 4096 หรือ ecPublicKey โดยใช้ secp256r1 หรือ secp384r1 |
||
| ส่วนขยาย | การตรวจหาบุคคลในบ้าน | สำคัญมาก | ค่า |
| การใช้คีย์ | จำเป็น | ใช่ |
ต้องตั้งค่าตำแหน่งบิตสำหรับ keyCertSign |
| ข้อจำกัดพื้นฐาน | จำเป็น | ใช่ | ต้องตั้งค่าฟิลด์ cA เป็น true ควรมีฟิลด์ pathLenConstraint |
| จุดแจกจ่าย CRL | จำเป็น | ไม่ |
ต้องมีตัวระบุทรัพยากรแบบสม่ำเสมอ HTTP |
| (หมายเหตุ) | เซิร์ฟเวอร์การเพิกถอนต้องเป็นไปตามส่วนต่อไปนี้ของนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum สำหรับการออกและการจัดการใบรับรองที่เชื่อถือได้แบบสาธารณะ เวอร์ชัน 1.3.2 ขึ้นไป
|
||
| ส่วนขยายอื่นๆ | อาจต้องมี | ||
ใบรับรอง CA ระดับกลางที่ออกเอนทิตีปลายทาง
สำคัญ: ต้องมีใบรับรอง CA ระดับกลางอย่างน้อย 1 รายการในชุด ซึ่งหมายความว่ารูทต้องไม่ออกใบรับรองเอนทิตีปลายทางโดยตรง
| ช่อง | ค่า | ||
|---|---|---|---|
| เวอร์ชัน | เวอร์ชัน 3 | ||
| หมายเลขซีเรียล | ต้องมีค่ามากกว่าศูนย์ (0) และเมื่อเข้ารหัส DER เป็นเลขจำนวนเต็ม ต้องมีค่าไม่เกิน 20 ไบต์ | ||
| อัลกอริทึมลายเซ็น |
RSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 หรือ ECDSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 |
||
| DN ของผู้ออก |
ต้องเหมือนกับ DN เรื่องของ CA ผู้ออกแบบไบต์ต่อไบต์ |
||
| ระยะเวลาที่ใช้งานได้ |
ความแตกต่างระหว่าง notBefore และ notAfter ไม่ควรเกิน 10 ปีและต้องไม่เกิน 20 ปี |
||
| DN ของเรื่อง |
ควรระบุการใช้ CA |
||
| ข้อมูลคีย์สาธารณะของเรื่อง |
rsaEncryption พร้อมโมดูลัส RSA ที่ 2048, 3072 หรือ 4096 หรือ ecPublicKey โดยใช้ secp256r1 หรือ secp384r1 |
||
| ส่วนขยาย | การตรวจหาบุคคลในบ้าน | สำคัญมาก | ค่า |
| การใช้คีย์ | จำเป็น | ใช่ |
ต้องตั้งค่าตำแหน่งบิตสำหรับ ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้ |
| การใช้งานคีย์เพิ่มเติม | จำเป็น | อย่างใดอย่างหนึ่ง | ต้องมี: emailProtection ต้องไม่มี: serverAuth codeSigning timeStamping anyExtendedKeyUsage |
|
ข้อจำกัดพื้นฐาน |
จำเป็น | ใช่ |
ต้องตั้งค่าฟิลด์ cA เป็น true |
| นโยบายใบรับรอง | ไม่บังคับ | ไม่ |
ควรระบุ policyIdentifier ที่ระบุนโยบายที่ CA ดำเนินการภายใต้ และไม่ควรเป็น anyPolicy |
| จุดแจกจ่าย CRL | จำเป็น | ไม่ |
ต้องมีตัวระบุทรัพยากรแบบสม่ำเสมอ HTTP |
| (หมายเหตุ) |
เซิร์ฟเวอร์เพิกถอนต้องทำงานสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป
|
||
| ส่วนขยายอื่นๆ | ไม่บังคับ | ไม่ได้ |
อาจต้องมี |
ใบรับรองของผู้ใช้งานทั่วไป
| ช่อง | ค่า | ||
|---|---|---|---|
| เวอร์ชัน | เวอร์ชัน 3 | ||
| หมายเลขซีเรียล |
ต้องมากกว่าศูนย์ (0) และต้องมีบิตที่ไม่สามารถคาดเดาได้อย่างน้อย 64 บิต หมายเหตุ: จะได้รับการอัปเดตให้สอดคล้องกับข้อกำหนดด้านเอนโทรปีของหมายเลขซีเรียลของเอนทิตีปลายทางในนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum |
||
| อัลกอริทึมลายเซ็น | RSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 หรือ ECDSA พร้อม SHA‐256, SHA‐384 หรือ SHA‐512 | ||
| DN ของผู้ออก |
ต้องเหมือนกับ DN เรื่องของ CA ผู้ออกแบบไบต์ต่อไบต์ |
||
| ระยะเวลาที่ใช้งานได้ |
ความแตกต่างระหว่าง notBefore และ notAfter ต้องไม่เกิน 27 เดือน เวลา notBefore ต้องแสดงเวลาของลายเซ็น บวกหรือลบ 48 ชั่วโมง |
||
| DN ของเรื่อง |
Subject Relative Distinguished Name ที่ไม่ใช่อีเมลต้องได้รับการตรวจสอบอย่างเข้มงวดก่อนออก โดยใช้กระบวนการที่ระบุและผ่านการตรวจสอบโดยสาธารณะ ดูขั้นตอนที่ยอมรับได้ในส่วนที่ 3.2.3 "การตรวจสอบสิทธิ์ของตัวตนบุคคลธรรมดา" ของนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum สำหรับการออกและการจัดการใบรับรองที่เชื่อถือได้แบบสาธารณะ เวอร์ชัน 1.3.2 ขึ้นไป ต้องมีอีเมล (เช่น ในช่อง commonName หรือ emailAddress) ในส่วนขยาย Subject Alternate Name เป็น rfc822Name |
||
| ข้อมูลคีย์สาธารณะของเรื่อง |
rsaEncryption พร้อมโมดูลัส RSA ที่ 2048, 3072 หรือ 4096 หรือ ecPublicKey โดยใช้ secp256r1 หรือ secp384r1 |
||
| ส่วนขยาย | การตรวจหาบุคคลในบ้าน | สำคัญมาก | ค่า |
| การใช้คีย์ (RSA) | จำเป็น | ใช่ |
ต้องตั้งค่าตำแหน่งบิตสำหรับ ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้ |
| การใช้คีย์ (ECDH) | จำเป็น |
ต้องตั้งค่าตำแหน่งบิตสำหรับ ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้ |
|
| การใช้งานคีย์เพิ่มเติม | จำเป็น | อย่างใดอย่างหนึ่ง |
ต้องมี: |
|
ข้อจำกัดพื้นฐาน |
ไม่บังคับ | อย่างใดอย่างหนึ่ง |
หากมีอยู่ จะต้องไม่ตั้งค่าฟิลด์ cA เป็น true |
| นโยบายใบรับรอง | จำเป็น | ไม่ |
ต้องมี: ต้องระบุ policyIdentifier ที่ระบุนโยบายที่ออกใบรับรอง และต้องไม่ใช่ anyPolicy อาจมี: cps หากมี จะต้องมีลิงก์ HTTP หรือ HTTPS ที่ถูกต้องไปยัง CPS ที่ออกใบรับรอง |
|
การเข้าถึงข้อมูลผู้ออก |
ไม่บังคับ | ไม่ |
caIssuers และ ocsp (หากมี) ต้องมี HTTP UniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อย 1 รายการ AccessDescription ต้องไม่มีป้ายหรือพารามิเตอร์ที่ระบุเจาะจงใบรับรองแต่ละใบ |
| จุดแจกจ่าย CRL | จำเป็น | ไม่ |
ต้องมี |
|
(หมายเหตุ) |
เซิร์ฟเวอร์การเพิกถอนต้องดำเนินการตามส่วนต่อไปนี้ของนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum สำหรับการออกและการจัดการใบรับรองที่เชื่อถือได้แบบสาธารณะ เวอร์ชัน 1.3.2 ขึ้นไป
|
||
|
Subject Alternative Name |
จำเป็น | ไม่ได้ |
ต้องมีประเภท rfc822Name อย่างน้อย 1 รายการ |
|
ส่วนขยายอื่นๆ |
ไม่บังคับ | ไม่ได้ | อาจต้องมี |