一直对TSL有点迷糊,今天抽出时间理了以下,感觉也不难。
TLS其实就是基于TCP的用于保证信息安全的加密传输协议。
主要特点就是非对称加密“密钥”,然后对称加密消息。私钥加密,公钥解密“密钥”,然后把解密出来的密钥当作加密钥匙去加密需要传输的的消息。
握手阶段分4次通信:
第一次:ClientHello
客户端向服务端发出加密通信的请求,请求里面包含:
1、加密协议的版本。
2、client生成的随机数
3、支持的加密算法比如:RSA公钥加密
4、client支持的压缩算法
第二次:ServerHello
服务端向客户端响应,并返回以下信息:
1、服务端确认的加密版本,如果服务端支持的TSL加密版本和客户端不一致,那么转回到不加密的通信。
2、server生成的随机数。
3、server支持的加密算法。
4、server发给客户端的证书。
5、公钥。
6、网址
第三次:
1、客户端验证服务端的证书是否是可信机构颁布的,有没有过期,网址信息是不是客户端要请求的。如果不是,那么会有显示的警告。
2、如果用户确认了或者这些都校验通过了。那么客户端再生成一个随机数叫做“pre market key”,该随机数用公钥加密返回给服务端。
3、编码改变通知。
第四次:
1、这样服务端就有了3个随机数,服务端用这个3个随机数生成会话密钥。
2、然后用这个密钥给内容加密。同时用私钥给会话密钥加密,返回给客户端。
3、发送编码改变通知,通知以后就用会话密钥加密内容。
参考: