Untuk meningkatkan kepercayaan pada aplikasi dan produk Google, kami berkomitmen untuk mencantumkan setiap paket produk Google dalam log transparansi kami. Kami memublikasikan log transparansi untuk memverifikasi secara publik klaim yang kami buat terkait paket ini (APK dan APEX).
Model Ancaman
Sistem transparansi dapat digunakan untuk mendeteksi - dan dengan demikian mencegah serangan rantai pasokan. Kami mengilustrasikannya dengan beberapa contoh.
Misalkan, penyerang memodifikasi aplikasi atau produk Google secara berbahaya dan bahkan berhasil menandatanganinya dengan kunci penandatanganan yang digunakan untuk distribusi melalui Google Play. Dengan log transparansi biner, siapa pun yang menerima paket yang meragukan (APK atau APEX) dapat menggunakannya sebagai sumber kebenaran dasar yang dapat diverifikasi tambahan untuk memverifikasi keaslian paket. Mereka akan mendapati bahwa Google belum menambahkan metadata paket yang sesuai ke log dan akan tahu untuk tidak memercayai paket yang dibobol.
Karena memublikasikan ke log adalah proses terpisah dari proses rilis dengan penandatanganan (seperti yang diilustrasikan dalam Diagram Ekosistem), hal ini meningkatkan kesulitan bagi penyerang untuk melakukan serangan, tidak hanya sekadar membahayakan kunci.
Meskipun kami berencana untuk mengintegrasikan log ini ke dalam jaringan saksi publik menggunakan protokol saksi standar, kami mendorong pihak eksternal yang independen untuk memantau integritas log yang tersedia untuk publik ini. Pihak-pihak ini dapat mengonfirmasi properti hanya-tambah dari log, dan melaporkan setiap pemalsuan.
Keberadaan sistem transparansi tersebut dan penemuan serangan tambahan akan mencegah aktivitas berbahaya. Jika paket disusupi, tetapi pengguna hanya memercayai paket yang ada di log, paket yang disusupi harus diekspos secara publik. Hal ini meningkatkan kemungkinan ditemukannya paket yang disusupi, dan tindakan dapat dilakukan untuk menghentikan distribusinya.
Model Penggugat
Model Pengklaim adalah framework yang digunakan untuk menentukan peran dan artefak dalam sistem yang dapat diverifikasi. Dalam kasus Transparansi Aplikasi Produk Google, klaim yang kami buat adalah bahwa hash file paket yang dicatat dalam log ini merepresentasikan versi tertentu dari produk resmi Google yang ditujukan untuk konsumsi publik.
- ClaimGoogleApp: (Saya, Google, mengklaim bahwa
$hashAppadalah untuk$googleApp), dengan:$hashAppadalah hash kriptografi (misalnya, SHA256) dari file paket (termasuk APK terpisah dan paket APEX) dari versi tertentu$googleApp.$googleAppadalah paket Android (APK atau APEX) yang membentuk aplikasi atau produk yang dibuat dan didistribusikan Google.
Siapa pun yang memiliki salinan $googleApp dapat memverifikasi klaim ini,
dan kami menjelaskan proses ini secara mendetail di
halaman verifikasi.
Konten Log
Saat Google merilis versi baru paket APK atau APEX, Google akan menambahkan entri yang sesuai ke Log Transparansi Aplikasi Produk Google.
Setiap entri dalam log ini berisi empat bagian metadata:
- Hash file APK atau APEX dari paket yang ditandatangani Google. Ini adalah string hex dari digest SHA256 seluruh file.
- Deskripsi jenis hash sebelumnya. Ini adalah string.
- Nama paket paket. Ini adalah string.
- Nomor versi (versionCode) paket. Ini adalah bilangan bulat bukan nol.
Format entri log adalah gabungan dari empat informasi
dengan karakter newline (\n), seperti yang diilustrasikan berikut:
hash\nhash_description\npackage_name\npackage_version\n
Karena produk Google dapat didistribusikan sebagai file APK atau APEX, deskripsi hash ditetapkan ke SHA256(APK) atau SHA256(APEX). Hal ini memberikan cakupan yang komprehensif terhadap konten setiap file, dan memudahkan pengguna mendapatkan pengukuran ini.
Diagram Ekosistem
