Untuk meningkatkan kepercayaan pada aplikasi Google, kami kini berkomitmen untuk mencantumkan setiap aplikasi produk Google dalam log transparansi kami. Kami memublikasikan log transparansi untuk memverifikasi secara publik klaim yang kami buat terkait APK ini.
Model Ancaman
Sistem transparansi dapat digunakan untuk mendeteksi, dan dengan demikian mencegah serangan rantai pasokan. Kami akan mengilustrasikannya dengan beberapa contoh.
Misalnya, penyerang mengubah aplikasi 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 APK yang dipertanyakan dapat menggunakannya sebagai sumber kebenaran dasar yang dapat diverifikasi untuk memverifikasi keaslian APK. Mereka akan menemukan bahwa Google belum menambahkan metadata APK yang sesuai ke log dan akan tahu untuk tidak mempercayai APK yang disusupi.
Karena publikasi ke log adalah proses yang terpisah dari proses rilis dengan penandatanganan (seperti yang diilustrasikan dalam Diagram Ekosistem), hal ini meningkatkan standar bagi penyerang di luar sekadar membahayakan kunci.
Meskipun kami berencana untuk mengintegrasikan log ini ke dalam jaringan saksi publik menggunakan protokol saksi standar, kami mendorong pihak eksternal dan independen untuk memantau integritas log yang tersedia secara publik ini. Pihak-pihak ini dapat membuktikan properti log yang hanya dapat ditambahkan, dan melaporkan setiap upaya perusakan.
Keberadaan sistem transparansi tersebut dan penemuan serangan tambahan akan mencegah aktivitas berbahaya. Jika APK disusupi, tetapi pengguna hanya mempercayai APK yang ada di log, APK yang disusupi harus diekspos secara publik. Hal ini meningkatkan kemungkinan ditemukannya APK yang disusupi, dan tindakan dapat diambil untuk menghapus distribusinya.
Model Penggugat
Model Penggugat adalah framework yang digunakan untuk menentukan peran dan artefak dalam sistem yang dapat diverifikasi. Dalam kasus Transparansi Aplikasi Pihak Pertama Google, klaim yang kami buat adalah bahwa hash file APK yang dicatat dalam log ini mewakili versi tertentu dari aplikasi Google resmi yang ditujukan untuk konsumsi publik.
- ClaimGoogleApp: (I, Google, claim that
$hashAppis for$googleApp), where:$hashAppis a cryptographic hash (e.g. SHA256) of the APK file (including split APKs) of a specific version of$googleApp.$googleAppis an Android package (APK) that makes up an app that Google creates and distributes.
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 APK, Google akan menambahkan entri yang sesuai ke Log Transparansi APK Pihak Pertama Google.
Setiap entri dalam log ini berisi empat bagian metadata:
- Hash file APK dari aplikasi yang ditandatangani Google. Ini adalah string hex dari ringkasan SHA256 seluruh file.
- Deskripsi jenis hash sebelumnya. Ini adalah string.
- Nama paket APK. Ini adalah string.
- Nomor versi (versionCode) APK. Ini adalah bilangan bulat bukan nol.
Format entri log adalah gabungan dari empat bagian informasi dengan karakter baris baru (\n), seperti yang diilustrasikan oleh hal berikut:
hash\nSHA256(APK)\npackage_name\npackage_version\n
Karena kami mengukur seluruh file APK, deskripsi hash ditetapkan ke SHA256(APK). Hal ini memberikan cakupan komprehensif dari konten setiap file, dan memudahkan pengguna untuk mendapatkan pengukuran ini.
Diagram Ekosistem
