บันทึกความโปร่งใสของโมดูลเมนไลน์ของ Android

บันทึกความโปร่งใสของโมดูล Mainline ใน Android ใช้โครงสร้างข้อมูลที่ตรวจสอบได้เพื่อรับประกันความสมบูรณ์ของโมดูล Mainline

ประโยชน์ของบันทึกความโปร่งใสได้รับการพิสูจน์แล้วจากโปรเจ็กต์ต่างๆ เช่น ความโปร่งใสของไบนารีของ Pixel และ ความโปร่งใสของใบรับรอง

บันทึกความโปร่งใสสร้างขึ้นจาก Merkle Tree หน้านี้ถือว่าคุณมีความรู้ทั่วไปเกี่ยวกับ Merkle Tree และความโปร่งใสของไบนารี ดูภาพรวมของ Merkle Tree ได้ที่โครงสร้างข้อมูลที่ตรวจสอบได้ และดูภาพรวมของความพยายามด้านความโปร่งใสของไบนารีใน Android ได้ที่หน้าหลัก

การใช้งานบันทึก

บันทึกความโปร่งใสของโมดูล Mainline ใน Android ใช้ Tessera และเป็นไปตามข้อกำหนด tlog-tiles โดยมีความสูงของไทล์อยู่ที่ 8 (ไทล์หรือชุดข้อมูลแต่ละรายการมีข้อมูลไม่เกิน 28 = 256 รายการ)

ระบบจะแสดงผลรูทของเนื้อหาบันทึกที่ https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/entries/

ระบบจะแสดงผลรูทของเนื้อหาไทล์ที่ https://gstatic.com/android/binary_transparency/mainline/2026/02/tile/

โปรดทราบว่า URL เหล่านี้ไม่ใช่หน้าเว็บมาตรฐาน แต่ควรเข้าถึงรายการบันทึกใน ไดเรกทอรีย่อยแบบเป็นโปรแกรมโดยใช้เครื่องมือต่างๆ เช่น Tessera หรือไลบรารี Golang SumDB Tlog

  • ไทล์ของ Tree: ระบบจะแสดงผลแฮชของโหนดภายในและโหนดลีฟของ Merkle Tree ภายใต้ tile/<level>/<path> (เช่น tile/0/000, tile/1/000)
  • ชุดข้อมูลรายการ: ระบบจะจัดระเบียบเพย์โหลดลีฟของบันทึกเป็นชุดข้อมูลรายการภายใต้ tile/entries/<path> (เช่น tile/entries/000, tile/entries/001) โดย แต่ละชุดข้อมูลจะมีรายการที่เชื่อมต่อกันได้สูงสุด 256 รายการ

ดูคำอธิบายเกี่ยวกับเนื้อหาของแต่ละรายการได้ที่ เนื้อหาบันทึกสำหรับคำอธิบายเกี่ยวกับสิ่งที่แต่ละรายการ มี

ระบบจะแสดงผลแฮชรูทของ Merkle Tree ของบันทึก ซึ่งอยู่ใน จุดตรวจที่ https://gstatic.com/android/binary_transparency/mainline/2026/02/checkpointในรูปแบบจุดตรวจ ต้นทางของจุดตรวจคือ gstatic.com/android/binary_transparency/mainline/modules/2026/1

ระบบจะสร้างลายเซ็นของจุดตรวจโดยใช้อัลกอริทึมลายเซ็น Ed25519 คุณสามารถยืนยันลายเซ็นของจุดตรวจได้ด้วยคีย์สาธารณะต่อไปนี้ ในรูปแบบเครื่องมือยืนยันโน้ต (ตามที่กำหนดไว้ใน golang.org/x/mod/sumdb/note) หรือรูปแบบ PEM มาตรฐาน:

  • รูปแบบเครื่องมือยืนยันโน้ต (<name>+<key_hash>+<public_key_bytes>)
MainlineModulesLogV2+e490c9dd+AfwnHm59rNQTJICchMd7a2W5PQa7nC5h2gTEfq3fhCEI
  • รูปแบบ PEM (SubjectPublicKeyInfo):
-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEA/Ccebn2s1BMkgJyEx3trZbk9BrucLmHaBMR+rd+EIQg=
-----END PUBLIC KEY-----

บันทึกที่เก็บถาวร (V1)

ก่อนการอัปเดตในไตรมาสที่ 3 ปี 2026 บันทึกจะทำงานภายใต้การใช้งาน V1 ก่อนหน้าโดยใช้ลายเซ็น ECDSA (NIST P-256 พร้อม SHA-256) ระบบจะเก็บถาวรบันทึก V1 และตั้งค่าเป็นแบบอ่านอย่างเดียว แต่จะยังคงเข้าถึงได้แบบสาธารณะเพื่อยืนยันรายการย้อนหลัง

-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEr6nPds8eKCYU42avidXNM1GDCtQ/
66GjGuIpUcZjqQNngwRFVCFZDpWuvDnqXzhJRxqccL9lbeEVVZGpa4x6pg==
-----END PUBLIC KEY-----

เนื่องจากโมดูล Mainline มีลักษณะคล้ายกับ APK วิธีการยืนยันที่อธิบายไว้ ในหน้าการยืนยัน Google APKจึงใช้ได้ กับที่นี่ด้วย คุณสามารถใช้วิธีการเหล่านั้นเพื่อยืนยันการอ้างสิทธิ์ที่ระบุไว้ใน โมเดลผู้อ้างสิทธิ์