Android P v3签名新特性
新版v3签名在v2的基础上,仍然采用检查整个压缩包的校验方式。不同的是在签名部分增可以添加新的证书,即可以不用修改ApplicationID来完成证书的更新迭代。 本文引用自 https://xuanxuanblingbling.github.io/ctf/android/2018/12/30/signature/ 概述 签名机制主要有两种用途: 使用特殊的key签名可以获取到一些不同的权限 验证数据保证不被篡改,防止应用被恶意的第三方覆盖 这里我们主要讨论第二个用途,即验证数据是否是可信的。应用程序的作者使用自己的私钥签名APK文件,并将签名与公钥一起发布到APK中,这个过程称之为签名。当应用程序被安装时,用发布的公钥去解析签名,并与文件的hash进行比对,这个过程叫验签。 显然这里我们尝试修改被签名数据的任何一部分都会导致验签失败,但是我们并不能防止重新签名。于是就存在一个问题:如何相信一个应用是正版应用?AOSP原生中并没有这种校验机制,如果是第一次安装,则默认相信自签名的应用。 但是当我们更新应用时,android根据应用的ApplicationID(一般与包名相同)来判断是否是同一个应用,并且要验证原来的应用与更新应用的证书是否匹配。但是在v1v2的签名版本中一个应用只允许用一个证书来校验,这时如果软件开发者想要更新证书并且完成软件的更新,是没有办法的