เรามุ่งมั่นที่จะแสดงรายการแพ็กเกจผลิตภัณฑ์ทุกรายการของ Google ในบันทึกความโปร่งใสเพื่อเพิ่มความน่าเชื่อถือในแอปและผลิตภัณฑ์ของ Google เราได้เผยแพร่บันทึกความโปร่งใสเพื่อยืนยันต่อสาธารณะถึง การอ้างสิทธิ์ที่เราดำเนินการเกี่ยวกับแพ็กเกจเหล่านี้ (APK และ APEX)
โมเดลภัยคุกคาม
ระบบความโปร่งใสสามารถใช้เพื่อตรวจหาและป้องกันการโจมตีซัพพลายเชน เราจะยกตัวอย่างประกอบ
สมมติว่าผู้โจมตีแก้ไขแอป Google หรือผลิตภัณฑ์ของ Google อย่างเป็นอันตราย และยังจัดการลงชื่อด้วยคีย์การลงชื่อที่ใช้สำหรับการเผยแพร่ผ่าน Google Play ได้ บันทึกความโปร่งใสแบบไบนารีช่วยให้ทุกคนที่ได้รับแพ็กเกจที่น่าสงสัย (APK หรือ APEX) สามารถใช้บันทึกดังกล่าวเป็นแหล่งข้อมูลที่ตรวจสอบได้เพิ่มเติมเพื่อยืนยันความถูกต้องของแพ็กเกจ โดยจะพบว่า Google ไม่ได้เพิ่มข้อมูลเมตาของแพ็กเกจที่เกี่ยวข้องลงในบันทึก และจะทราบว่าไม่ควรเชื่อถือแพ็กเกจที่ถูกบุกรุก
เนื่องจากการเผยแพร่ไปยังบันทึกเป็นกระบวนการที่แยกต่างหากจากกระบวนการเผยแพร่ที่มี การลงชื่อ (ดังที่แสดงในแผนภาพระบบนิเวศ) จึงเป็นการเพิ่มอุปสรรคให้ผู้โจมตีมากกว่าเพียงแค่การบุกรุกคีย์
แม้ว่าเราจะวางแผนที่จะผสานรวมบันทึกนี้เข้ากับเครือข่ายพยานสาธารณะ โดยใช้โปรโตคอลพยานมาตรฐานด้วย แต่เราขอแนะนำให้บุคคลภายนอกที่เป็นอิสระตรวจสอบความสมบูรณ์ของบันทึกที่เปิดเผยต่อสาธารณะนี้ บุคคลเหล่านี้สามารถยืนยันคุณสมบัติการเพิ่มข้อมูลเท่านั้นของบันทึก และรายงานการแก้ไขใดๆ
การมีอยู่ของระบบความโปร่งใสและการค้นพบการโจมตีเพิ่มเติมจะช่วยยับยั้งกิจกรรมที่เป็นอันตราย หากแพ็กเกจถูกบุกรุก แต่ผู้ใช้เชื่อถือเฉพาะแพ็กเกจที่อยู่ในบันทึก แพ็กเกจที่ถูกบุกรุกจะต้องได้รับการเปิดเผยต่อสาธารณะ ซึ่งจะเพิ่มโอกาสในการค้นพบว่ามีแพ็กเกจที่ถูกบุกรุกอยู่ และสามารถดำเนินการเพื่อนำการเผยแพร่แพ็กเกจดังกล่าวออกได้
โมเดลผู้อ้างสิทธิ์
โมเดลผู้อ้างสิทธิ์เป็นเฟรมเวิร์กที่ใช้กำหนดบทบาทและอาร์ติแฟกต์ในระบบที่ ตรวจสอบได้ ในกรณีของความโปร่งใสของแอปพลิเคชันผลิตภัณฑ์ของ Google การอ้างสิทธิ์ของเราคือแฮชของไฟล์แพ็กเกจที่บันทึกไว้ในบันทึกนี้แสดงถึงผลิตภัณฑ์อย่างเป็นทางการของ Google เวอร์ชันหนึ่งที่เฉพาะเจาะจงซึ่งมีไว้สำหรับสาธารณะ
- ClaimGoogleApp: (ฉัน, Google, อ้างสิทธิ์ว่า
$hashAppมีไว้สำหรับ$googleApp) โดยที่:$hashAppคือแฮชการเข้ารหัสลับ (เช่น SHA256) ของไฟล์แพ็กเกจ (รวมถึง APK ที่แยก และ แพ็กเกจ APEX) ของเวอร์ชันหนึ่งที่เฉพาะเจาะจง ของ$googleApp$googleAppคือแพ็กเกจ Android (APK หรือ APEX) ที่ประกอบขึ้นเป็นแอปหรือผลิตภัณฑ์ที่ Google สร้างและเผยแพร่
ทุกคนที่มีสำเนาของ $googleApp สามารถยืนยันการอ้างสิทธิ์นี้ได้
และเราจะอธิบายกระบวนการนี้อย่างละเอียดใน
หน้าการยืนยัน
เนื้อหาบันทึก
เมื่อ Google เผยแพร่แพ็กเกจ APK หรือ APEX เวอร์ชันใหม่ ระบบจะเพิ่มรายการที่เกี่ยวข้องลงใน บันทึกความโปร่งใสของแอปพลิเคชันผลิตภัณฑ์ของ Google
แต่ละรายการในบันทึกนี้จะมีข้อมูลเมตา 4 รายการ ได้แก่
- แฮชของไฟล์ APK หรือ APEX ของแพ็กเกจที่ Google ลงชื่อ ซึ่งเป็นสตริงฐานสิบหกของ SHA256 ไดเจสต์ของไฟล์ทั้งหมด
- คำอธิบายประเภทของแฮชก่อนหน้า ซึ่งเป็นสตริง
- ชื่อแพ็กเกจของแพ็กเกจ ซึ่งเป็นสตริง
- หมายเลขเวอร์ชัน (versionCode) ของแพ็กเกจ ซึ่งเป็นจำนวนเต็มที่ไม่ใช่ 0
รูปแบบของรายการบันทึกคือการเชื่อมโยงข้อมูลทั้ง 4 รายการเข้าด้วยกันโดยมีอักขระขึ้นบรรทัดใหม่ (\n) คั่น ดังตัวอย่างต่อไปนี้
hash\nhash_description\npackage_name\npackage_version\n
เนื่องจากผลิตภัณฑ์ของ Google สามารถเผยแพร่เป็นไฟล์ APK หรือ APEX ได้ คำอธิบายแฮชจึงตั้งค่าเป็น SHA256(APK) หรือ SHA256(APEX) ซึ่งจะครอบคลุมเนื้อหาของแต่ละไฟล์อย่างครบถ้วน และช่วยให้ผู้ใช้ได้รับข้อมูลการวัดผลนี้ได้ง่ายขึ้น
แผนภาพระบบนิเวศ
