นโยบายความโปร่งใสของใบรับรอง Android

โปรดส่งคำถามเกี่ยวกับนโยบายนี้ไปที่ฟอรัมนโยบาย CT: ct-policy@chromium.org

เมื่อมีการตรวจสอบใบรับรอง Transport Layer Security (TLS) ของการเชื่อมต่อ ระบบจะประเมินการปฏิบัติตามนโยบายความโปร่งใสของใบรับรอง (CT) ของ Android ใบรับรองที่มาพร้อมกับการประทับเวลาใบรับรองที่ลงชื่อ (SCT) ที่เป็นไปตามนโยบายนี้จะถือว่าสอดคล้องกับ CT

การปฏิบัติตาม CT จะเกิดขึ้นเมื่อใบรับรองและชุด SCT ที่มาพร้อมกันเป็นไปตามชุดข้อกำหนดทางเทคนิคที่ไลบรารี TLS ยอดนิยม (รวมถึง Conscrypt ในตัว) บังคับใช้ระหว่างการตรวจสอบใบรับรอง ซึ่งกำหนดไว้ในนโยบายนี้

สถานะบันทึก CT

การปฏิบัติตาม CT ใน Android จะพิจารณาจากการประเมิน SCT จากบันทึก CT และตรวจสอบว่าบันทึกเหล่านี้อยู่ในสถานะที่ถูกต้อง ณ เวลาที่ตรวจสอบ ชุดสถานะที่เป็นไปได้ที่บันทึก CT อาจอยู่ในสถานะใดสถานะหนึ่งต่อไปนี้

  • Pending
  • Qualified
  • Usable
  • ReadOnly
  • Retired
  • Rejected

คำจำกัดความของสถานะเหล่านี้ ข้อกำหนดของบันทึกในแต่ละสถานะ รวมถึงวิธีที่สถานะเหล่านี้ส่งผลต่อลักษณะการทำงานของ Android มีอธิบายไว้โดยละเอียด ใน คำอธิบายวงจรชีวิตของบันทึก CT ในเอกสารประกอบของ Chrome เพื่อช่วยให้เข้าใจข้อกำหนดสำหรับการปฏิบัติตาม CT ใน Android

ใบรับรองที่สอดคล้องกับ CT

ใบรับรอง TLS จะ สอดคล้องกับ CT หากมาพร้อมกับชุด SCT ที่เป็นไปตามเกณฑ์อย่างน้อย 1 ข้อที่กำหนดไว้ในภายหลัง ทั้งนี้ขึ้นอยู่กับวิธีที่ส่ง SCT ไปยัง Android ในแอปที่บังคับใช้ CT ของ Android ใบรับรอง TLS ที่เชื่อถือได้แบบสาธารณะทั้งหมดจะต้องสอดคล้องกับ CT จึงจะตรวจสอบได้สำเร็จ อย่างไรก็ตาม ระบบจะไม่ถือว่าใบรับรองที่ไม่ได้บันทึกไว้ใน CT หรือมี SCT ไม่เพียงพอเป็นใบรับรองที่ออกอย่างไม่ถูกต้อง

เมื่อประเมินใบรับรองเพื่อดูว่าสอดคล้องกับ CT หรือไม่ Android จะพิจารณาปัจจัยหลายประการ รวมถึงจำนวน SCT ที่มี ผู้ดำเนินการบันทึก CT ที่ออก SCT และสถานะของบันทึก CT ที่ออก SCT ทั้งในขณะที่ตรวจสอบใบรับรองและในขณะที่บันทึก CT สร้าง SCT

การปฏิบัติตาม CT จะเกิดขึ้นได้โดยเป็นไปตามเกณฑ์ข้อใดข้อหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับวิธีที่แสดง SCT ใน Android

SCT แบบฝัง

  1. SCT แบบฝังอย่างน้อย 1 รายการจากบันทึก CT ที่มีสถานะเป็น Qualified, Usable หรือ ReadOnly ณ เวลาที่ตรวจสอบ และ
  2. มี SCT แบบฝังจากบันทึก CT ที่แตกต่างกันอย่างน้อย N รายการที่มีสถานะเป็น Qualified, Usable, ReadOnly หรือ Retired ณ เวลาที่ตรวจสอบ โดย N จะกำหนดไว้ในตารางต่อไปนี้ และ
  3. ในบรรดา SCT ที่เป็นไปตามข้อกำหนดข้อ 2 จะต้องมี SCT อย่างน้อย 2 รายการที่ออกโดยผู้ดำเนินการบันทึก CT ที่แตกต่างกันตามที่ Android รับทราบ และ
อายุการใช้งานใบรับรอง จำนวน SCT จากบันทึก CT ที่แตกต่างกัน
<= 180 วัน 2
> 180 วัน 3

SCT ที่ส่งผ่าน OCSP หรือ TLS

  1. SCT อย่างน้อย 2 รายการจากบันทึก CT ที่มีสถานะเป็น Qualified, Usable หรือ ReadOnly ณ เวลาที่ตรวจสอบ และ
  2. ในบรรดา SCT ที่เป็นไปตามข้อกำหนดข้อ 1 จะต้องมี SCT อย่างน้อย 2 รายการที่ออกโดยผู้ดำเนินการบันทึก CT ที่แตกต่างกันตามที่ Android รับทราบ และ

สำหรับทั้ง SCT แบบฝังและ SCT ที่ส่งโดยใช้ OCSP หรือ TLS ความแตกต่างของผู้ดำเนินการบันทึก จะกำหนดโดยการมีรายการแยกกันในส่วนผู้ดำเนินการ ของ รายการบันทึก

