โปรดส่งคำถามเกี่ยวกับนโยบายนี้ไปยังฟอรัมนโยบาย CT ที่ ct-policy@chromium.org
เมื่อตรวจสอบใบรับรอง Transport Layer Security (TLS) ของการเชื่อมต่อในแอปที่เลือกใช้ความโปร่งใสของใบรับรอง ระบบจะประเมินใบรับรองดังกล่าวว่าเป็นไปตามนโยบายความโปร่งใสของใบรับรอง (CT) ของ Android หรือไม่ ใบรับรองที่มีการประทับเวลาใบรับรองที่ลงนาม (SCT) ซึ่งเป็นไปตามนโยบายนี้เรียกว่าเป็นไปตามข้อกำหนด CT
การปฏิบัติตามข้อกำหนด CT ทำได้โดยใช้ใบรับรองและชุด SCT ที่มาพร้อมกับใบรับรอง ซึ่งเป็นไปตามชุดข้อกำหนดทางเทคนิคที่บังคับใช้โดยไลบรารี TLS ที่ได้รับความนิยม (รวมถึง Conscrypt ในตัวของ Android) ในระหว่างการตรวจสอบใบรับรอง ซึ่งมีการระบุไว้ในนโยบายนี้
สถานะบันทึก CT
การปฏิบัติตามข้อกำหนด CT ใน Android จะพิจารณาจากการประเมิน SCT จากบันทึก CT และตรวจสอบว่าบันทึกเหล่านี้อยู่ในสถานะที่ถูกต้อง ณ เวลาตรวจสอบ ชุดสถานะที่เป็นไปได้ของบันทึก CT มีดังนี้
Pending
Qualified
Usable
ReadOnly
Retired
Rejected
เพื่อช่วยให้คุณเข้าใจข้อกําหนดในการปฏิบัติตามข้อกําหนด CT ใน Android เราได้อธิบายคําจํากัดความของสถานะเหล่านี้ ข้อกําหนดของบันทึกในแต่ละสถานะ ตลอดจนผลกระทบที่สถานะเหล่านี้มีต่อลักษณะการทํางานของ Android โดยละเอียดในคําอธิบายวงจรของบันทึก CT ในเอกสารประกอบของ Chrome
ใบรับรองที่เป็นไปตามข้อกำหนด CT
ใบรับรอง TLS จะเป็นไปตามข้อกำหนด CT หากมาพร้อมกับชุด SCT ที่มีคุณสมบัติตรงตามเกณฑ์อย่างน้อย 1 ข้อที่ระบุไว้ภายหลัง ทั้งนี้ขึ้นอยู่กับวิธีนำส่ง SCT ไปยัง Android ในแอป Android ที่ใช้ CT ใบรับรอง TLS ที่เชื่อถือได้แบบสาธารณะทั้งหมดต้องเป็นไปตามข้อกำหนด CT จึงจะตรวจสอบได้สําเร็จ อย่างไรก็ตาม ใบรับรองที่ไม่ได้บันทึกลงใน CT หรือมี SCT ไม่เพียงพอจะไม่ถือว่าออกใบรับรองไม่ถูกต้อง
เมื่อประเมินใบรับรองเพื่อดูการปฏิบัติตามข้อกำหนด CT ทาง Android จะพิจารณาจากปัจจัยหลายประการ เช่น จำนวน SCT ที่มีอยู่ ผู้ที่ดำเนินการบันทึก CT ที่ได้ออก SCT และสถานะของบันทึก CT ที่ได้ออก SCT ทั้งในขณะที่กำลังตรวจสอบใบรับรองและในขณะที่บันทึก CT สร้างขึ้น SCT
การปฏิบัติตามข้อกำหนด CT จะสำเร็จได้ด้วยการปฏิบัติตามเกณฑ์ข้อใดข้อหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับวิธีที่นำเสนอ SCT ต่อ Android
SCT ที่ฝัง:
- SCT ที่ฝังอย่างน้อย 1 รายการจากบันทึก CT ที่เป็น
Qualified
,Usable
หรือReadOnly
ณ เวลาที่ตรวจสอบ และ - มี SCT ที่ฝังอยู่จากบันทึก CT ที่แตกต่างกันอย่างน้อย N รายการที่เป็น
Qualified
,Usable
,ReadOnly
หรือRetired
ณ เวลาที่ตรวจสอบ โดย N หมายถึงค่าที่ระบุไว้ในตารางต่อไปนี้ และ - ในบรรดา SCT ที่เป็นไปตามข้อกำหนดที่ 2 ต้องมี SCT อย่างน้อย 2 รายการที่ออกโดยผู้ให้บริการบันทึก CT ที่ต่างกันตามที่ Android ยอมรับ และ
- ในบรรดา SCT ที่เป็นไปตามข้อกำหนดที่ 2 จะต้องมี SCT อย่างน้อย 1 รายการที่ออกโดยบันทึกที่ Android ระบุว่าเป็นไปตามข้อกำหนด RFC 6962
อายุการใช้งานของใบรับรอง | จํานวน SCT จากบันทึก CT ที่ต่างกัน |
---|---|
<= 180 วัน | 2 |
มากกว่า 180 วัน | 3 |
SCT ที่ส่งผ่าน OCSP หรือ TLS:
- SCT อย่างน้อย 2 รายการจากบันทึก CT ที่เป็น
Qualified
,Usable
หรือReadOnly
ณ เวลาที่ตรวจสอบ และ - ในบรรดา SCT ที่เป็นไปตามข้อกำหนดที่ 1 ต้องมี SCT อย่างน้อย 2 รายการที่ออกโดยผู้ให้บริการบันทึก CT รายต่างๆ ตามที่ Android ยอมรับ และ
- ในบรรดา SCT ที่เป็นไปตามข้อกำหนดที่ 1 จะต้องมี SCT อย่างน้อย 1 รายการที่ออกโดยบันทึก CT ที่ Android ระบุว่าเป็นไปตาม RFC6962
สําหรับทั้ง SCT ที่ฝังและที่ส่งโดยใช้ OCSP หรือ TLS ความเฉพาะตัวของโอเปอเรเตอร์บันทึกจะหมายถึงการมีรายการแยกต่างหากในส่วนโอเปอเรเตอร์ของ log_list.json
ในกรณีที่ไม่ค่อยเกิดขึ้นบ่อยนักที่บันทึก CT จะเปลี่ยนผู้ดำเนินการในระหว่างอายุการใช้งาน บันทึก CT จะมีรายการ previous_operators
(ไม่บังคับ) พร้อมด้วยการประทับเวลาสุดท้ายที่ผู้ดำเนินการรายก่อนดำเนินการกับบันทึกนี้
เพื่อป้องกันไม่ให้การเปลี่ยนแปลงผู้ดำเนินการบันทึกทำให้ใบรับรองที่มีอยู่ใช้งานไม่ได้ ระบบจะกำหนดให้ผู้ดำเนินการบันทึกของ SCT แต่ละรายการเป็นผู้ดำเนินการ ณ เวลาที่ออก SCT โดยเปรียบเทียบการประทับเวลาของ SCT กับการประทับเวลา previous_operators
หากมี
หมายเหตุสำคัญ
ตราบใดที่ชุดค่าผสม SCT ที่แสดงในการจับมือตรงตามเกณฑ์การปฏิบัติตามข้อกำหนด CT ข้อใดข้อหนึ่งข้างต้น SCT เพิ่มเติมจะไม่ส่งผลต่อสถานะการปฏิบัติตามข้อกำหนด CT ของใบรับรองไม่ว่าจะในทางบวกหรือลบ ไม่ว่า SCT ดังกล่าวจะมีสถานะใดก็ตาม
หากต้องการมีส่วนร่วมในการปฏิบัติตามข้อกำหนด CT ของใบรับรอง SCT จะต้องออกก่อนการประทับเวลา Retired
ของบันทึก หากมี
Android จะใช้ SCT ที่เก่าที่สุดจาก SCT ทั้งหมดที่แสดงเพื่อประเมินการปฏิบัติตามข้อกําหนดของ CT เทียบกับการประทับเวลาRetired
ของบันทึก CT
การดำเนินการนี้พิจารณาถึงกรณีที่เกิดขึ้นไม่บ่อยนักซึ่งบันทึก CT จะกลายเป็น "เลิกใช้งานแล้ว" ในระหว่างกระบวนการส่งคำขอบันทึกใบรับรอง
"SCT ที่ฝัง" หมายถึง SCT ที่ส่งโดยใช้ส่วนขยาย SignedCertificateTimestampList
X.509v3 ภายในใบรับรอง เซิร์ฟเวอร์ TLS จำนวนมากไม่รองรับการปักหมุด OCSP หรือส่วนขยาย TLS ดังนั้น CA ควรเตรียมฝัง SCT ไว้ในใบรับรองที่ออกเพื่อให้การตรวจสอบหรือการจัดการ EV ใน Android ดำเนินการเสร็จสมบูรณ์
วิธีเพิ่มบันทึก CT ลงใน Android
เกณฑ์ที่บันทึก CT จะกลายเป็น Qualified
รวมถึงสถานการณ์ที่อาจทําให้บันทึก CT กลายเป็น Retired
อยู่ในนโยบายบันทึก CT ของ Chrome
หมดเวลาการบังคับใช้ CT
Google จะเผยแพร่รายการบันทึก CT ใหม่ทุกวันซึ่งมีlog_list_timestamp
ใหม่ อุปกรณ์ Android จะพยายามดาวน์โหลดรายการนี้เวอร์ชันล่าสุดวันละครั้งเพื่อวัตถุประสงค์ในการยืนยัน หากไม่มีรายการบันทึกในอุปกรณ์หรือการประทับเวลาของรายการบันทึกมีอายุนานกว่า 70 วัน ระบบจะปิดใช้การบังคับใช้ CT
การหมดเวลานี้ช่วยให้ระบบนิเวศ CT มั่นใจได้ว่าบันทึก CT ใหม่จะเปลี่ยนเป็น "ใช้งานได้" อย่างปลอดภัยภายในระยะเวลาหนึ่งๆ หลังจากกลายเป็น Qualified