Android10安装APP,Android10.0应用安装白名单——添加签名校验

本文介绍了在Android10系统中实现应用安装白名单的策略,尤其是添加签名校验以增强安全性。通过解析APK获取签名证书指纹,并与预设白名单进行对比,确保只有授权应用可以安装。
摘要由CSDN通过智能技术生成

背景

为了避免系统被安装上各种各样的app,客户要求系统需要有个安装白名单的功能。

思路

白名单功能主要是通过确认要安装的应用是否在白名单上,如果不在,则不允许安装。筛选的标准可以通过包名进行判断。但单纯包名进行判断还是不够安全,这里是想再加个签名校验的机制,毕竟每个签名都是独一无二的。

这个过程,主要难点在于如何获取各个apk签名。在说明如何在代码中获取到系统签名之前,先大概说下Android应用的签名机制。

Android应用签名

签名的基本目的就是不允许apk内部任意一个文件的内容被篡改。所以得保证每个文件都被加密到。将任意一个签过名的apk进行解压,都可以发现一个叫META-INF的文件夹,该文件夹包括但不限于如下三个文件:

1CERT.RSA CERT.SF MANIFEST.MF1.MANIFEST.MF文件。对APK包中每个文件(文件夹和签名文件除外)进行遍历,使用SHA1或者SHA256生成摘要信息。然后再用base64进行编码,截取MANIFEST.MF文件中某一段:

1Name: AndroidManifest.xml2SHA1-Digest: D2yOY7wstlBC3AbjQznUDa6/8Xw=这里我们可以自己对AndroidManifest.xml这个文件通过SHA1生成摘要信息,有在线的SHA1:

1http://www.metools.info/code/c92.html

b681862cfceef2f647d997a25caf8f32.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值