TLS1.3 协议的加密过程

这篇具有很好参考价值的文章主要介绍了TLS1.3 协议的加密过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一下 TLS1.3 的加密过程,如何协商会话秘钥

TLS 就是 HTTPS 的那一层加密协议,前身是SSL,但是现在SSL已经淘汰了。之前用wireshark 抓包看,现在的网站多是TLS1.2。

这层协议的主要流程大概是双方先通过非对称协商握手,得出一个对称密钥,然后再通过这个对称密钥加密进行通信。

官方说明文档:https://www.rfc-editor.org/rfc/rfc8446
(有亿点复杂,麻了,想要知道细节的话就去看文档吧,160页的论文)

一. 与 TLS 1.2 的主要区别

  • 对称加密算法换成带有关联数据的经过身份验证的加密 (AEAD) 算法。可以理解为他将完整性和机密性结合了?
  • 静态 RSA 和 Diffie-Hellman 密码套件已被删除。所有基于公钥的密钥交换机制现在都提供前向保密。
  • 重新设计了密钥派生函数:使用基于HMAC的提取和扩展密钥派生函数 (HKDF) 。
  • TLS 1.2 版本协商机制已被弃用,TLS1.3和1.2不能兼容。

二. 协议概述

1.TLS 支持三种基本密钥交换模式

  • (EC)DHE (Diffie-Hellman over either finite fields or elliptic curves)
  • PSK-only
  • PSK with (EC)DHE

2. 完整 TLS 握手

TLS1.3 协议的加密过程

3. 握手有三个阶段

  • Key Exchange(密钥交换):建立共享密钥材料并选择加密参数。此阶段之后的所有内容均已加密。
  • Server Parameters(服务器参数):建立其他握手参数(客户端是否认证,应用层协议支持等)。
  • Authentication(身份验证):验证服务器(以及可选的客户端)并提供密钥确认和握手完整性。

由ClientHello 和 ServerHello 协商的密钥材料生成最后的共享密钥。

