【计算机网络】SSL/TSL握手过程

463 阅读2分钟

HTTPS比HTTP安全,就是因为HTTPS在TCP连接之后加入了SSL/TSL的握手过程。SSL/TSL使用会话秘钥对数据进行加密传输,杜绝了数据传输过程中被窃取篡改的风险。

  1. SSL/TSL在三方面解决了HTTP的安全问题:使用混合加密技术:在建立连接的时候使用非对称加密交换秘钥,通信过程中使用对称加密加密明文数据。两者混合使用,完美地解决了非对称加密速度慢,对称加密不够安全的情况。
  2. 使用数字证书:数字证书是由权威机构发布的可证实服务器合法安全身份的证书,可以保护用户不受钓鱼网站欺骗。
  3. 使用摘要算法保证数据的一致性。

SSL/TSL协议建立连接有4次握手:

  1. 客户端向服务器发送一个随机数R1和SSL/TSL版本,以及支持的密码版本
  2. 服务器拿到客户端的请求,先验证是否支持客户端的SSL/TSL版本,如果不支持就直接断开连接。如果支持,服务器也生成一个随机数R2,将随机数和自己的证书发送给客户端
  3. 客户端接收到服务器的响应,判断证书是否合法,不合法就断开连接。从证书中拿出公钥,并使用公钥加密生成一个随机数R3(这里准确的说法应该是叫pre-master),将随机数R3发送给服务器,并告知服务器:通信的加密算法已根据双方协商的密码版本进行更改。同时,客户端根据R1,R2,R3三个随机数算出会话秘钥以及握手过程数据的摘要供服务器校验,之后通信就使用这个秘钥进行加密
  4. 服务器接收到客户端发来的R3,也根据R1,R2,R3换算出会话秘钥,通知客户端:通信的加密算法已根据双方协商的密码版本进行更改。同时生成握手过程数据的摘要供服务器校验。握手到此结束