ความโปร่งใสในการสมัครใช้ผลิตภัณฑ์ของ Google

เรามุ่งมั่นที่จะแสดงรายการแพ็กเกจผลิตภัณฑ์ทุกรายการของ 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 รายการ ได้แก่

  1. แฮชของไฟล์ APK หรือ APEX ของแพ็กเกจที่ Google ลงชื่อ ซึ่งเป็นสตริงฐานสิบหกของ SHA256 ไดเจสต์ของไฟล์ทั้งหมด
  2. คำอธิบายประเภทของแฮชก่อนหน้า ซึ่งเป็นสตริง
  3. ชื่อแพ็กเกจของแพ็กเกจ ซึ่งเป็นสตริง
  4. หมายเลขเวอร์ชัน (versionCode) ของแพ็กเกจ ซึ่งเป็นจำนวนเต็มที่ไม่ใช่ 0

รูปแบบของรายการบันทึกคือการเชื่อมโยงข้อมูลทั้ง 4 รายการเข้าด้วยกันโดยมีอักขระขึ้นบรรทัดใหม่ (\n) คั่น ดังตัวอย่างต่อไปนี้

hash\nhash_description\npackage_name\npackage_version\n

เนื่องจากผลิตภัณฑ์ของ Google สามารถเผยแพร่เป็นไฟล์ APK หรือ APEX ได้ คำอธิบายแฮชจึงตั้งค่าเป็น SHA256(APK) หรือ SHA256(APEX) ซึ่งจะครอบคลุมเนื้อหาของแต่ละไฟล์อย่างครบถ้วน และช่วยให้ผู้ใช้ได้รับข้อมูลการวัดผลนี้ได้ง่ายขึ้น

แผนภาพระบบนิเวศ

แผนภาพระบบนิเวศของบันทึกที่ตรวจสอบได้