https 的 CA证书和电子签名
https 的攻击者可能使用伪造的一对公私钥与客户端交互, 那么如何确保确实是该服务器的公钥呢?
这就诞生了CA颁发机构
CA颁发机构
服务器和客户端都信任指定的CA颁发机构
服务器上传服务器公钥, CA颁发机构做了什么
- 服务器公钥哈希, 记为
Hash
- 使用 CA 私钥为
Hash
进行 CA 签名, 得到Sign
. 服务器会保存该Sign
服务器做了什么
当客户端请求服务器时, 服务器返回 CA 证书, 包含服务器公钥和 CA 签名
客户端做了什么
客户端内置了绝大多数值得信任的CA机构信息和CA公钥
当服务器返回CA证书时, 客户端使用CA公钥验证该服务器公钥和CA签名是否一致
确保了该服务器公钥是真实的, 非其他服务器伪造的公私钥
总结
防公私钥伪造, 因而产生CA机构和CA签名.
服务器上传服务器公钥到CA机构, CA机构用CA私钥对服务器公钥生成数字签名
客户端通过内置CA根证书, 使用CA公钥验证签名是否正确