首页 > 其他分享 >什么是TLS

什么是TLS

时间:2023-05-29 12:33:05浏览次数:40  
标签:TLS 加密 什么 密钥 服务器 握手 客户端

TLS


1. SSL与TLS的关系

SSL (Secure Sockets Layer) 和 TLS (Transport Layer Security) 是用于保护网络通信的安全协议。

在早期是用SSL通信安全和加密的协议,如今慢慢被TLS所取代,SSL/TLS 是用于保护网络通信的安全协议,其中 SSL 是旧的术语,指代 TLS,而 TLS 是一种协议,用于加密和保护通信的安全性

2.TLS的四次握手

在HTTPS里我们了解了数字证书的签约大致过程,这其中的这几个过程就是TLS协议的几个握手,也是基于这四次握手,在后续的数据传输中,双方才可以继续用HTTP协议进行数据传输。

当客户端和服务器之间建立 TLS 连接时,它们会经历以下基本步骤:

  1. 客户端发起连接:客户端向服务器发送一个连接请求,并提供支持的加密算法和协议版本。
  2. 服务器回应:服务器收到客户端的连接请求后,选择一种加密算法和协议版本,并返回一个数字证书给客户端。数字证书包含服务器的公钥和其他相关信息。
  3. 客户端验证证书:客户端会验证服务器的数字证书的有效性。这包括检查证书的颁发机构是否受信任、证书是否过期、是否与服务器域名匹配等。
  4. 密钥交换:如果证书验证通过,客户端会生成一个随机的对称密钥,称为会话密钥。然后,客户端使用服务器的公钥加密该会话密钥,并将其发送给服务器。
  5. 密钥解密:服务器接收到加密的会话密钥后,使用自己的私钥进行解密,得到原始的会话密钥。
  6. 安全通信建立:客户端和服务器现在都有了相同的会话密钥,用于加密和解密通信内容。双方可以使用对称密钥进行加密和认证码计算,以确保通信的机密性和完整性。
  7. 数据传输:客户端和服务器使用会话密钥对传输的数据进行加密和解密。数据在传输过程中使用加密算法进行保护,防止被窃听或篡改。

其中四次握手就是包含着前5步,接下来让我们了解一下四次握手都做了什么

使用WireShark进行抓包处理:

在过滤栏中输入 ip.addr == 110.242.68.4&&ssl ,我这里是以百度的地址为例

