โปรไฟล์ใบรับรอง S/MIME

บทความนี้อธิบายข้อกำหนดที่ใบรับรองแต่ละรายการในเชน 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
uniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อย 1 รายการ

(หมายเหตุ) เซิร์ฟเวอร์เพิกถอนต้องสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป
  • 4.9.7. ความถี่ในการออก CRL
  • 4.9.9. ความพร้อมในการตรวจสอบการเพิกถอน/สถานะแบบออนไลน์
  • 4.9.10. ข้อกำหนดในการตรวจสอบการเพิกถอนแบบออนไลน์
    4.10.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

ส่วนขยาย การตรวจหาบุคคลในบ้าน วิกฤต ค่า
การใช้คีย์ ต้องระบุ ใช่

ต้องกำหนดตำแหน่งบิตสำหรับ
keyCertSign
อาจกำหนดตำแหน่งบิตสำหรับ
cRLSign
digitalSignature
หากใช้สำหรับการเซ็นคำตอบ OCSP โดยตรง จะต้องมี
digitalSignature

ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้

การใช้คีย์แบบขยาย ต้องระบุ แบบใดก็ได้ ต้องมี
emailProtection
ต้องไม่มี
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

ข้อจำกัดพื้นฐาน

ต้องระบุ ใช่

ต้องกำหนดช่อง cA ให้มีค่าเป็นจริง
และควรมีช่อง pathLenConstraint และควรมีค่าเป็น 0

นโยบายใบรับรอง ไม่บังคับ ไม่

ควรมี policyIdentifier ที่ระบุนโยบายที่ครอบคลุมการทำงานของ CA และไม่ควรเป็น anyPolicy
หากมี cps ต้องประกอบด้วยลิงก์ HTTP หรือ HTTPS ที่ใช้ได้

จุดแจกจ่าย CRL ต้องระบุ ไม่

ต้องมี HTTP
uniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อย 1 รายการ

(หมายเหตุ)

เซิร์ฟเวอร์เพิกถอนต้องทำงานสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป

  • 4.9.7. ความถี่ในการออก CRL
  • 4.9.9. ความพร้อมในการตรวจสอบการเพิกถอน/สถานะแบบออนไลน์
  • 4.9.10. ข้อกำหนดในการตรวจสอบการเพิกถอนแบบออนไลน์
  • 4.10.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) ต้องระบุ ใช่

ต้องกำหนดตำแหน่งบิตสำหรับ
digitalSignature
และ/หรือ
nonRepudiation/contentCommitment
อาจต้องกำหนดตำแหน่งบิตสำหรับ
dataEncipherment
keyEncipherment

ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้

การใช้คีย์ (ECDH) ต้องระบุ

ต้องกำหนดตำแหน่งบิตสำหรับ
digitalSignature
อาจกำหนดตำแหน่งบิตสำหรับ
nonRepudiation/contentCommitment
keyAgreement
encipherOnly (หากตั้งค่า keyAgreement)
decipherOnly (หากตั้งค่า keyAgreement)

ต้องไม่ตั้งตำแหน่งบิตอื่นๆ ไว้

การใช้คีย์แบบขยาย ต้องระบุ แบบใดก็ได้

ต้องมี
emailProtection
ต้องไม่มี
serverAuth
codeSigning
timeStamping
anyExtendedKeyUsage

ข้อจำกัดพื้นฐาน

ไม่บังคับ แบบใดก็ได้

ต้องกำหนดช่อง cA ให้มีค่าเป็นจริง หากมี
และต้องไม่มีช่อง pathLenConstraint

นโยบายใบรับรอง ต้องระบุ ไม่

ต้องมี policyIdentifier ซึ่งระบุนโยบายที่ครอบคลุมการออกใบรับรอง และต้องไม่ใช่ anyPolicy

อาจมี cps และหากมี ก็จะต้องมีลิงก์ HTTP หรือ HTTPS ที่ใช้ได้ของ CPS ซึ่งออกใบรับรองดังกล่าว

การเข้าถึงข้อมูลผู้ออก

ไม่บังคับ ไม่

caIssuers และ ocsp (หากมี) ต้องมี HTTP uniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อยหนึ่งรายการ

AccessDescription ต้องไม่มีป้ายหรือพารามิเตอร์ที่ระบุเจาะจงใบรับรองแต่ละใบ

จุดแจกจ่าย CRL ต้องระบุ ไม่

ต้องมี
HTTPuniformResourceIdentifier ที่เข้าถึงได้แบบสาธารณะอย่างน้อย 1 รายการ

(หมายเหตุ)

เซิร์ฟเวอร์เพิกถอนต้องทำงานสอดคล้องกับส่วนต่อไปนี้ใน CA/Browser Forum Baseline Requirements Certificate Policy for the Issuance and Management of Publicly-Trusted Certificates เวอร์ชัน 1.3.2 เป็นต้นไป

  • 4.9.7. ความถี่ในการออก CRL
  • 4.9.9. ความพร้อมในการตรวจสอบการเพิกถอน/สถานะแบบออนไลน์
  • 4.9.10. ข้อกำหนดในการตรวจสอบการเพิกถอนแบบออนไลน์
  • 4.10.2. ความพร้อมใช้งานของบริการ

Subject Alternative Name

ต้องระบุ ไม่

ต้องมีประเภท rfc822Name อย่างน้อย 1 รายการ
ต้องไม่มีรายการประเภท
dNSName
iPAddress
uniformResourceIdentifier
rfc822Name แต่ละรายการต้องได้รับการยืนยันด้วยมาตรการที่ได้รับการตรวจสอบและบันทึกไว้แบบสาธารณะเพื่อให้แน่ใจว่านิติบุคคลที่ส่งคำขอควบคุมบัญชีอีเมลที่เชื่อมโยงกับอีเมล หรือได้รับอนุญาตจากเจ้าของบัญชีอีเมลให้ดำเนินการในนามของเจ้าของบัญชี

ส่วนขยายอื่นๆ

ไม่บังคับ ไม่ อาจต้องมี