Android签名与认证详细分析之一(CERT.RSA剖析)

本文深入探讨Android签名机制,包括签名概述、Eclipse下配置签名信息、不同App签名关系、版本签名关系、META-INF文件修改影响,以及应用商店如何检测官方版。重点分析CERT.RSA文件在保证Android程序安全性中的作用。
摘要由CSDN通过智能技术生成

一、Android签名概述

导语:Android的签名机制是Android保证系统安全的三大机制(权限管理、签名认证、沙箱机制)之一,签名机制要做的只有一件事,就是保证文件的完整性,文件的完整性就是APK在经发布者发布之后,APK内的各个文件都不会被篡改。为了保证这个完整性,就需要采用密码学里面的非对称加密,用私钥对文件内容进行加密,检验的时候用公钥解密,能对应起来,就表明没有被篡改。(非对称加密的内容请自行搜索)又因为,直接对APK内容进行加密的话,APK内容太多了,所以需要先对其做一个摘要处理。所以总结起来就是先做摘要,后用私钥加密。


我们已经知道的是:Android对每一个Apk文件都会进行签名,在Apk文件安装时,系统会对其签名信息进行比对,判断程序的完整性,从而决定该Apk文件是否可以安装,在一定程度上达到安全的目的。

给定一个Apk文件,解压,可以看到一个META-INFO文件夹,在该文件夹下有三个文件:分别为MANIFEST.MFCERT.SFCERT.RSA。这三个文件分别表征以下含义:

(1)MANIFEST.MF:这是摘要文件。程序遍历Apk包中的所有文件(entry),对非文件夹非签名文件的文件,逐个用SHA1生成摘要信息,再用Base64进行编码。如果你改变了apk包中的文件,那么在apk安装校验时,改变后的文件摘要信息与MANIFEST.MF的检验信息不同,于是程序就不能成功安装。

说明:这是Android签名验证过程的第一步,保证每个APK包内的每个文件与MANIFEST.MF中的摘要值一一对应,修改某个文件内容,必须修改MANFEST.MF文件中的摘要值,使他们对应起来。

(2)CERT.SF:这是对摘要的签名文件。对前一步生成的MANIFEST.MF,对MANIFEST.MF中的每一条内容分别进行SHA1计算,然后再用Base64编码转换。此外,把MANIFEST.MF的内容也进行SHA1计算,并且计算BASE64编码。将上述内容写入CERT.SF文件中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值