ในกรณีที่เกิดขึ้นได้ยากที่ผู้ดำเนินการบันทึก CT เปลี่ยนผู้ดำเนินการระหว่างอายุการใช้งาน บันทึก CT อาจมีรายการ previous_operators พร้อมกับการประทับเวลาสุดท้ายที่ผู้ดำเนินการก่อนหน้าดำเนินการบันทึกนี้ เพื่อป้องกันไม่ให้การเปลี่ยนแปลงผู้ดำเนินการบันทึกทำให้ใบรับรองที่มีอยู่ใช้งานไม่ได้ ระบบจะกำหนดให้ผู้ดำเนินการบันทึกของ SCT แต่ละรายการเป็นผู้ดำเนินการ ณ เวลาที่ออก SCT โดยการเปรียบเทียบการประทับเวลา SCT กับการประทับเวลา previous_operators หากมี

หมายเหตุสำคัญ

ตราบใดที่ชุด SCT ที่แสดงในการแฮนด์เชกเป็นไปตามเกณฑ์การปฏิบัติตาม CT ข้อใดข้อหนึ่งข้างต้น SCT เพิ่มเติมจะไม่ส่งผลต่อสถานะการปฏิบัติตาม CT ของใบรับรองในทางบวกหรือทางลบ ไม่ว่า SCT จะมีสถานะใดก็ตาม

SCT จะต้องออกก่อนการประทับเวลา Retired ของบันทึก (หากมี) จึงจะมีส่วนช่วยในการปฏิบัติตาม CT ของใบรับรอง Android จะใช้ SCT ที่เก่าที่สุดในบรรดา SCT ทั้งหมดที่แสดงเพื่อประเมินการปฏิบัติตาม CT เทียบกับการประทับเวลา Retired ของบันทึก CT ซึ่งจะครอบคลุมกรณีพิเศษที่บันทึก CT มีสถานะเป็น Retired ในระหว่างกระบวนการส่งคำขอการบันทึกใบรับรอง

"SCT แบบฝัง" หมายถึง SCT ที่ส่งโดยใช้ส่วนขยาย SignedCertificateTimestampList X.509v3 ภายในใบรับรองเอง เซิร์ฟเวอร์ TLS จำนวนมากไม่รองรับ OCSP Stapling หรือส่วนขยาย TLS ดังนั้น CA ควรเตรียมพร้อมที่จะฝัง SCT ลงในใบรับรองที่ออกเพื่อให้การตรวจสอบสำเร็จหรือได้รับการจัดการ EV ใน Android

วิธีเพิ่มบันทึก CT ลงใน Android

เกณฑ์ที่บันทึก CT จะมีสถานะเป็น Qualified รวมถึง สถานการณ์ที่อาจทำให้บันทึก CT มีสถานะเป็น Retired ดูได้ในนโยบายบันทึก CT ของ Chrome

การหมดเวลาการบังคับใช้ CT

ทุกวัน Google จะเผยแพร่รายการบันทึก CT ใหม่ที่มี log_list_timestamp ใหม่ อุปกรณ์ Android จะพยายามดาวน์โหลดรายการเวอร์ชันล่าสุดนี้วันละครั้งเพื่อวัตถุประสงค์ในการยืนยัน หากไม่มีรายการบันทึกในอุปกรณ์หรือการประทับเวลาของรายการบันทึกเก่ากว่า 70 วัน ระบบจะปิดใช้การบังคับใช้ CT การหมดเวลานี้ช่วยให้ระบบนิเวศของ CT มั่นใจได้ว่าบันทึก CT ใหม่จะเปลี่ยนไปเป็น Usable ได้อย่างปลอดภัยภายในระยะเวลาที่กำหนดหลังจากมีสถานะเป็น Qualified

รายการบันทึกของ Android

รายการบันทึกของ Android จะเผยแพร่ใน log_list.json ซึ่งจะอัปเดตทุกวัน รายการบันทึกนี้มีให้ใช้งานโดยไม่มี API ที่เสถียร SLA หรือการรับประกันความพร้อมใช้งาน

Android จัดทำรายการบันทึก CT ไว้ให้ผู้ส่งใบรับรอง (เช่น ผู้ออกใบรับรอง) รวมถึงผู้ตรวจสอบและผู้ตรวจสอบบัญชี CT ที่ต้องการให้ระบบยังคงใช้งานร่วมกับระบบนิเวศของ CT และ WebPKI ได้ หรือต้องการตรวจสอบเนื้อหาของระบบนิเวศดังกล่าว

การพึ่งพารายการบันทึก CT ของ Android โดยไม่ได้รับอนุญาตจะส่งผลเสียต่อผู้ใช้ของคุณ ผู้ใช้ Android และระบบนิเวศของ CT โดยรวม หากคุณกำลังพิจารณาที่จะเพิ่ม การบังคับใช้ CT ลงในแอป ให้ใช้กลไกที่แพลตฟอร์ม Android รองรับ

การใช้รายการบันทึก CT ของ Android ที่ไม่เป็นไปตามนโยบายนี้ถือเป็นความเสี่ยงของคุณเอง และอาจทำให้แอปพลิเคชันหรือไลบรารีใช้งานไม่ได้ Android ต้องสามารถทำการเปลี่ยนแปลงรายการบันทึก CT เพื่อตอบสนองต่อเหตุการณ์ในระบบนิเวศของ CT เพื่อรักษาความปลอดภัยของผู้ใช้ Android Android อาจดำเนินการเพื่อให้แน่ใจว่าการพึ่งพาบุคคลที่สามในรายการบันทึก CT จะไม่เสี่ยงต่อความสามารถของ Android ในการตอบสนองต่อเหตุการณ์ดังกล่าว ซึ่งรวมถึงการเปลี่ยนแปลงรายการบันทึกโดยไม่แจ้งให้ทราบล่วงหน้าเพื่อขัดขวางการใช้งานที่ไม่ได้รับอนุญาต