Android签名机制

Posted 南飞的孤雁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android签名机制相关的知识,希望对你有一定的参考价值。

  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文件中保存了公钥以及所采用的加密算法等信息。

以上是关于Android签名机制的主要内容,如果未能解决你的问题,请参考以下文章

Android签名机制---签名过程

Android签名机制之—签名过程详解

Android签名机制之—签名验证过程详解

Android签名验证与反调试机制的对抗技术

Android签名验证与反调试机制的对抗技术

Android签名机制