Google 產品應用程式透明度

為提升 Google 應用程式和產品的信任度,我們致力於在透明度記錄中列出每個 Google 產品套件。我們發布了資訊公開記錄,公開驗證我們對這些套件 (APK 和 APEX) 所做的聲明。

威脅模型

透明化系統可用於偵測供應鏈攻擊,進而達到嚇阻效果。我們將舉例說明。

假設攻擊者惡意修改 Google 應用程式或產品,甚至設法使用透過 Google Play 發布時使用的簽署金鑰簽署該應用程式/產品。有了二進位透明度記錄,收到可疑套件 (APK 或 APEX) 的任何人,都能將其做為額外的可驗證事實來源,驗證套件的真實性。他們會發現 Google 並未將對應的套件中繼資料新增至記錄,因此知道不要信任遭入侵的套件。

由於發布至記錄檔的程序與簽署發布程序不同 (如生態系統圖所示),這會提高攻擊者的門檻,不只是要入侵金鑰。

我們計畫使用標準見證通訊協定,將這份記錄整合至公開的見證人網路,同時也鼓勵外部獨立機構監控這份公開記錄的完整性。這些當事人可以證明記錄的僅附加屬性,並回報任何竄改行為。

這類透明度系統的存在,以及攻擊事件的額外可探索性,有助於遏止惡意活動。如果套件遭到入侵,但使用者只信任記錄中的套件,則遭到入侵的套件必須公開。這樣一來,您就更有可能發現遭入侵的套件,並採取行動移除其發布內容。

著作權聲明方模型

聲明者模型是一種架構,用於在可驗證的系統中定義角色和構件。以 Google 產品應用程式透明度為例,我們聲明這份記錄中記錄的套件檔案雜湊值,代表特定版本的 Google 官方產品,供大眾使用。

  • 聲明GoogleApp:(本人 Google 聲明「 $hashApp」適用於「$googleApp」),其中:
    • $hashApp 是特定版本 $googleApp 的套件檔案 (包括分割 APK 和 APEX 套件) 的加密雜湊 (例如 SHA256)。
    • $googleApp 是 Android 套件 (APK 或 APEX),構成 Google 建立及發布的應用程式或產品。

只要有$googleApp副本,任何人都能驗證這項聲明, 我們會在驗證頁面中詳細說明這項程序。

記錄內容

Google 發布新版 APK 或 APEX 套件時,會將對應項目新增至 Google 產品應用程式資訊公開記錄。

這份記錄中的每個項目都包含四種中繼資料:

  1. Google 簽署套件的 APK 或 APEX 檔案雜湊值。這是整個檔案的 SHA256 摘要十六進位字串。
  2. 前一個雜湊的類型說明。這是字串。
  3. 套件的套件名稱。這是字串。
  4. 套件的版本號碼 (versionCode)。 這是非零整數。

記錄項目的格式是將四項資訊與換行 (\n) 字元串連在一起,如下所示:

hash\nhash_description\npackage_name\npackage_version\n

由於 Google 產品可以 APK 或 APEX 檔案形式發布,雜湊說明會設為 SHA256(APK) 或 SHA256(APEX)。這項功能可全面涵蓋每個檔案的內容,方便使用者取得這項指標。

生態系統圖

可驗證記錄生態系統圖表