美文网首页
客户端与服务器怎么交换加密套件?SSL/TLS握手过程?怎么协商

客户端与服务器怎么交换加密套件?SSL/TLS握手过程?怎么协商

作者: 风雅欢乐 | 来源:发表于2020-07-03 16:42 被阅读0次

双方在SSL/TLS协议握手过程中协商加密套件。SSL/TLS协议基本过程

  1. 客户端向服务器端索要并验证公钥
  2. 双方协商生成对话密钥
  3. 双方采用对话密钥进行加密通信

简单说,SSL/TLS通过四次握手,主要交换三个信息

  1. 数字证书:该证书包含了服务器公钥等信息,一般由服务器发给客户端,接收方通过验证这个证书是不是由可信赖的CA签发,或者与本地证书相对比,来判断证书是否可信。假如需要双向验证,则服务器和客户端都需要发送数字证书给对方验证;
  2. 三个随机数:这三个随机数构成了后续通信过程中用来对数据进行对称加密解密的对话密钥。客户端首先发送第一个随机数N1,然后服务器返回第二个随机数N2(这个过程同时把之前提到的证书发给客户端),这两个随机数都是明文的;第三个随机数,客户端用从数字证书中得到的服务器公钥进行加密,发送给服务器;服务器用自己的私钥解密获取第三个随机数N3。至此,双方都得到了N1+N2+N3,两端使用这三个随机数来生成对话密钥,后续的通信使用这个对话密钥进行加密;
  3. 加密通信协议:就是双方商量使用哪一种加密方式,加入两者支持的加密方式不匹配,则无法进行通信。

四次握手的步骤

  1. 客户端发出请求(ClientHello)

这一步,客户端主要向服务器提供以下信息:

  • 支持的协议版本,如TLS 1.0
  • 一个客户端生成的随机数N1,稍后用于生成对话密钥
  • 支持的加密算法,比如RSA公钥加密
  • 支持的压缩算法
  1. 服务器回应(ServerHello)

这一步服务器主要回复的信息:

  • 确认使用的协议版本,比如TLS 1.0。如果客户端与服务器支持的版本不一致,服务器关闭加密通信
  • 确认使用的加密方法,比如RSA公钥加密,返回加密公钥
  • 服务器的数字证书
  • 第二个随机数N2
  1. 客户端回应
  • 验证证书合法性(颁发证书的机构是否合法,证书中包含的网站地址与正在访问的地址是否一致等),如果证书受信任,则浏览器栏里会显示一个小锁,否则给出证书不受信提示
  • 如果证书受信,客户端生成第三个随机数N3,并用证书中的服务器公钥进行加密
  • 使用之前协商好的HASH计算握手信息,并用随机数N3进行加密,最后将之前生产的所有信息发送给服务器
  1. 服务器
  • 用私钥解密获得随机数N3,使用N3解密握手消息,验证HASH是否与客户端发来的一致。
  • 至此双方都得到了3个随机数,可以得到通用的会话密钥对后续的通信进行对称加密

ALPN(Application Layer Protocal Negotiation)应用层协议协商,是TLS的扩展,允许在安全连接的基础上进行应用层协议的协商。在TLS握手的ClientHello阶段,客户端发送支持的协议列表,ServerHello阶段,服务器会选择一种协议,如果客户端和服务器支持HTTP2,那么就可以使用HTTP2进行通信。

相关文章

  • 客户端与服务器怎么交换加密套件?SSL/TLS握手过程?怎么协商

    双方在SSL/TLS协议握手过程中协商加密套件。SSL/TLS协议基本过程: 客户端向服务器端索要并验证公钥 双方...

  • TLS/SSL握手过程

    1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).cli...

  • 利用SSL/TLS绕过web应用防火墙

    众所周知的SSL/TLS握手过程: 如上图1所示,server和client之间需要协商加密套件,如果client...

  • SSL/TLS 详解(二)

    一、SSL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(hands...

  • https握手

    HTTPS SSL握手过程 图解SSL/TLS协议ssl握手过程 用户发起一个请求到服务器,浏览器将自己支持的一套...

  • 国密TLS介绍

    握手协议总览 握手协议涉及以下过程 交换hello消息来协商密码套件,交换随机数,决定是否会话重用; 交换必要的参...

  • 什么是SSL/TLS握手

    TLS的工作原理–前所未有的简化了SSL / TLS握手过程 伴随所有握手,SSL / TLS握手是一切开始的地方...

  • HTTPS 请求大致过程

    发送 HTTPS 请求首先要进行 SSL/TLS 握手,握手过程大致如下: 1、客户端发起握手请求,携带随机数、支...

  • SSL握手分析及常见问题排查

    SSL握手过程 1. 当要建立一个tls加密的连接时.客户端首先发送一个client hello消息给服务端,...

  • HTTPS中的SSL/TLS 和中间人攻击

    Q:Https == http + SSL/TLS 那中间ssl 加密的过程?Q:SSL/TLS 就完全安全吗? ...

网友评论

      本文标题:客户端与服务器怎么交换加密套件?SSL/TLS握手过程?怎么协商

      本文链接:https://www.haomeiwen.com/subject/aqvsqktx.html