当前位置: 首页 > 工具软件 > IOT-DSA > 使用案例 >

【IoT】加密与安全:非对称加密算法 RSA CA 证书与哈希算法签名

裴嘉许
2023-12-01

1、RSA 证书与 CA

1.1、CA 证书发放

CA 在证书的末尾会添加一段签名,让用证明该 CERT 是 CA 发放的。

- 证书
- 对证书的签名

证书体:

typedef struct
{
  uint8 cert[CERT_LEN];
  uint8 certSign[CERT_SIGN_SIZE];
} CERT;

CA 用自己的私钥对这一段证书 ( cert[CERT_LEN] ) 进行签名,CA 本身会出一个证书,叫做根证书,把公钥放在里面。

根证书体:

typedef struct
{
  uint8 root_cert[ROOT_CERT_LEN];  // 根证书公钥
  uint8 root_certSign[ROOT_CERT_SIGN_SIZE];
} CA_CERT;

1.2、校验

客户端在接收到一个证书 CERT 时,首先要做的工作是检验该证书是否有效,也就是说,看这张证书是不是 CA 发出来的。

具体步骤:

1) 向 CA 要一张根证书 ( CA_CERT )

2) 用根证书里的公钥对 CERT 里的签名进行校验,如果校验成功,说明该 CERT 是由 CA 签发的,可以信任

2、签名与加密安全技术基础之哈希算法

MD5 和 SHA1 是目前应用最广泛的 Hash 算法,而它们都是以 MD4 为基础设计的。

哈希算法有如下特性:

1) 不可以从消息摘要中复原信息

2) 两个不同的消息不会产生同样的消息摘要

如何保证数据完整性呢?

2.1、MD5 算法

MD5 是 RSA 数据安全公司开发的一种单向散列算法。

MD5 全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。

MD5 算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。

md5sum filename.zip

"file_md5": "b1f37a708c8ed2dea463d77cce154a8b",

MD5 严格来说不是加密算法,因此他产生的数据不能叫“密文”。但是它经常被归为“不可逆的加密算法”,一般用作数据库用户密码的保存。

MD5 是一种消息摘要算法,他产生的数据称为“消息摘要值”,MD5 码可以唯一地代表原信息的特征,通常用于密码的加密存储,数字签名,文件完整性验证等。

1) 用作数据库用户密码的加密

Android 数据库存储加密,比如用户名的密码,密码通常采用的就是 md5 哈希值,长度固定,只需要固定 32 个字节属性。

不需要还原明文信息,登录比较,md5(“明文密码”) = 数据库密码 md5 hash 值。

也即对用户输入的密码做 MD5 hash 处理后再与数据库存储的密码 hash 数据对比,即使数据库密码被盗取也无法还原实际密码。

2) 用于文件的完整性检验,比如广升OTA升级包 package.zip 中加入md5哈希序列;

3) 用于数字签名,对重要内容生成 md5 哈希序列,再利用非对称算法 RSA 私钥对 md5 哈希序列加密。

2.2、安全哈希算法 SHA(Secure Hash Algorithm)

主要适用于数字签名标准 ( Digital Signature Standard DSS ) 里面定义的数字签名算法(Digital Signature Algorithm DSA)。

SHA-1: 对于长度小于 2^64 位的消息 (2,097,152TB),SHA-1 会产生一个 160 位的消息摘要,因此抗穷举 (brute-force) 性更好,当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。

在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。

SHA-1 在许多安全协议中广为使用,包括 TLS 和 SSL、PGP、SSH、S/MIME 和 IPsec,曾被视为是 MD5(更早之前被广为使用的散列函数)的后继者。

2.3、签名与加密的核心区别
 
签名并不改变主体信息内容,并不对信息本身加密。

而加密改变了加密对象原有的数据组织形式、内容,使原有内容变得不可读。 

私钥对信息摘要进行加密,这个过程叫签名;

对生成摘要信息的原始内容重新生成摘要,并用公钥对加密的信息摘要进行解密,两者比对的过程,叫签名验证。

refer:

https://blog.csdn.net/kieven2008/article/details/45166327

https://blog.csdn.net/iamshaofa/article/details/7703425

 类似资料: