SHARE THE PERSPECTIVE

安装 APK 文件之前,核对 SHA-256 哈希可以表明,你的文件与已有可信哈希对应的版本相同。这项检查很有用,但仅凭它不能证明应用没有漏洞或恶意软件。

安全下载涉及三个不同的问题:文件来自哪里、传输过程中是否被更改,以及其内部代码有哪些证据支持。任何哈希值都无法独自回答这三个问题。

文件哈希有什么作用?

SHA-256 根据文件内容生成一个固定长度的值。如果文件改变,预期其哈希也会改变。因此,比较两个哈希是检查文件字节是否相同的实用方法。

结果是否可靠,取决于比较依据是否可靠。如果攻击者能同时替换 APK 及其旁边公布的哈希,两者相符也无法揭示问题。Livara 威胁模型也解释了文件检查的这一局限。

安装前的检查方法

  1. **明确目标版本。**将产品名称、版本号和软件包类型与发布页面进行核对。不同版本的文件通常不会有相同哈希。

  2. **从可信来源取得预期哈希。**不要仅凭一条同时发送文件和哈希的陌生消息。应独立核实官方网站的地址。

  3. 计算已下载文件的哈希。Livara Proof Lab提供 APK 哈希比较工具。不要把它当成对应用的全面安全测试。

  4. **比较完整的值。**只看开头或结尾几个字符并不足够。也要检查是否弄错了版本名称或选错了文件。

  5. **如果不一致,停止安装。**差异可能来自版本不同、下载不完整或文件被更改;它本身并不能证明存在恶意软件。在原因明确之前不要安装,并通过官方渠道重新检查。

本指南不提供任何代表“安全版本”的示例哈希,因为正确的值取决于具体的发布文件。

哈希、签名和可复现构建有何区别?

检查 可以支持的结论 单独无法证明的结论
SHA-256 哈希 文件与比较依据相同 代码安全或发布者值得信任
APK 签名 文件由特定签名密钥签署,且签名验证有效 密钥持有者永远不会发布恶意代码
可复现构建 使用指定的源码、环境和指令,可以构建出相同的字节 源码不存在安全缺陷
代码安全审查 在被检查的范围和版本内发现或评估了问题 不再存在任何未知缺陷

Android 官方 apksigner 工具可用于检查 APK 签名及证书信息。全新安装与更新已有应用也不相同;Android 会在更新时检查签名者的兼容性。未知发布者的有效签名,并不足以成为信任的理由。

可复现构建的定义同样要求明确的源码和构建环境。核对下载文件的哈希不能替代这一过程。

Proof Lab 的范围是什么?

除了文件哈希,Proof Lab 页面还包含浏览器内的密码学演示。一次成功的密码学操作演示,并不是对已安装应用的全面审计,也不是完整运行通信应用的所有协议。工具本身也必须在可信环境中运行;被入侵的设备或页面可能显示误导性结果。

安装之后,更新、应用权限和设备安全仍然重要。今天验证过的文件,并不意味着未来版本自动通过验证。

哈希比对是信任链中的一项具体检查;同时理解发布来源、签名者及结果的局限,才能让它发挥更大价值。

在 Proof Lab 离线检查你的 APK
CONTINUE THE THREADAndroid & device security ↗
YOU’VE REACHED THE ENDBack to the reading room ↗