(EC)DHE and PSK,这两个密钥建立方法,可以单个使用,也可以同时。应该是由客户端选择的,客户端在ClientHello中添加相应的拓展字段。(TLS 1.3 ClientHello 消息总是包含扩展(至少是“supported_versions”,否则,它们会被解释为TLS 1.2ClientHello 消息)

ClientHello中有

  • offered protocol versions:a list of symmetric cipher/HKDF hash pairs.
  • Diffie-Hellman key shares (in the “key_share” extension) 或者 pre-shared key labels (in the “pre_shared_key” extension),也可以两者都有。

三. 密钥生成

密钥派生过程使用了为 HKDF [ RFC5869 ] 定义的 HKDF-Extract 和 HKDF-Expand 函数。
输入密钥材料 (IKM),通过 HKDF 生成最终密钥。

输入的两个参数:

  • PSK (a pre-shared key established externally or derived from the
    resumption_master_secret value from a previous connection)
  • (EC)DHE shared secret

四. 密码套件 CipherSuite

对称密码套件定义了一对 AEAD算法和哈希算法,以与 HKDF 一起使用。
TLS1.3 协议的加密过程
TLS 1.3 有五个密码套件:

  • TLS_AES_256_GCM_SHA384
  • TLS_CHACHA20_POLY1305_SHA256
  • TLS_AES_128_GCM_SHA256
  • TLS_AES_128_CCM_8_SHA256
  • TLS_AES_128_CCM_SHA256

例如:TLS_AES_128_CCM_SHA256
AES-CCM (AES-CTR + CBC-MAC,128-bit) (a AEAD algorithm),
SHA256 is the hash function used in HKDF.文章来源地址https://www.toymoban.com/news/detail-429097.html

到了这里,关于TLS1.3 协议的加密过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(45)
  • HTTP协议 和 HTTPS协议的区别(4点) && HTTPS的缺点 && HTTP如何使用SSL/TLS协议加密过程 && CA证书干啥的

      1. HTTP协议的端口号是80, HTTPS协议的端口号是443 2. HTTP协议使用的URL是以 http:// 开头,HTTPS协议使用的URL是以https://开头 3. HTTP协议和HTTPS协议最主要的区别是: HTTP协议所生成的HTTP请求报文被TCP协议 以明文形式透明传输,同时 客户端与服务器之间无法核验对方的身份(不晓

    2024年02月14日
    浏览(49)
  • 如何解决Firefox提示“此网站可能不支持TLS1.2协议”的问题 错误代码:SSL_ERROR_UNSUPPORTED_VERSION

      当你在Firefox浏览器中访问一个网站时,可能会遇到这样的提示:   之后, 不停地刷新或 重新输入,怎么也访问不进去?? 按照以下步骤操作,可以降低Firefox对TLS版本的要求,网站就能正常访问成功啦: 一、打开Firefox的高级设置 在浏览器的地址栏中输入 about:confi

    2024年04月23日
    浏览(67)
  • apache和nginx的TLS1.0和TLS1.1禁用处理方案

    TLS协议其实就是网络安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性,TLS 1. 0 和TLS 1. 1 是分别是96 年和 06 年发布的老版协议。 TLS1.0和TLS1.1协议使用的是弱加密算法,比如DES、SHA-1、MD5、RC4等。比较容易受攻击,目前新版本的TLS协议已经更新到TLS1.2、

    2024年02月16日
    浏览(38)
  • 对称加密与非对称加密、证书、SSL/TLS握手过程

    对称加密,是一种既简单速度又快的加密方式,加密与解密使用的都是同一个密钥,别名又叫做:单密钥加密;对称加密有很多公开算法,并且因为它效率很高,所以适用于加密大量数据的场合;但其密钥的传输过程是不安全的,并且容易被破解,密钥管理起来也相对麻烦。

    2024年02月03日
    浏览(63)
  • TLS是什么,为什么TLS1.0不安全

    TLS,全名为 Transport Layer Security,即传输层安全协议。它是一种加密协议,用于在互联网上提供安全和数据完整性保证。TLS 的前身是 SSL(Secure Sockets Layer,安全套接字层协议),由 Netscape 公司在 1994 年开发。 TLS 的主要作用是为两个应用程序提供一个安全的通信通道,使得它

    2024年04月28日
    浏览(40)
  • HTTPS流量抓包分析解密(TLS1.2)

    本文的https流量分析基于之前自己生成的密钥、证书和搭建的支持https访问的apache服务器点此查看。 查看证书信息: 回顾前文对RSA算法的简介,公钥是(e,n),分别是 Exponent 和 Modulus 。 查看私钥信息: 由前文知私钥是(d,n)。私钥中的信息参考这篇博客: https://blog.csdn.net/KAlbertL

    2024年02月13日
    浏览(44)
  • 详解gmssl和tls1.2握手流程分析及接口实现

    通过阅读openssl源码具体分析ssl握手中的报文交互流程,包括发送和处理每个报文所做的主要事情。同时分析ssl协议中的一些主要问题,包括tls和gmssl的区别、单向认证和双向认证、两种会话复用方式对比,调用openssl接口实现ssl客户端和服务端之间的通信。 注意: TLS1.2中密钥

    2024年02月10日
    浏览(37)
  • 重新记录一下ArcGisEngine安装的过程

    好久不用Arcgis,突然发现想用时,有点不会安装了,所以这里记录一下安装过程。 首先,下载一个arcgis版本,我这里下的是10.1。 推荐【 gis思维(公众号)】,【麻辣GIS(网站)】。 当然了,这都是很旧很旧的版本了,基本上没有三维功能。 一定要下载带注册机的。 arcgi

    2024年03月21日
    浏览(44)
  • 记录一下Unity使用过程中出现的问题

    1.(2022.3.16) 问题:Unity打开已存在的项目时,一直停留在Hold on... Importing assests界面。 原因及解决方案:Unity Hub中项目设置的默认位置带有中文,将其修改为不含中文的路径即可。 (更新) 重新打开又出现类似问题,一使用VS进行脚本编辑时再次出现加载框,尝试先打开V

    2024年02月08日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包