志在指尖
用双手敲打未来

Android签名机制一些情况

首先咱们在as中双击apk,出现apk的剖析界面,然后选中保存签名相关文件的文件夹:
一:签名文件:
1、MANIFEST.MF:保存了所有其他文件的SHA-1并base64编码后的值
2、CERT.SF:
SHA1-Digest-Manifest的值,这个值便是MANIFEST.MF文件的SHA-1并base64编码后的值。
后面几项的值是对MANIFEST.MF文件中的每项再次SHA1并base64编码后的值。
将上一个文件的某一项取出,比方:
Name:assets/BookCategoryConfig
SHA1-Digest:u5YLUiucukHRhO/xAqnzbnCb6cU=
加两个\r\n,保存文件,再SHA1并base64编码便可得到。
3、CERT.RSA:
包括了公钥信息和发布组织信息。它把之前生成的CERT.SF文件,用私钥计算出签名,然后将签名以及包括公钥信息的数字证书一起写入CERT.RSA中保存。CERT.RSA是一个满足PKCS7格局的文件。
Name”属性,其值便是该文件在apk包中的途径。Android
二、签名过程
CERT.RSA文件生成:
它会把前面生成的CERT.SF文件用私钥计算出签名,然后将签名以及包括公钥信息的数字证书一起写入CERT.RSA中保存。CERT.RSA是一个满足PKCS7格局的文件。
三、APK装置校验过程
1、经过在CERT.RSA文件中记载的签名信息,验证了CERT.SF没有被篡改过
RSA是一种非对称加密算法。用私钥经过RSA算法对摘要信息进行加密。在装置时只能使用公钥才干解密它。解密之后,将它与未加密的摘要信息进行比照,假如相符,则表明内容没有被反常修正。
2、经过CERT.SF文件中记载的摘要值,验证了MANIFEST.MF没有被修正过
3、apk内文件的摘要值要与MANIFEST.MF文件中记载的一致
这儿简略介绍下SHA1数字签名。简略地说,它便是一种安全哈希算法,类似于MD5算法。它把任意长度的输入,经过散列算法变成固定长度的输出(这儿咱们称作“摘要信息”)。你不能仅经过这个摘要信息复原原来的信息。别的,它保证不同信息的摘要信息彼此不同。因而,假如你改动了apk包中的文件,那么在apk装置校验时,改动后的文件摘要信息与MANIFEST.MF的查验信息不同,于是程序就不能成功装置。
1、Android签名机制其实是对APK包完整性和发布组织唯一性的一种校验机制。
2、Android签名机制不能阻止APK包被修正,但修正后的再签名无法与原先的签名保持一致。(具有私钥的情况除外)。
3、APK包加密的公钥就打包在APK包内,且不同的私钥对应不同的公钥。换句话言之,不同的私钥签名的APK公钥也必不相同。所以咱们可以根据公钥的比照,来判断私钥是否一致。

未经允许不得转载:IT技术网站 » Android签名机制一些情况
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载