安装的软件签名不一致能装吗,电脑安装未正确签名软件开不了机

首页 > 经验 > 作者:YD1662022-11-07 06:26:17

本文作者:九心,原文发布于:九心说。

前言

最近帮测试做了一点关于签名的需求,今天就和各位同学简单聊一聊关于签名的那些事儿。

如果问到 Android 为什么需要签名?大家都可能想到官网的解释:

Android 系统要求所有 APK 必须先使用证书进行数字签名,然后才能安装到设备上进行更新。

这是一个比较模糊的解释,简单来说,有了签名,就可以让 App 和开发者绑定。

毕竟,应用那么多,别的开发者也有可能盗用你的代码,这个时候,包名和你相同,代码和你相同,怎么区分你的 App 和这些人的 App 不是同一个呢?

这个时候数字签名就派上用场了。

1

签名基础

想要彻底了解签名知识,我们得了解以下知识:

这一系列的知识各位可能在学习网络的时候或多或少的接触过。

我们简单的学习一下这些知识:

1. 消息摘要

消息摘要常常被被称为数字摘要或者数字指纹,定义如下:

在原来的数据基础上,经过一个单向的 Hash 计算,得到一个固定的 Hash 值,这就是消息摘要。

常见的摘要算法都有 MD5、SHA-1 和 SHA-256,特点如下:

1. 「 长度固定,与内容长度无关 」:比如 MD5 是 128 位、SHA-1 是 160 位、SHA-256 是 256 位。

2. 「 看似随机,其实不随机 」:同内容两次摘要得出的结果一致。

3. 「 单向 」:只能从原数据得出摘要,不能从消息摘要得出原来的数据。

4. 「 优秀的摘要算法很难 Hash 碰撞 」。

基于此,消息摘要常常会被用来检查内容的完整性。

比如我们下载起点读书,消息摘要的用法如下:

1. 计算摘要:App 会针对自己的文件信息计算出一个数字摘要比如 123**...**123。

2. 下载App。

3. 验证摘要:对下载的 App 再次计算摘要,比如得出的也是 123**...**123,和之前的数字摘要一对比,这就代表我从服务器下载的内容是完整的,可以正常使用。

当然,上面只涉及了摘要部分,其他过程,我们后面分析。

2. 加密算法

什么是加密?

百科是这么解释的:

将明文信息改变为难以读取的密文内容,使之不可读的过程。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。

所以啊,加密方法得到的密文是可以转变为明文的,像信息摘要算法比如 MD5 得出来的结果是不可逆的,所以面试官问你们什么是加密算法的时候,你可不能把 MD5 说进去!

加密算法分为两大类,「 对称加密 」和「 非对称加密 」。

2.1 对称加密

对称加密在加密和解密的时候使用的同一把钥匙:

安装的软件签名不一致能装吗,电脑安装未正确签名软件开不了机(1)

图片来自《一文彻底搞懂加密、数字签名和数字证书!》

2.2 非对称加密

非对称加密是使用公钥/私钥中的公钥来加密明文,然后使用对应的私钥来解密密文的过程:

安装的软件签名不一致能装吗,电脑安装未正确签名软件开不了机(2)

图片来自《一文彻底搞懂加密、数字签名和数字证书!》

简单对比一下对称加密和非对称机密:

非对称加密

对称加密

速度

效率

安全性

常见算法

RSA\DH

AES\DES\IDEA

2.3 使用场景

学过网络的同学应该都了解,在 Https 的传输过程中,客户端和服务端使用非对称加密生成对称加密的密钥,然后用对称加密传输网络中的数据。

比如我上大学那会儿,每个月的月尾我和我妈的对话是这样的:

安装的软件签名不一致能装吗,电脑安装未正确签名软件开不了机(3)

对话

网络环境是开放的,万一这时,有一个黑客监听了我和我妈的对话,过程就变成了这样:

安装的软件签名不一致能装吗,电脑安装未正确签名软件开不了机(4)

首页 1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.