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

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

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

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

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

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

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

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

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

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

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

แฮชรูท Merkle Tree ของบันทึกที่อยู่ในเช็คพอยต์จะแสดงที่ https://www.gstatic.com/android/binary_transparency/mainline/2026/02/checkpoint ในรูปแบบเช็คพอยต์ ต้นทางของเช็คพอยท์คือ android.transparency.goog/mainline/modules/2026/1

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

  • รูปแบบผู้ตรวจสอบหมายเหตุ (<name>+<key_hash>+<public_key_bytes>):
android.transparency.goog/mainline/modules/2026/1+1a8e4064+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 วิธีการยืนยันที่อธิบายไว้ในหน้าการยืนยัน APK ของ Google จึงใช้ที่นี่ด้วยเช่นกัน คุณสามารถใช้วิธีการในส่วนดังกล่าวเพื่อยืนยันการอ้างสิทธิ์ที่ทำในโมเดลผู้อ้างสิทธิ์