公钥和私钥的传输。
服务器,生成了一个公钥A和私钥B。私钥B自己拿着,然后将公钥A发送给全网。原本的操作时客户端拿到这个公钥后然后自己生成一个私钥(对称秘钥),然后通过公钥(非对称秘钥)把这个私钥加密发给服务器。服务器拿到后通过私钥B把它解密。就拿到了客户端的私钥。
最后通过这个私钥进行对称加密进行相互通信了。

然后现在呢,黑客把客户端连接外界的网络全部给拦截了。黑客把公钥A换成了公钥A1,自己也生成一个私钥B1.然后将A1发送给客户端。
客户端收到A1后,把自己的私钥加密发出去。然后就被黑客拿到了。拿到之后通过自己的私钥B1解密拿到客户端的私钥。然后就可以借助公钥A给服务器发数据了。
所以这个时候要解决的问题就是怎么让客户端拿到这个正确的公钥。就是相不相信这个公钥,这个时候就有相关的证明。我们相信CA认证中心是可信的。经过CA认证的东西也都是可信的。通过CA证书,证书可以说明哪个ip对应哪个域名。证书里边也有公钥。
客户端认为是哪个域名发来的公钥。加强了一点安全性。但是因为CA证书任何人都可以发。黑客拿到服务器发送的CA证书将里边的信息篡改。然后这样又把公钥A1发给了客户端。所以又不安全了。
最后怎么办呢,客户端就通过CA根证书来验证这个CA证书的正确性了。但是CA根证书该存到哪呢。只要是在网络中传输都有可能被黑客篡改。
那么只能存放到本地了。这个CA根证书和CA的公钥是植入到操作系统的。