说下SSL/TLS四次握手过程?

参考自:
SSL/TLS四次握手过程是怎么样的?
HTTPS、SSL、TLS三者之间的联系和区别

一.SSL/TLS 简介

SSL(Secure Socket Layer 安全套接层)是基于 HTTPS 下的一个协议加密层,用于解决 HTTP 在传输数据时使用明文而导致的不安全问题。

  • SSL 是 HTTP 之下,TCP 之上的一个协议层,是基于 HTTP 标准并对 TCP 传输数据时进行加密,所以 HTTPS 可以想成是 HTTP+SSL 的简称。

  • HTTPS 并不是新协议,而是让 HTTP 先和 SSL(Secure Sockets Layer)通信,再由 SSL 和 TCP 通信。

  • TLS 可以简单理解为 SSL 的升级版。在SSL更新到3.0时,IETF 对 SSL3.0 进行了标准化,标准化后的更名为TLS1.0(Transport Layer Security 安全传输层协议),可以说 TLS 就是SSL的新版本3.1,并同时发布"RFC2246-TLS加密协议详解",

    SSL/TLS

二、SSL/TLS四次握手过程
1. 客户端发出连接请求

客户端先向服务器发出加密通信的 ClientHello 请求。其向服务器提供下面信息:

  • 支持的协议版本,比如 TLS1.0 版本;
  • 支持的加密方法,比如 RSA 公钥加密;
  • 一个客户端生成的随机数(client random), 稍后用于生成对话密钥(session key)。随机数(client random) 客户端会保存,同时需要传送给服务端,随机数(client random) 需要跟服务端产生的随机数结合起来产生后面要讲到的 Master Secret。
2. 服务器回应

服务器收到客户端请求后,向客户端发出回应,这叫做 Serverhello。此步服务器主要做三件事:

  • 确认使用的加密通信协议版本,比如TLS1.00版本。如果游览器与服务器支持的版本不一致,服务器关闭加密通信;
  • 确认使用的加密方法(客户端所支持),比如RSA公钥加密;
  • 将服务器证书、非对称加密的公钥,以及**一个随机数(Server random)**发送给客户端
3. 客户端回应
(1) 客户端收到服务器回应以后,首先验证服务器证书

验证手段就是执行如下三种检查:

  • 检查证书是否已过期;
  • 检查证书中的域名与实际域名是否一致;
  • 检查证书是否是可信机构颁布的;

如果,上述过程中有任何一个环节发现问题,那么浏览器就会向访问者显示一个警告,由其选择是否还要继续通信。

(2) 验证完证书后处理

如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串新的随机数(Premaster secret ),并用证书中提供的公钥加密,发送给服务器。

此时,浏览器会根据前三次握手中的三个随机数:

  • Client random
  • Server random
  • Premaster secret

通过一定的算法来生成 "会话密钥" (Session Key) ,这个会话密钥就是接下来双方进行对称加密解密使用的密钥!

4. 服务端回应

服务端收到客户端的回复,利用已知的加密解密方式进行解密,服务器收到客户端的第三个随机数( Premaster secret) 之后,使用同样的算法计算出 "会话密钥" (Session Key)。

5. 握手完成后加密通信

整个握手阶段全部结束后,客户端与服务器进入加密通信,就完全是使用普通的 HTTP 协议,只不过用 "会话密钥" 加密内容。(非对称加密解密将不再使用,接下来完全由对称加密接手了,因为密钥已经安全的传送给了通信的双方)

三. 总结

SSL/TLS四次握手

  1. 客户端请求建立 SSL 链接,并向服务端发送一个随机数--Client random 和客户端支持的加密方法,比如RSA公钥加密,此时是明文传输。
  2. 服务端回复一种客户端支持的加密方法、一个随机数--Server random、授信的服务器证书和非对称加密的公钥。
  3. 客户端收到服务端的回复后利用服务端的公钥,加上新的随机数--Premaster secret 通过服务端下发的公钥及加密方法进行加密,发送给服务器。
  4. 服务端收到客户端的回复,利用已知的加解密方式进行解密,同时利用Client random、Server random和Premaster secret通过一定的算法生成HTTP链接数据传输的对称加密key -- session key。
相关推荐
清 晨4 小时前
剖析 Web3 与传统网络模型的安全框架
网络·安全·web3·facebook·tiktok·instagram·clonbrowser
国科安芯4 小时前
抗辐照芯片在低轨卫星星座CAN总线通讯及供电系统的应用探讨
运维·网络·人工智能·单片机·自动化
gx23485 小时前
HCLP--MGER综合实验
运维·服务器·网络
VB5945 小时前
[N1盒子] 斐讯盒子N1 T1通用刷机包(可救砖)
网络
-XWB-5 小时前
【安全漏洞】防范未然:如何有效关闭不必要的HTTP请求方法,保护你的Web应用
服务器·网络·http
画中鸦6 小时前
VRRP的概念及应用场景
网络
MQ_SOFTWARE6 小时前
文件权限标记机制在知识安全共享中的应用实践
大数据·网络
一个网络学徒6 小时前
MGRE综合实验
运维·服务器·网络
拾光拾趣录7 小时前
GET/POST 的区别:从“为什么登录请求不能用 GET”说起
前端·网络协议
白鹭7 小时前
基于LNMP架构的分布式个人博客搭建
linux·运维·服务器·网络·分布式·apache