Bootstrap

https 的 CA证书和电子签名

https 的攻击者可能使用伪造的一对公私钥与客户端交互, 那么如何确保确实是该服务器的公钥呢?
这就诞生了CA颁发机构

CA颁发机构

服务器和客户端都信任指定的CA颁发机构
服务器上传服务器公钥, CA颁发机构做了什么

  1. 服务器公钥哈希, 记为 Hash
  2. 使用 CA 私钥为 Hash 进行 CA 签名, 得到 Sign. 服务器会保存该 Sign

服务器做了什么

当客户端请求服务器时, 服务器返回 CA 证书, 包含服务器公钥和 CA 签名

客户端做了什么

客户端内置了绝大多数值得信任的CA机构信息和CA公钥
当服务器返回CA证书时, 客户端使用CA公钥验证该服务器公钥和CA签名是否一致
确保了该服务器公钥是真实的, 非其他服务器伪造的公私钥

总结

防公私钥伪造, 因而产生CA机构和CA签名.
服务器上传服务器公钥到CA机构, CA机构用CA私钥对服务器公钥生成数字签名
客户端通过内置CA根证书, 使用CA公钥验证签名是否正确

;