Android签名机制

来源:互联网 发布:js trigger事件 编辑:程序博客网 时间:2024/05/16 17:34

  Anroid系统通过对第三方APK包进行签名,达到识别应用程序开发者身份的目的,但只能够检测应用程序是否被修改过,无法有效限制应用程序被恶意篡改。
  android APK的签名过程主要分为以下三个步骤:

1,生成MANIFEST.MF文件

  生成MANIFEST.MF文件过程是对APK包中所有未签名文件逐个用SHA1算法进行数字签名,再对数字签名信息采用Base64进行编码,最后将编码完成的签名写入MANIFEST.MF文件中。
  SHA1是一种Hash算法,两个不同的信息经过Hash运算后不会产生同样的信息摘要,由于SHA1是单向的,所以不可能从消息摘要中复原原文。如果恶意程序改变了APK包中的文件,那么在进行APK安装校验时,被改变文件的摘要信息与MANIFEST.MF中的校验信息不同,应用程序便不能安装成功。

2,生成CERT.SF文件

  在生成MANIFEST.MF文件之后,用SHA1-RSA算法对其中的数字签名逐条进行私钥签名,生成CERT.SF文件。
  由于RSA是一种非对称加密算法,因此用私钥对MANIFEST.MF的中数字签名加密后,在APK安装时只能使用公钥才能将其解密。以防止MANIFEST.MF中的数字签名被篡改。

3,生成CERT.RSA文件

  生成CERT.RSA文件需要使用与上述私钥成对的公钥。CERT.RSA文件中保存了公钥以及所采用的加密算法等信息。

0 0
原创粉丝点击