SSL 安全传输协议(安全套接层)
也叫TLS ---- 传输层安全协议
SSL的工作原理:SSL协议因为是基于TCP协议工作的,通信双方需要先建立TCP会话。因为SSL协议需要进行安全保证,需要协商安全参数,所以也需要建立SSL会话。之后,所有的数据将加 密传输。SSL的加密和认证体系,采用的是证书体系来实现的。
SSL记录协议
相当于将应用层的数据加密封装之后,放置在这个记录协议中。 、
SSL握手协议
允许服务器和客户端相互认证,并在应用层协议传输数据之前,协商出一个 加密算法和会话密钥(对称加密算法的密钥)。
SSL密码变化协议
客户端和服务器都可以发送,主要就是通知后面的数据将使用协商出来 的加密算法加密传输。
SSL警告协议
用来在出现错误的时候进行告警。
SSL会话建立的过程
1、TCP三次握手,建立链接会话
2、客户端发送client hello包
3、server hello
最后这个服务器证书,可能随着server hello包发送过来,也可能单独使用一个数据包发送。
4、服务器发送证书 --- 验证身份
Server key exchange --- 传递公钥
Server hello done
该数据包中没有实质参数,仅起到通知作用,通知客户端,服务器已经做好准备进行主 密钥的协商。 在这个过程中,可以增加客户端的证书请求(要求客户端的身份认证),但是,这一项 是可选项,默认只进行服务器的身份认证。
5、客户端的回应
因为此时客户端已经拥有服务器的公钥,所以,发送的参数都是加密(公钥加密,非对 称加密算法)发送的。
1,预主密钥 (pre-master-key) 注意,最终的会话密钥就是靠三个随机数生成。
1,客户端发送的随机数;
2,服务器发送的随机数;
3,预主密钥(加密发送);因为机器产生的随机数都是伪随机数,所以,可能存在被破解的风险, 所以,使用三个随机数进行计算,更安全。三个随机数相当于是真随机。
2,编码变更通知 --- 因为此时客户端已经拥有三个随机数,可以计算出最最终的 会话密钥,所以,告知服务器,后面是数据可以加密传输了。
3,结束通知 --- 告知结束,并进行一次验证
6、服务器的最终回应
Session ticket --- 进行会话复用 ---- 主要记录身份认证信息。会话结束之后,如果需要重启会话,在重新进行握手是,客户端发送hello时,可以携带该参数,用于快速重启会话。(省略了身份认证。)