為提升 Google 應用程式和產品的信任度,我們致力於在透明度記錄中列出每個 Google 產品套件。我們發布了資訊公開記錄,公開驗證我們對這些套件 (APK 和 APEX) 所做的聲明。
威脅模型
透明化系統可用於偵測供應鏈攻擊,進而達到嚇阻效果。我們將舉例說明。
假設攻擊者惡意修改 Google 應用程式或產品,甚至設法使用透過 Google Play 發布時使用的簽署金鑰簽署該應用程式/產品。有了二進位透明度記錄,收到可疑套件 (APK 或 APEX) 的任何人,都能將其做為額外的可驗證事實來源,驗證套件的真實性。他們會發現 Google 並未將對應的套件中繼資料新增至記錄,因此知道不要信任遭入侵的套件。
由於發布至記錄檔的程序與簽署發布程序不同 (如生態系統圖所示),這會提高攻擊者的門檻,不只是要入侵金鑰。
我們計畫使用標準見證通訊協定,將這份記錄整合至公開的見證人網路,同時也鼓勵外部獨立機構監控這份公開記錄的完整性。這些當事人可以證明記錄的僅附加屬性,並回報任何竄改行為。
這類透明度系統的存在,以及攻擊事件的額外可探索性,有助於遏止惡意活動。如果套件遭到入侵,但使用者只信任記錄中的套件,則遭到入侵的套件必須公開。這樣一來,您就更有可能發現遭入侵的套件,並採取行動移除其發布內容。
著作權聲明方模型
聲明者模型是一種架構,用於在可驗證的系統中定義角色和構件。以 Google 產品應用程式透明度為例,我們聲明這份記錄中記錄的套件檔案雜湊值,代表特定版本的 Google 官方產品,供大眾使用。
- 聲明GoogleApp:(本人 Google 聲明「
$hashApp」適用於「$googleApp」),其中:
只要有$googleApp副本,任何人都能驗證這項聲明,
我們會在驗證頁面中詳細說明這項程序。
記錄內容
Google 發布新版 APK 或 APEX 套件時,會將對應項目新增至 Google 產品應用程式資訊公開記錄。
這份記錄中的每個項目都包含四種中繼資料:
- Google 簽署套件的 APK 或 APEX 檔案雜湊值。這是整個檔案的 SHA256 摘要十六進位字串。
- 前一個雜湊的類型說明。這是字串。
- 套件的套件名稱。這是字串。
- 套件的版本號碼 (versionCode)。 這是非零整數。
記錄項目的格式是將四項資訊與換行 (\n) 字元串連在一起,如下所示:
hash\nhash_description\npackage_name\npackage_version\n
由於 Google 產品可以 APK 或 APEX 檔案形式發布,雜湊說明會設為 SHA256(APK) 或 SHA256(APEX)。這項功能可全面涵蓋每個檔案的內容,方便使用者取得這項指標。
生態系統圖
