此文只描述整体安全原理,具体业务上的演变未在此文中描述。
- 信息 + HASH = 摘要 摘要 + 私钥 = 数字签名(给收方做对比用的,验证收发内容是否一致)
- 公钥 + 相关信息 +CA私钥 = 数字证书(验证发送者是否正确,是可信任的公钥)
以一次服务器与客户端的数据交互说明安全机制,整体流程如下:
- 服务器会将自己的公钥(A)和公司相关信息发送给CA(国际证书管理机构),CA会使用自己的私钥(B)加密服务器发过来的公钥(A)和相关信息,生成CA证书(C)。
- 服务器得到CA证书(C)后,会将-通过服务器的私钥(D)进行加密生成密文(E)。服务器会将CA证书(C)和密文(E)一起发送给客户端。
- 客户端需要安装CA的公钥(根证书)(F),使用CA的公钥(F)解密CA证书(C)拿到服务气公钥(A),使用公钥(A)解密密文(E),得到原文信息。
此流程可以防止中间人串改数据。https通信过程中服务器第一次传输的数据是全新的公钥(G),后续协商密钥流程如下:
- 客户端拿到不可能被中间人篡改的公钥(G),不可能被篡改是因为攻击者没有CA的私钥(B)。
- 客户端会生成一个对称密钥(H),通过公钥(G)加密后发送给服务器。后续客户端和服务器使用密钥(H)进行信息交换。由于攻击者不知道服务器公钥(G)对应的私钥,所以攻击者无法获取传输的信息。
此流程保证了后续通信的安全