-
-
[原创]APKV1签名能否篡改?
-
发表于:
2020-12-29 16:59
4464
-
签名原理我就不陈述了,资料很多
00-APK签名文件
META-INF/CERT.RSA
META-INF/CERT.SF
META-INF/MANIFEST.MF
三个文件的关系、
MANIFEST.MF -> CERT.SF -> CERT.RSA
MANIFEST.MF文件:记录文件中的每个条目内容做一次SHA1然再加Base64编码
CERT.SF文件:SHA1-Digest-Manifest”属性值是MANIFEST.MF文件的整体SHA1值,再经过BASE64编码
逐条计算MANIFEST.MF文件中每一个块的SHA1,并经过BASE64编码后,记录在CERT.SF中的同名块中,属性的名字是“SHA1-Digest。
CERT.SF文件, 用私钥计算出签名, 然后将签名以及包含公钥信息的数字证书一同写入 CERT.RSA文件。
可以说MANIFEST.MF和CERT.SF文件和签名没关系、如果修改apk内容不更新签名、可以很容易更新这两个文件信息、麻烦的是CERT.RSA文件。CERT.SF文件使用私钥计算出签名, 然后将签名以及包含公钥信息的数字证书一同写入 CERT.RSA文件中、重点是128值无法逆向计算出来。从密码学角度来看、理论上能够逆向出来、但是微乎其微。
那么能逆向出来、可以说签名就很容易被破解了、不改变签名值的情况下就能更新Apk。
APK安装包能够提取出签名证书?
不说.keystore文件了、可以转换成pk8 + x509.pem
只要有二个文件就能签名、.pk8(包含私钥)文件 + .x509.pem(包含公钥)文件。也可以有.sbt
签名是拿私钥去加密、公钥来解密。
自己写了一个程序从apk包提取证书,但是不能破解出私钥(pk8)文件。
只能提取出x509.pem与.sbt还缺少.pk8。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2020-12-29 17:02
被Gnoliew编辑
,原因: