https安全传输原理
1. 客户端向服务器端发送请求
2. 服务器将非对称加密的公钥A传输给客户端,
3. 客户端随机生成一个对称加密的密钥, 并用公钥A进行加密,发送给服务器。
4. 服务器拿到加密后的数据后,用私钥A进行解密,拿到对称加密的密钥对数据进行解密。
这个还是会存在安全问题:
-
服务器端发送给客户端的非对称加密的公钥被劫持到,伪造一个假的公钥B 发送给客户端,
-
客户端随机生成一个对称加密的密钥,并用公钥B进行加密,劫持之后,用私钥B进行解密,拿到对称加密的密钥,然后再用公钥A进行加密,传送给服务器,服务端再进行解密操作
整个过程完成狸猫换太子
安全问题的根本原因在于浏览器无法判断公钥的真伪
网站在使用https之前需要向CA机构申领一份数字证书,数字证书中包含持有者信息,公钥等