安装包签名检测

安装包签名

  • apk是安卓应用软件包,apk签名是软件包在安装的时候进行的安全性验证机制。
  • 这种签名机制目的是为了确保Apk来源的真实性,以及Apk没有被第三方篡改。开发者通过对Apk进行签名:在Apk中写入一个“指纹”。指纹写入以后,Apk中有任何修改,都会导致这个指纹无效,Android系统在安装Apk进行签名校验时就会不通过,从而保证了安全性。摘录百度百科

签名规范

  • 客户端使用APP从属方证书进行签名后进行发布,Android应用程序想要安装运行,必须经过签名,所以开发者在发布安装包时,必须对安装包进行签名。签名信息中包含的组织信息,将便于用户识别安装包的真伪。存在:未签名或签名无效,缺少V2签名,使用Debug证书、使用个人证书/开发方证书签名,存在未受签名保护的文件,均认为风险。

检测方法

  • 使用apksigner.bat工具检测
  • apksigner.batandroid-sdk里的一个工具,需要下载Android SDK Tools——启动SDK Manager——安装Android SDKBuild-tools
  • 启动路径:android-sdk-windows\build-tools\版本号\apksigner.bat
  • 命令: apksigner.bat verify -v --print-certs test.apk
    在这里插入图片描述

风险分析

  • 常见的存在风险情况如下:
  • 未签名或签名无效:查看输出是否出现Does not verify或者无签名信息。
  • 缺少V2签名:查看Verified using v2为false。
  • 使用debug证书签名:Signer #1 certificate DN:字段中含有debug。
  • 使用个人证书/开发方证书签名:Signer #1 certificate DN: CN=****为个人或开发商
  • 存在为受签名保护的文件:显示WARNING: META-INF字段

补充:数字证书中主题(Subject)中字段的含义

  • 一般的数字证书产品的主题通常含有如下字段:
    公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名或IP地址;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名;
    单位名称 (Organization Name) :简称:O 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称;
  • 证书申请单位所在地:
    所在城市 (Locality) 简称:L 字段
    所在省份 (State/Provice) 简称:S 字段
    所在国家 (Country) 简称:C 字段,只能是国家字母缩写,如中国:CN
  • 其他一些字段:
    电子邮件 (Email) 简称:E 字段
    多个姓名字段 简称:G 字段
    介绍:Description 字段
    电话号码:Phone 字段,格式要求 + 国家区号 城市区号 电话号码,如: +86 520 1314521
    地址:STREET 字段
    邮政编码:PostalCode 字段
    显示其他内容 简称:OU 字段
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值