บันทึกความโปร่งใสแบบไบนารีของ Pixel ใช้ประโยชน์จากเทคโนโลยีบันทึกความโปร่งใส
ประโยชน์ของบันทึกความโปร่งใสได้รับการพิสูจน์แล้วกับ ความโปร่งใสของใบรับรอง อินเทอร์เน็ต ซึ่งเป็นโปรโตคอลที่กำหนดให้ผู้ออกใบรับรองเพื่อเผยแพร่ใบรับรองที่ตนใช้ ปัญหาไปยังบันทึกความโปร่งใสของใบรับรองสาธารณะ ขั้นตอนนี้ลดลงอย่างมาก การออกใบรับรองที่ไม่ถูกต้อง ซึ่งเป็นการเพิ่มความปลอดภัยของ อินเทอร์เน็ต โอเปอเรเตอร์บันทึกความโปร่งใสของใบรับรองหลายรายการใช้การใช้งาน ของบันทึกความโปร่งใสที่พบที่ transparency.dev
บันทึกความโปร่งใสจะใช้กับต้น Merkle หน้านี้จะถือว่าเหตุการณ์ทั่วไป ความรู้เกี่ยวกับต้น Merkle และความโปร่งใสของไบนารี โปรดดู โครงสร้างข้อมูลที่ยืนยันได้ เพื่อดูภาพรวมของต้น Merkle และ หน้า Landing Page สำหรับภาพรวมของไบนารี ความโปร่งใส
การติดตั้งบันทึก
บันทึกความโปร่งใสแบบไบนารีของ Pixel อยู่ในรูปแบบ ต้น Merkle ที่อิงจากกระเบื้อง รูท ของเนื้อหาของการ์ดแสดงที่ https://developers.google.com/android/binary_transparency/tile. หมายเหตุ: นี่คือ ไม่ใช่หน้าเว็บปกติ รายการบันทึกที่อยู่ในไดเรกทอรีย่อย ถูกอ่านแบบเป็นโปรแกรมด้วย Golang SumDB ไลบรารี TLog และไม่ใช่ผ่าน เบราว์เซอร์
โปรดดูเนื้อหาในบันทึกสำหรับ คำอธิบายเกี่ยวกับเนื้อหาภายในรายการ
แฮชรากต้นไม้ Merkle ของบันทึก ซึ่งอยู่ในจุดตรวจสอบจะแสดงที่ https://developers.google.com/android/binary_transparency/checkpoint.txt. ซึ่งแสดงอยู่ใน รูปแบบจุดตรวจสอบ ใบของต้น Merkle นี้มีให้ที่ https://developers.google.com/android/binary_transparency/image_info.txt ลายเซ็นของจุดตรวจสอบสามารถยืนยันได้ด้วยคีย์สาธารณะต่อไปนี้
-----BEGIN CERTIFICATE-----
MIICPDCCAeOgAwIBAgIVAPooxISw/nFF/dPwmCUaV36Z4s3hMAoGCCqGSM49BAMCMHQxCzAJBgNV
BAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYD
VQQKEwtHb29nbGUgSW5jLjEQMA4GA1UECxMHQW5kcm9pZDEQMA4GA1UEAxMHQW5kcm9pZDAgFw0y
MTA3MTkyMjQxNDFaGA8yMDUxMDcxOTIyNDE0MVowdDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNh
bGlmb3JuaWExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC0dvb2dsZSBJbmMuMRAw
DgYDVQQLEwdBbmRyb2lkMRAwDgYDVQQDEwdBbmRyb2lkMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD
QgAEU83uXNUiTYE53c2TfdWmqpW20bBXy4KEf5Ff8dV8GLKlVAXKHyjw3Lp9J3E0yCRJ/39XKeuA
AMF7KzSvhD248KNQME4wDAYDVR0TBAUwAwEB/zAdBgNVHQ4EFgQUHRpvuNkzjtBY213BWgUyWWHm
3VYwHwYDVR0jBBgwFoAUHRpvuNkzjtBY213BWgUyWWHm3VYwCgYIKoZIzj0EAwIDRwAwRAIgZsZb
CNBXRkCKLS+LG/41VWj1cTszt9QCdJQNuy7aT94CIDPgn7v5b1ykBVUTuLgRSofxAzHg9R4dg1oA
7tTFAuDg
-----END CERTIFICATE-----
กระบวนการยืนยันจะอ่านจุดตรวจและการ์ด ที่มีรายการบันทึกจากบันทึก
กระบวนการยืนยันตัวตน
บันทึกความโปร่งใสจะใช้กับแผนผัง Merkle ที่ประกอบด้วยแฮช ต โหนด Leaf มีข้อมูล และโหนดหลักมีแฮชของโหนดย่อย
ระบบคำนวณ 2 อย่างบนต้นไม้ Merkle เพื่อยืนยันการงัดแงะ คุณสมบัติของบันทึกความโปร่งใส: หลักฐานยืนยันการรวมและความสอดคล้อง ก่อนหน้านี้ พิสูจน์ว่าบันทึกมีรายการที่เกี่ยวข้องกับเวอร์ชันรูปภาพ ก็คือ โดยรายการบันทึกจะประกอบด้วย VBMeta Digest แฮชที่แสดงถึงอิมเมจของระบบปฏิบัติการ ซึ่งแสดงผลจากอุปกรณ์ได้ รายการหลังพิสูจน์ว่าเมื่อมีการเพิ่มรายการใหม่ลงในโครงสร้าง จุดตรวจใหม่ สอดคล้องกับโครงสร้างเวอร์ชันก่อนหน้า
หากต้องการยืนยันรูปภาพ Pixel ให้ทำหลักฐานการรวมไว้ การดำเนินการ การคำนวณเพื่อความสอดคล้องเป็นตัวเลือกที่ไม่บังคับ เนื่องจากบุคคลที่สามใช้ เรื่องนี้
หากคุณอยากทำความคุ้นเคยกับแนวคิดของการยืนยันใน Pixel ความโปร่งใสแบบไบนารี คุณสามารถทำตามวิธีการด้านล่างเพื่อใช้รูปภาพ ที่ทำงานอยู่บนอุปกรณ์ Pixel หากต้องการใช้เฟิร์มแวร์ Pixel ที่มีการอัปเดตสูงสุด ระดับความเชื่อมั่น โปรดดูกระบวนการยืนยันใน การยืนยันความโปร่งใสแบบไบนารีของ Pixel อย่างเต็มรูปแบบ
ข้อกำหนดเบื้องต้น
ตรวจสอบว่าทรัพยากร Dependency ต่อไปนี้พร้อมใช้งาน
- Golang: เครื่องมือยืนยันต้องสร้างขึ้นด้วย Go 1.17 ขึ้นไป และพร้อมใช้งาน จาก Go site
- Android Debug Bridge (adb): สื่อสารกับอุปกรณ์ Android เพื่อตรวจสอบ ซึ่งมีอยู่บน เว็บไซต์เครื่องมือแพลตฟอร์ม Android SDK
- เครื่องมือยืนยันความถูกต้องของการรวม: เชื่อมต่อกับบันทึกเพื่อตรวจสอบว่า Pixel อยู่ในบันทึกความโปร่งใสแบบไบนารี
# Source code for the inclusion proof verifier is found at avb/tools/transparency/verify
git clone https://android.googlesource.com/platform/external/avb
หลักฐานการไม่แบ่งแยก
เจ้าของ Pixel สามารถตรวจสอบว่ารูปภาพของตนอยู่ในบันทึกหรือไม่โดยการดึงข้อมูล ข้อมูลเมตาที่เกี่ยวข้อง จากนั้นเปรียบเทียบแฮชรูทที่คำนวณใหม่กับแฮชรูท ที่มีอยู่ใน เช็คพอยท์ที่เผยแพร่ หากตรงกัน เจ้าของ Pixel จะมั่นใจได้ว่าจะได้รับการคุ้มครองบางส่วน เป็นตัวอย่างใน โมเดลภัยคุกคาม
หากต้องการตรวจสอบว่ารูปภาพในอุปกรณ์ Pixel อยู่ในบันทึกความโปร่งใส เชื่อมต่อกับอุปกรณ์ด้วย adb จากนั้นเรียกใช้คำสั่งต่อไปนี้
FINGERPRINT=$(adb shell getprop ro.build.fingerprint)
VBMETA_DIGEST=$(adb shell getprop ro.boot.vbmeta.digest)
LOG_ENTRY="${FINGERPRINT}\n${VBMETA_DIGEST}\n"
PAYLOAD_PATH="/tmp/log_payload.txt"
echo -e $LOG_ENTRY >> $PAYLOAD_PATH
cd avb/tools/transparency/verify/
go build cmd/verifier/verifier.go
./verifier --payload_path=$PAYLOAD_PATH
ข้อความแรกจะเรียกข้อมูลเมตาจากอุปกรณ์ Pixel ในรูปแบบ
รายการบันทึก และบันทึกไว้ใน /tmp/log_payload.txt
ข้อความฉบับที่ 2 จะใช้ตัวตรวจสอบพิสูจน์การรวมที่เผยแพร่ใน ที่เก็บการเปิดเครื่องที่ได้รับการยืนยันของ Android เครื่องมือนี้จะคำนวณแฮชของรายการบันทึกผู้สมัคร และดึงข้อมูลรายการอื่น แฮชที่จำเป็นในการคำนวณจุดตรวจสอบใหม่จากบันทึก และเปรียบเทียบกับ จุดตรวจสอบที่เผยแพร่โดยบันทึก
เอาต์พุตของคำสั่งเขียนไปยัง stdout แล้ว:
OKหากมีรูปภาพอยู่ในบันทึกFAILUREหากไม่ใช่
หลักฐานความสอดคล้อง (ไม่บังคับ)
เนื่องจาก Google เปิดตัวอิมเมจเริ่มต้นของ Pixel เวอร์ชันใหม่เป็นระยะๆ บันทึกความโปร่งใสเติบโตอย่างต่อเนื่อง พยานตรวจสอบว่าต้นไม้โตขึ้นแล้ว ในลักษณะที่สอดคล้องกับใบไม้ก่อนหน้านี้ พยานติดตาม แล้วคำนวณแฮชรากของตัวเลือกถัดไปด้วยการส่งคำขอ แฮชใบไม้จากต้นไม้ บันทึกความโปร่งใสต้องมี อย่างต่อเนื่องเพื่อตรวจสอบความสอดคล้อง
มีการตรวจสอบการทำงานแบบต่อท้ายเท่านั้นของบันทึกความโปร่งใส ฝ่ายต่างๆ และผู้ใช้ส่วนใหญ่ไม่จำเป็นต้องดำเนินการนี้เอง แต่ก็เป็นไปได้ เพื่อให้ทุกคนได้ตรวจสอบความสอดคล้องของบันทึก Google ได้เผยแพร่โอเพนซอร์ส การนำพยานในมาใช้ด้วย ที่เก็บของ GitHub จำเป็นต้องดำเนินการต่อไปนี้ ให้ใช้ การกำหนดค่า ในบันทึกความโปร่งใสไบนารีของ Pixel (PixelBT) โดยเฉพาะ