Android APK 签名文件MANIFEST.MF、CERT.SF、CERT.RSA分析
这篇讲的是Android APK签名中三个关键文件:MANIFEST.MF、CERT.SF和CERT.RSA的内部结构和作用。作者从一个已签名的APK入手,逐步解剖了这三个文件如何构成一个层层校验的“信任链”。 核心机制是“三明治”式的校验:MANIFEST.MF首先记录了APK内所有文件的SHA-1哈希值,确保每个资源文件的完整性;接着,CERT.SF文件不仅保存了MANIFEST.MF本身的哈希值,还对MANIFEST.MF中的每一项描述再次进行SHA-1计算并存储,这相当于对“清单的清单”进行了二次确认。最后,CERT.RSA文件则包含了用于验证上述所有哈希值的公钥和签名者证书信息,完成了整个数字签名的闭环。 文章不仅展示了每个文件的具体内容,还通过手动计算和使用OpenSSL工具生成密钥、提取证书等方式进行了实战验证,并引用了Android源码佐证。整个分析过程清晰地揭示了Android签名机制如何通过这种“文件哈希 -> 清单哈希 -> 对清单的签名”的三重保障,来确保应用的完整性与来源可信度。