2020年6月23日 作者 zeroheart

https 简单回顾

https 使用了SSL/TLS加密数据包,SSL(Secure Sockets Layer)安全套接层和TLS(Transport Layer Security)传输层安全协议其实是一套东西

https 使用了非对称加密实现客户端和服务端的握手,数据的传输则使用对称加密。非对称加密是指公钥加密,私钥解密的算法,对称加密则是只有一个密钥。

为了防止https的中间人攻击,需要一个签名机制,CA证书由权威机构颁发,作为第三方信任机构。

客户端和服务端握手时候,中间人可以返回伪造的公钥,然后和客户端通信,CA证书可以解决这个问题。非对称加密算法中,私钥除了解密功能,还有一个重要的功能是签名。私钥签名,公钥解签。签名和明文一同发送到客户端,客户端使用证书内置的公钥解签,对比明文和解签后签名的内容,一致的话就说明没有被篡改。

当然证书也可能是伪造的,要求下载网站的根证书的,那就得使用者自己鉴别了。

总结https通信过程如下:

1.客户端请求访问服务器,告诉本地支持的加密算法

2.服务器返回证书,和选定的加密算法

3.客户端使用证书的公钥验证服务器的合法性,拿到服务器的公钥

4.客户端用服务器公钥加密一个对称算法密钥。

5.服务器用私钥解密,获取密钥。开始通信。