Skip to content

Latest commit

 

History

History
30 lines (18 loc) · 1.58 KB

数字签名与证书.md

File metadata and controls

30 lines (18 loc) · 1.58 KB

数字签名与证书

加密算法保证了数据的机密性,但是无法保证数据的完整性和身份认证。数字签名技术可以解决这个问题。

摘要算法

实现完整性的手段主要是摘要算法(Digest Algorithm),也就是常说的散列函数、哈希函数(Hash Function)。

摘要算法:能够把任意长度的数据,压缩成固定长度、独一无二的字符串。摘要算法只有算法,没有密钥,加密后的数据无法推断出原文。

常用摘要算法:

  1. MD5 不够安全
  2. SHA-1 不够安全
  3. SHA-2 推荐使用
    1. SHA224
    2. SHA256

数字签名

双方将对称加密中的公钥互换,然后使用私钥对信息的摘要加密,发送给对方,对方使用发送方的公钥即可对该加密信息验证,这种方式成为签名和验签。

数字签名 = 私钥加密 + 公钥解密

数字证书

然而,数字签名需要发布公钥,任何人都可以发布公钥,此时存在公钥信任问题。需要通过一定机制证明,公钥是某个人的公钥,而不是伪造的公钥。这个机制就是证书。

CA Certificate Authority 证书认证机构就像网络世界的公安局,由它的信誉来给公钥签名,证明公钥不是伪造的。它除了将公钥绑定在持有者身上外,还包含序列号、用途、颁发者、有效时间等信息。将这些内容打包签名,形成数字证书。

知名的 CA 全世界就那么几家,比如 DigiCert、VeriSign、Entrust、Let’s Encrypt 等,它们签发的证书分 DV、OV、EV 三种,可信程度由低到高。