S{{$ZI8F4PKJF9W6Y@VG7

估摸着会有人问为什么有五个红框,实际上在服务器第二次握手时,发送了Server Hello和Certificate,用来表示一些相关信息和证实自己的身份,这里到后面的了解就明白了.


2.1TLS的第一次握手

  • 客户端向服务器端发送一个Client Hello

TLS第一次握手

这个随机数是用来生成对称密钥的原材料

2.2TLS的第二次握手

  • 服务器端想客户端返回一个Server Hello
  • 服务器端向客户端返回一个Certificate

TLS握手第二次1

这里随机数依然是为了用来生成对称密钥用的

TLS握手第二次2

在这里,我之前有看到过相关问题说TLS记录为什么要分为两层,结合我个人的理解以及相关资料的查阅得出的结论是这样的:

因为在数字证书进去签发前,版本号和加密算法的相关信息已经协商,但不代表除了这些信息就没有其他信息进行协商,而之所以进行化层次可能是为了以后协议的升级,需要交换的信息更多,进行的灵活扩展,顺便将信息进行分割.

2.3TLS的第三次握手

  • 客户端向服务器端发送Client Key Exchange, Change Cipher Spec, Encrypted Handshake Message

TLS第三次握手

这里由第一次握手的Client Number和第二次握手生成的Sever Number以及第三次生成的Pub Number三个随机数,就共享到客户端和服务端了,只需要第三次数据发出给服务端,服务端便得知了,然后根据这三次随机数生成对称密钥

2.4TLS的第四次握手

  • 服务器端向客户端返回Change Cipher Spec, Encrypted Handshake Message

    TLS第四次握手

这里的会话票据是为了实现会话恢复的一种机制.在下次客户端需要重新建立的时候,便可以通过这个会话票据再次建立了,而不需要重复前面几次握手过程.


3.TLS总结

TLS四次握手

在进行TLS过程中也存在TCP的握手以及ACK号确认,所以其实每一次握手都会存在相应的ACK号用来表示已经接受了,在进行TLS四次握手的前提下,其实就已经进行了TCP的三次握手了,从协议层次上来讲,TCP越接近底层,越先在数据交互的时候发生,而不是同时发生的,这一点很重要,以上就是TLS四次握手的大致过程了

至此,TLS的四次握手大致过程就这样结束了.

标签:TLS,加密,什么,密钥,服务器,握手,客户端
From: https://www.cnblogs.com/looktheworld/p/17440112.html

相关文章

  • 什么是企业EHS?什么是OHS?
    1.EHS,即E(Environment)-环保,H(Health)-健康,S(Safety)-安全,三个词语的缩写。也就是与环境保护,职业健康和工作场所安全有关的行业。EHS管理方法体系最早源于欧美国家,随着中国工业化进程的完善,国内EHS相关法律法规和标准规范的逐步完善(特别是EHS领域“三大法”的实施,《安全生产法》、《环......
  • 外汇天眼:为什么那么多资金盘崩盘跑路,也没有人拿回属于自己的资金?
    关注金融的人大概都了解,在金融市场上每隔三五天都会冒出来个大新闻,不是这个资金盘骗局崩盘,就是那个资金盘跑路。其实资金盘崩盘跑路并不奇怪,通常资金盘的周期为半年到三年之间,有的资金盘为了想捞更多的钱,资金盘时间周期会拉的更长,不过最终结局要么崩盘,要么跑路,都是注定的。然而资金......
  • 什么是1U、2U、标准19寸机架?本文为您解惑!
    如果您一直从事跟服务器硬件相关的工作,那么对“1U”、“2U”、“3U”等概念肯定不陌生。那么,这些名词到底是什么意思呢?有什么区别呢?今天小编和大家好好讨论一番。1、“U”是什么?这里我们得要知道,1U、2U、3U等中的U指的是“unit”,中文意思就是”单元“,通常情况下我们都叫”机架单元......
  • Java中Collection与Collections有什么区别?Java常见面试题解析
    本文将为大家详细讲解Java中Collection与Collections的区别点,这是我们进行开发时经常用到的知识点,也是大家在学习Java中很重要的一个知识点,更是我们在面试时有可能会问到的问题!文章较长,干货满满,建议大家收藏慢慢学习。文末有本文重点总结,主页有全系列文章分享。技术类问题,欢迎大......
  • 什么是多态?多态的好处
              ......
  • Isito 入门:为什么学 Istio、Istio 是什么
    1,Istio概述......
  • 什么是高内聚、低耦合
    什么是高内聚、低耦合?起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独......
  • wireshark 结合 go 对每个请求进行 https tls tcp 内容解密
    众所周知,wireshark是一款流行的抓包软件,我们可以很方便地查看每个TCP包的具体信息。对于HTTP协议的数据,还可以查看每个协议层具体信息内容。但是对于HTTPS的数据,我们只能查看IP层以下的数据,TLS及以上的数据都是被加密过的,如下图所示。 在某些特殊的场景下,我们想查......
  • 2023-05-28:为什么Redis单线程模型效率也能那么高?
    2023-05-28:为什么Redis单线程模型效率也能那么高?答案2023-05-28:1.C语言实现,效率高C语言程序运行速度快,因为其相较于其他高级语言更加接近底层机器。由于C语言直接操作内存,不会像其他语言那样依赖虚拟机或垃圾回收机制等中间层,从而能够实现更高的执行效率。2.单线程的优势Redi......
  • 2023-05-28:为什么Redis-单线程模型效率也能那么高?
    2023-05-28:为什么Redis-单线程模型效率也能那么高?答案2023-05-28:1.C语言实现,效率高C语言程序运行速度快,因为其相较于其他高级语言更加接近底层机器。由于C语言直接操作内存,不会像其他语言那样依赖虚拟机或垃圾回收机制等中间层,从而能够实现更高的执行效率。2.单线程的优势Redis采用......