Android安全机制(3) APK 签名机制

本文详细介绍了Android的APK签名机制,包括数字摘要、非对称加密算法、数字签名和数字证书的基础知识。阐述了APK签名过程、验证过程以及二次打包的攻防措施。此外,还提到了APK Signature Scheme v2及其对渠道包生成工具的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

以前的Android安全机制(1)介绍过基于UID和GID的Android进程隔离机制,使用的是Linux的权限访问控制,控制文件和设备访问。Android安全机制(2)Android Permission权限机制是对Android安全机制的一个重要补充,控制了应用对于系统接口或者对外接口的访问。
这次介绍一下Android的APK签名机制。APK签名是Android安全的第一道防线,Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装。另外签名被破解或者伪造的话,就等于整个APK都可能被伪造。

基础知识

数字摘要

数字摘要(Digital Digest),又称消息摘要(Message Digest)或数字指纹(Finger Print)。一段信息,经过摘要算法得到一串值,就是摘要(dijest)。摘要算法有MD5、SHA1、SHA256、SHA512等
1、信息是任意长度,而摘要是定长。例如应用MD5算法摘要的消息有128个比特位,用SHA-1算法摘要的消息最终有160比特位的输出,SHA-1的变体可以产生192比特位和256比特位的消息摘要。一般认为,摘要的最终输出越长,该摘要算法就越安全。
2、算法把无限的映射成有限,因此理论上可能会有碰撞(两个不同的信息,算出的摘要相同)
3、摘要不同于加密算法,因为不存在解密,因为从摘要反推原信息很难(可以认为能加密但无法解密还原)
4、HmacMD5/HmacSHA1/HmacSHA256等算法在对应的HASH算法之上增加了密钥的支持以提高安全性

非对称加密算法(私钥、公钥)

加密算法重要的概念是公钥和私匙。
先有私钥,再用函数生成公钥。公钥包含了私钥的信息,但也掺杂了其他随机变量,因此不能反推。
私匙不要泄露,公钥要告诉和你通信的对方。公钥加密,只有对应私钥能解开;私钥加密,只有对应公钥能解开。
具体有两种情形:
(1)对方用你的公钥加密信息,你收到后用私钥解开。只有你有私钥,所以只有你能解开,换句话说,有私钥才能看到信息,很安全。
(2)你拿私钥加密信息,对方收到后用你的公钥解开。公钥是公开的,所以其他人也可以看到你的信息,不保密。私钥加密,只有对应公钥能解开。既然用你的公钥能解开,说明加密一定是你的私钥。私钥只有你有,所以一定是你发送的,你不可抵赖。
Android APK 签名中用的是第二种情形。公钥也打包在APK中。

数字签名

摘要经过加密算法加密,就得到了数字签名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值