大家好,又见面了,我是你们的朋友全栈君。
SSL协议位于TCP/IP协议与各应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol)、SSL握手协议(SSL Handshake Protocol)
SSL握手协议:在SSL记录协议之上,会话层之下,在实际的数据传输开始前,协商加密算法、交换密钥、身份认证
1. 客户端浏览器发送“hello”信息,表示要和网站建立安全SSL连接
2. 网站服务器响应客户端请求,发给客户端两样东西:网站服务器自己的证书(内含网站的公钥)、一个随机值
3.客户端浏览器验证网站服务器证书是否可信
4.客户端利用网站服务器发的随机值生成会话密钥
5. 客户端浏览器和网站服务器开始协商加密算法和密钥长度
6. 协商成功后,客户端浏览器利用网站的公钥将生成的会话密钥加密,然后传送给网站服务器
7. 网站服务器收到客户端发送的利用网站服务器自己公钥加密的会话密钥,然后用自己的私钥解密出会话密钥,由此得到了安全的会话密钥
8. 网站服务器再随机生成一个信息,用解密后的会话密钥加密该随机信息后后发送给客户端浏览器(目的是让客户端认证服务器)
9. 浏览器收到随机信息后,用会话密钥能解密出信息(自然就认证了服务器),接着浏览器用自己的私钥对此信息做数字签名,连带客户端自己的证书(内含公钥),一起发送给网站服务器(目的是让服务器认证客户端)
SSL记录协议:在SSL握手协议之下,传输层之上,数据传输阶段的封装、压缩、加密(利用SSL握手协议产生的会话密钥对称加密应用层数据)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137314.html原文链接:https://javaforall.cn