【问题标题】:Why CERT.SF file is need to verify an apk in android?为什么需要 CERT.SF 文件来验证 android 中的 apk?
【发布时间】:2023-03-03 16:43:01
【问题描述】:
众所周知,MANIFEST.MF 包含 apk 中所有文件的 base64 编码的 sha1-digest,CERT.SF 包含文件 MANIFEST.MF 及其所有项目的 sha1-digest,CERT.RSA 包含签名文件 CERT.SF 和证书。
这是一个问题:
为什么不直接签署 MANIFEST.MF 并直接将签名保存在 CERT.RSA 中?
【问题讨论】:
标签:
android
certificate
apk
digital-signature
manifest.mf
【解决方案1】:
apk 保护链是 .(RSA|DSA|EC) -> .SF -> MANIFEST.MF -> 每个受完整性保护的 JAR 条目的内容。
根据官方 android 页面 [网站][1]
.SF 文件包含 META-INF/MANIFEST.MF 的完整文件摘要和 META-INF/MANIFEST.MF 的每个部分的摘要。验证了 MANIFEST.MF 的整个文件摘要。如果失败,则改为验证每个 MANIFEST.MF 部分的摘要。
因此,添加了 CERT.SF 以提供签名验证的回退机制。