โปรไฟล์ใบรับรอง 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 เป็น true
ควรมีฟิลด์ pathLenConstraint
จุดแจกจ่าย CRL จำเป็น ไม่

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

(หมายเหตุ) เซิร์ฟเวอร์การเพิกถอนต้องเป็นไปตามส่วนต่อไปนี้ของนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum สำหรับการออกและการจัดการใบรับรองที่เชื่อถือได้แบบสาธารณะ เวอร์ชัน 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 เป็น true
ฟิลด์ pathLenConstraint ควรมีและควรเป็น 0

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

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

จุดแจกจ่าย CRL จำเป็น ไม่

ต้องมีตัวระบุทรัพยากรแบบสม่ำเสมอ HTTP
อย่างน้อย 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

อัลกอริทึมลายเซ็น 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) จำเป็น ใช่

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

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

การใช้คีย์ (ECDH) จำเป็น

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

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

การใช้งานคีย์เพิ่มเติม จำเป็น อย่างใดอย่างหนึ่ง

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

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

ไม่บังคับ อย่างใดอย่างหนึ่ง

หากมีอยู่ จะต้องไม่ตั้งค่าฟิลด์ cA เป็น true
จะต้องไม่มีฟิลด์ pathLenConstraint

นโยบายใบรับรอง จำเป็น ไม่

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

อาจมี: cps หากมี จะต้องมีลิงก์ HTTP หรือ HTTPS ที่ถูกต้องไปยัง CPS ที่ออกใบรับรอง

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

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

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

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

จุดแจกจ่าย CRL จำเป็น ไม่

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

(หมายเหตุ)

เซิร์ฟเวอร์การเพิกถอนต้องดำเนินการตามส่วนต่อไปนี้ของนโยบายใบรับรองข้อกำหนดพื้นฐานของ CA/Browser Forum สำหรับการออกและการจัดการใบรับรองที่เชื่อถือได้แบบสาธารณะ เวอร์ชัน 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 แต่ละรายการต้องได้รับการยืนยันด้วยมาตรการที่บันทึกและตรวจสอบต่อสาธารณะเพื่อให้แน่ใจว่านิติบุคคลที่ส่งคำขอควบคุมบัญชีอีเมลที่เชื่อมโยงกับอีเมล หรือได้รับอนุญาตจากผู้ถือบัญชีอีเมลให้ดำเนินการในนามของผู้ถือบัญชี

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

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