您现在的位置是:首页» 网游» android发布版签名,androidapk系统签名和自定义签名

android发布版签名,androidapk系统签名和自定义签名

2023-12-20 21:52:05
今天小编为大家分享热门的游戏排行榜、游戏攻略!希望能够帮助到大家!  Android签名是在APK(Android应用程序包)中添加一个“指纹”,一旦指纹被添加,任何对APK的修改都会使这个指纹无效。当Android系统安装APK并进行签名

今天小编为大家分享热门的游戏排行榜、游戏攻略!希望能够帮助到大家!

  Android签名是在APK(Android应用程序包)中添加一个“指纹”,一旦指纹被添加,任何对APK的修改都会使这个指纹无效。当Android系统安装APK并进行签名校验时,如果校验不通过,就意味着APK不安全。

  我们先来了解一下签名的基本概念。签名就是使用一段看起来很随机的字符串来表示一个文件的唯一性。这种字符串是无法被反向推导出原始文件的内容的,因此被称为不可逆向。常见的摘要算法有MD5和SHA-1算法。

  此外,还有公钥密码体制,也称为非对称算法。这种算法的特点是,公钥是公开的,而私钥是保密的。RSA就是一种常见的公钥密码体制。

  在Android中,签名方案有两种,V1和V2。V1方案是基于jarsigner(JDK自带的工具,使用keystore文件进行签名)或apksigner(Android专门提供的工具,使用pk8和x509.pem进行签名)。这两种文件可以相互转换。

  V1方案中,keystore文件包含了一个MD5和一个SHA1摘要。很多开放平台需要我们上传这些摘要数据。签名APK后,在META-INF文件夹下会生成CERT.RSA、CERT.SF和MANIFEST.MF三个文件。META-INF文件夹保存着APK的签名信息,至少会包含三个文件,即[CERT].RSA、[CERT].SF和MANIFEST.MF。

  MANIFEST.MF中包含了除META-INF文件夹外所有文件的签名值。签名方法是先进行SHA1或其他哈希方法,然后进行base64编码。存储形式是文件名加上[SHA1]-Digest。

  [CERT].SF是对MANIFEST.MF文件整体以及其中各个条目的签名。如果使用工具进行签名,还会在此处多包括一项,对MANIFEST.MF头部信息的签名。

  [CERT].RSA文件包含了对[CERT].SF的签名以及公钥信息。私钥被保密,无法进行伪造。

  那么,签名是否存在伪造的可能呢?如果修改了APK中的文件,校验时计算出的文件摘要值与MANIFEST.MF文件中的条目不匹配,校验失败。如果修改了APK中的文件和MANIFEST.MF,那么MANIFEST.MF修改过的条目的摘要与[CERT].SF对应的条目不匹配,同样失败。如果修改了APK中的文件、MANIFEST.MF、[CERT].SF,那么计算出的[CERT].SF签名与[CERT].RSA中记录的签名值不匹配,也会失败。但是由于证书不可伪造,所以无法伪造[CERT].RSA。

  V2是在Android 7.0中新增的。在V2方案中,签名后的包会被分为四个部分:ZIP条目的内容(从偏移量0到APK签名块的开始部分)、APK签名块、ZIP中央目录和ZIP中央目录的结束部分。新应用签名方案的签名信息会被保存在APK签名块中,而ZIP条目的内容、ZIP中央目录和ZIP中央目录的结束部分是受到保护的,任何对这三个部分的修改都会被新的应用签名方案检查所拒绝。

  V3则在Android 9.0中新增的。V3的格式和V2类似,但在V2插入的签名块中添加了一个新块,叫做Attr块。在这个新块中,记录了之前的签名信息以及新的签名信息,通过密钥转轮的方案来替换和升级签名。这意味着,只要手中有旧签名证书,我们就可以通过它在新的APK文件中更改签名。

  V3签名新增了一个新块(attr),用链表的形式存储了所有的签名信息。每个节点都包含了用于为之前版本应用的签名的签名证书,最旧的签名证书对应根节点。系统会让每个节点中的证书为列表中的下一个证书签名,从而为每个新密钥提供证据来证明它应该像旧密钥一样可信。这个过程有点类似于CA证书的证明过程,已安装的App的旧签名确保了覆盖安装的APK的新签名的正确性,将信任传递下去。

  需要注意的是,签名方式只支持升级,不支持降级。比如,如果安装了V2的包,不能覆盖替换为V1的包。

  总结一下,Android签名是为了保证安全性而在APK中添加一个指纹。通过使用摘要算法和公钥密码体制,实现了对APK的校验以及防止伪造签名。V1、V2和V3是Android中的不同签名方案,每个方案都有自己的特点和安全性措施。签名不仅能确保APK的完整性,还能为用户提供信任和安全保障。

m.yiLeen.Com.cn艺练网专注于游戏代练的交易平台,提供专业的手游、网游、英雄联盟代练、LOL代练、地下城与勇士、和平精英代练、QQ飞车代练等服务。

专业专注用心服务,如有海外金融牌照的任何疑问请联系我们。

联系邮箱:773537036@qq.com

标签: 基础 Android