美文网首页
谈一谈Android的签名机制?

谈一谈Android的签名机制?

作者: ModestStorm | 来源:发表于2022-02-20 13:40 被阅读0次

首先,签名是防止apk信息被修改的一个机制,打包时把apk的信息与证书做处理,生成加密信息,安装时发现问题则拒绝安装
v1签名将apk的其他文件与证书做处理,信息保存到META-INF文件夹里,这么做的主要问题是直接修改apk包体是没法检测出来的,并由此导致了如Janus(CVE-2017-13156)这样的极严重的漏洞(ART支持直接运行dex文件,通过dex头部的魔数进行判断,而应用安装过程中是通过zip尾部的魔数判断是否是有效的zip文件,所以只要构造出一个既是dex又是zip的文件就能绕过签名验证修改里面的dex文件)
v2签名则直接用apk文件,处理之后写入进去,这样修改包体也会被系统检测出从而被拒绝安装.

v1签名:将apk中文件加密保存到META-INF目录中,不包含META-INF目中的文件。生成MANIFEST.MF、CERT.SF、CERT.RSA文件
MANIFEST.MF :保存各文件的SHA-1通过BASE64加密后的值
CERT.SF:保存MANIFEST.MF文件的SHA-1通过Base64加密后的值 和MANIFEST.MF中各项的值再次SHA-1并Base64加密保存
CERT.RSA:保存公钥和发布机构信息

v2签名:对apk整个文件进行分块摘要加密,并把加密信息存在zip中央目录前 放在apk sign block区

Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK。
V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。

V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。

v1和v2的签名使用
1)只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
3)同时勾选V1和V2则所有机型都没问题

相关文章

  • 谈一谈Android的签名机制?

    首先,签名是防止apk信息被修改的一个机制,打包时把apk的信息与证书做处理,生成加密信息,安装时发现问题则拒绝安...

  • Android V2签名机制以及ApkSignerV2签名源码解

    Android 7.0之后,新增了一个签名机制V2签名。 学习Android签名机制之前,需要你了解以下内容: 数...

  • android 系统签名

    也有提到怎么单独给一个apk签名,这里补充一下android的签名权限控制机制。 android的标准签名key有...

  • 046 Android签名机制

    彻底搞懂Android签名机制 目录 应用签名的意义 应用签名方案类型 签名方案:v1 签名方案:v2 签名方案:...

  • Android v1、v2、v3签名详解

    Android签名机制 什么是Android签名 了解 HTTPS 通信的同学都知道,在消息通信时,必须至少解决两...

  • 签名机制和渠道打包方案原理解析

    签名机制https://source.android.com/security/apksigning/http:/...

  • 前端技术月报201812期

    Android App签名流程分析 App签名机制是Android系统的安全保障,可防止App被恶意修改,有效阻止...

  • 2018-03-30

    Android代码完整性校验 Android签名机制 为了说明APK签名比对对软件安全的有效性,我们有必要了解...

  • Android签名机制

    文章摘要 为何需要Android签名 防止APK被恶意篡改后,二次签名打包。 基本概念 1.数据摘要:本质上是一种...

  • Android签名机制

    MANIFEST.MF:对文件内容做一次SHA1算法,就是计算出文件的摘要信息,然后用Base64进行编码; CE...

网友评论

      本文标题:谈一谈Android的签名机制?

      本文链接:https://www.haomeiwen.com/subject/lnxvlrtx.html