Android应用签名:枷锁、问题与OASP革新

需积分: 9 4 下载量 146 浏览量 更新于2024-07-19 收藏 5.01MB PDF 举报
Android应用签名的枷锁与革新探讨了Android应用程序在安全性和生态系统中所扮演的关键角色,以及当前面临的一些挑战和局限性。首先,Android应用签名是确保软件来源可靠、防止恶意修改的基础,通过AOSP中的signapk工具支持多密钥和多种签名算法,安装时系统会检查MANIFEST.MF文件的签名信息,包括MAINFEST.MF、*.SF、*.RAS/DSA/EC等。然而,这个过程并非完美无缺,存在一些问题。 签名验证过程中,MasterKey漏洞曾导致Bug8219231、9695860和9950697,使得恶意开发者能够利用这些漏洞进行签名操纵。特别地,META-INF目录中的文件不一定会被包含在MAINFEST.MF中,这常被用来隐藏文件或插入渠道信息。Android应用并不总是检查证书的有效期,尽管某些应用商店会执行这一操作,但Android签名体系缺乏完善的公钥基础设施(PKI),Self-signed证书作为最高级别证书,被视为可信CA,但这并未涵盖CRL/OCSP功能,仅限于SSL/HTTPS场景。 Schemev2(自Android 7开始引入)改进了签名效率,采用区块化和并行处理,但为了兼容性,通常需要先使用旧方法签名后再应用新版本。此外,APK的ZIPEntries结构和签名块(如CentralDirectory、EndofCentralDirectory、Digest等)也与签名密切相关。需要注意的是,签名文件如*.RSA/DSA/EC通常是PKCS#7格式,包含了证书信息,而PackageManager.getPackage方法则是获取应用信息的重要途径。 总结来说,Android应用签名不仅是保障应用安全的机制,但也面临着漏洞、不完整性和兼容性问题。OASP(某解决方案缩写)旨在解决这些问题,提供更为安全、高效的签名解决方案,推动Android签名体系的革新,以适应不断变化的移动应用生态需求。