为了提高 Google 应用和产品的可信度,我们致力于在透明度日志中列出每个 Google 产品软件包。 我们发布了透明度日志,以便公开验证我们针对这些软件包(APK 和 APEX)所做的 声明。
威胁模型
透明度系统可用于检测供应链攻击,从而起到威慑作用。下面我们通过一些示例进行说明。
假设攻击者恶意修改了 Google 应用或产品,甚至设法使用通过 Google Play 进行分发时所用的签名密钥对其进行签名。 借助二进制透明度日志,任何收到可疑软件包(APK 或 APEX)的人都可以将其用作额外的可验证的真实来源,以验证软件包的真实性。 他们会发现 Google 尚未将相应的软件包元数据添加到日志中,因此会知道不要信任被入侵的软件包。
由于向日志发布与使用 签名进行发布是不同的流程(如生态系统图所示), 因此这不仅提高了攻击者入侵密钥的门槛,还提高了其他方面的门槛。
虽然我们计划使用标准见证协议将此日志集成到公共见证网络中 ,但我们鼓励外部独立方监控此 公开日志 的完整性。 这些方可以证明日志的仅追加属性,并报告任何篡改行为。
此类透明度系统的存在以及攻击的可发现性提高,有助于阻止恶意活动。 如果软件包遭到入侵,但用户只信任日志中的软件包,则需要公开被入侵的软件包。 这样一来,发现被入侵软件包的可能性就会增加,并且可以采取措施来移除其分发。
版权主张方模型
版权主张方模型是一个框架,用于在 可验证的系统中 定义角色和工件。就 Google 产品应用透明度而言,我们所做的声明是,此日志中记录的软件包文件的哈希值代表特定版本的官方 Google 产品,供公众使用。
- ClaimGoogleApp:(我,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)。这样可以全面涵盖每个文件的内容,并让用户更轻松地获取此衡量指标。
生态系统图
