บทความนี้อธิบายข้อกำหนดที่ใบรับรองแต่ละรายการในเชน 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 ให้มีค่าเป็นจริง และควรมีช่อง pathLenConstraint |
จุดแจกจ่าย CRL | จำเป็น | ไม่ได้ |
ต้องมี HTTP |
(หมายเหตุ) | เซิร์ฟเวอร์เพิกถอนต้องสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 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 ให้มีค่าเป็นจริง |
นโยบายใบรับรอง | ไม่บังคับ | ไม่ได้ |
ควรมี 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 Baseline Requirements Certificate Policy |
||
อัลกอริทึมลายเซ็น | 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 “Authentication of Individual Identity” ของ CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป ต้องมีอีเมล (เช่น ในช่อง commonName หรือ emailAddress) ในส่วนขยาย Subject Alternate Name เป็น rfc822Name |
||
ข้อมูลคีย์สาธารณะของเรื่อง |
rsaEncryption พร้อมโมดูลัส RSA ที่ 2048, 3072 หรือ 4096 หรือ ecPublicKey โดยใช้ secp256r1 หรือ secp384r1 |
||
ส่วนขยาย | นำเสนอ | สำคัญมาก | ค่า |
การใช้คีย์ (RSA) | จำเป็น | ได้ |
ต้องกำหนดตำแหน่งบิตสำหรับ ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้ |
การใช้คีย์ (ECDH) | จำเป็น |
ต้องกำหนดตำแหน่งบิตสำหรับ ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้ |
|
การใช้งานคีย์เพิ่มเติม | จำเป็น | อย่างใดอย่างหนึ่ง |
ต้องมี |
ข้อจำกัดพื้นฐาน |
ไม่บังคับ | อย่างใดอย่างหนึ่ง |
ต้องกำหนดช่อง cA ให้มีค่าเป็นจริง หากมี |
นโยบายใบรับรอง | จำเป็น | ไม่ได้ |
ต้องมี policyIdentifier ซึ่งระบุนโยบายที่ครอบคลุมการออกใบรับรอง และต้องไม่ใช่ anyPolicy อาจมี cps และหากมี ก็จะต้องมีลิงก์ HTTP หรือ HTTPS ที่ใช้ได้ของ CPS ซึ่งออกใบรับรองดังกล่าว |
การเข้าถึงข้อมูลผู้ออก |
ไม่บังคับ | ไม่ได้ |
caIssuers และ ocsp (หากมี) ต้องมี HTTP uniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อยหนึ่งรายการ AccessDescription ต้องไม่มีป้ายหรือพารามิเตอร์ที่ระบุเจาะจงใบรับรองแต่ละใบ |
จุดแจกจ่าย CRL | จำเป็น | ไม่ได้ |
ต้องมี |
(หมายเหตุ) |
เซิร์ฟเวอร์เพิกถอนต้องทำงานสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป
|
||
Subject Alternative Name |
จำเป็น | ไม่ได้ |
ต้องมีประเภท rfc822Name อย่างน้อย 1 รายการ |
ส่วนขยายอื่นๆ |
ไม่บังคับ | ไม่ได้ | อาจต้องมี |