Android Apk签名信息详解
来源:互联网 发布:球球大作战点链接软件 编辑:程序博客网 时间:2024/04/30 06:00
应用程序打包时,会对每一个未签名的apk进行签名。在Apk安装时,会将其签名信息进行比对,从而判断该Apk是否可以安装,在一定程度上达到安全的目的。
给定一个Apk文件,解压,可以看到一个META-INFO文件夹,在该文件夹下有三个文件:分别为MANIFEST.MF、CERT.SF和CERT.RSA。这三个文件分别表征以下含义:
MANIFEST.MF:这是摘要文件。程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同,于是程序就不能成功安装。
(说明:如果攻击者修改了程序的内容,有重新生成了新的摘要,那么就可以通过验证,所以这是一个非常简单的验证)CERT.SF:这是对摘要的签名文件。对前一步生成的MANIFEST.MF,使用SHA1-RSA算法,用开发者的私钥进行签名。在安装时只能使用公钥才能解密它。解密之后,将它与未加密的摘要信息(即,MANIFEST.MF文件)进行对比,如果相符,则表明内容没有被异常修改。
(说明:在这一步,即使开发者修改了程序内容,并生成了新的摘要文件,但是攻击者没有开发者的私钥,所以不能生成正确的签名文件(CERT.SF)。系统在对程序进行验证的时候,用开发者公钥对不正确的签名文件进行解密,得到的结果和摘要文件(MANIFEST.MF)对应不起来,所以不能通过检验,不能成功安装文件)CERT.RSA文件中保存了公钥、所采用的加密算法等信息。
(说明:系统对签名文件进行解密,所需要的公钥就是从这个文件里取出来的)
结论:从上面的总结可以看出,META-INFO里面的说那个文件环环相扣,从而保证Android程序的安全性。(只是防止开发者的程序不被攻击者修改,如果开发者的公私钥对对攻击者得到或者开发者开发出攻击程序,Android系统都无法检测出来。
查看Apk签名信息:jarsigner -verify -verbose -certs xxx.apk
查看KeyStore信息:keytool -list -v -keystore keystore.jks
查看Apk签名指纹信息:解压缩Apk,keytool -printcert -file META_INF/CERT.RSA
- Android Apk签名信息详解
- Android:获取APK签名信息
- Android:获取APK签名信息 .
- Android 读取APK签名信息
- Android 读取APK签名信息
- android 读取apk签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- Android 读取APK签名信息
- android apk 签名信息 相关
- android查看apk签名信息
- Android获取apk签名信息
- 获取Android的APK包签名信息
- Android 如何读取APK 签名信息
- Android查看apk签名信息方法
- Android Studio apk打包以及获取apk签名信息
- Android APK 签名比对详解
- Android应用apk的程序签名详解
- SAP ABAP收货或者货物移动(MIGO,MB11,MB1A)在保存时候的增强点
- cordova应用在遇到https下安全证书有问题的解决方式
- 玩转树莓派之环境搭建 --- 系统准备
- setDefaultUncaughtExceptionHandler
- boost 多线程
- Android Apk签名信息详解
- android客户端从服务器端获取json数据并解析的实现代码
- ELK错误1_Kafka->Logstash->Elasticsearch过程,Elasticsearch报grokparsefailure错误
- springmvc项目4--映射POJO
- LeetCode 038 Count and Say
- const在函数前与函数后的区别
- MySql避免重复插入记录
- 分享:Android之自定义标题
- 设置form中表单内容边框不显示