TLS1.3 握手过程特性的整理
1、密码协商
TLS协议中,密码协商的过程中Client在ClientHello中提供四种option
第一:client 支持的加密套件列表,密码套件里面中能出现Client支持的AEAD算法或者HKDF哈希对,
第二: Supported_group 的扩展和 Key_share的 扩展,其中Supported_groups这个扩展表明了Client支持的(EC)DHE group 而 key_share 扩展表明了Client包含一些或者全部(EC)DHE共享。
第三: signature_agrorithms 签名算法和 signature_algorithms_cert这个扩展展示了具体的签名算法 signature_algorithms 这个扩展展示了Client可以支持哪些签名算法,signature_algorithms_cert这个扩展展示了具体的证书签名算法
第四: pre_shared_key 预共享秘钥和 pre_key_exchange_modes扩展,预共享秘钥扩展包含了Client可以识别的堆成秘钥标识 , psk_key_exchange_modes扩展表明了可能可以和psk一起使用的的秘钥交换模式。
2、TLS协议中的两大主要组成部分
握手协议:
握手协议主要处理通信双方之间认证的所有流程,包括秘钥协商,参数协商、建立共享秘钥。握手洗衣被设计用来抵抗篡改,如果连接未受到攻击,则活动攻击者不应该强制对方协商不同的参数
记录协议:
使用有握手协议建立的参数来保护通信双方的流量,记录协议将流量分成一系列的记录,美衣伊阁记录独立的使用秘钥保护机密性
3、TLS1.3 支持的基本秘钥交换模式
(EC)DHE 基于有限域或椭圆曲线的Diffe-Hellman、 PSK-only 、PSK with(EC)DHE
4、下面是TLS1.3 握手协议的过程
Client Server
Key ^ ClientHello
Exch | + key_share*
| + signature_algorithms*
| + psk_key_exchange_modes*
v + pre_shared_key* -------->
ServerHello ^ Key
+ key_share* | Exch
+ pre_shared_key* v
{EncryptedExtensions} ^ Server
{CertificateRequest*} v Params
{Certificate*} ^
{CertificateVerify*} | Auth
{Finished} v
<-------- [Application Data*]
^ {Certificate*}
Auth | {CertificateVerify*}
v {Finished} -------->
[Application Data] <-------> [Application Data]
+表示在以前标注的消息中发送的值得注意扩展
*表示 可选的或者依赖一定条件的消息/扩展 ,不总是发送
() 表示消息从 Client-early-traffic_serect 导出的秘钥保护
{} 表示使用一个[sender]handshake_traffic-serect 导出的秘钥保护
[]表示消息使用 [sender]_application_trafic_serect_N导出的秘钥保护
握手可以被认为是三个阶段:
第一个阶段是 : 秘钥交换---- 建立共享秘钥数据并选择密码参数,在这个阶段之后所有的数据都会被加密,
第二个阶段: server参数 : 建立其他的握手参数 (Client是否被认证, 应用层协议支持等)
第三个阶段 : 认证Server (并选择性的认证Client )提供秘钥确认和握手的完整性
TLS1.3 握手过程特性的整理的更多相关文章
- TCP连接建立的三次握手过程可以携带数据吗?
前几天实验室的群里扔出了这样一个问题:TCP连接建立的三次握手过程可以携带数据吗?突然发现自己还真不清楚这个问题,平日里用tcpdump或者Wireshark抓包时,从来没留意过第三次握手的ACK包有 ...
- SSL/TLS 握手过程详解
在现代社会,互联网已经渗透到人们日常生活的方方面面,娱乐.经济.社会关系等都离不开互联网的帮助.在这个背景下,互联网安全就显得十分重要,没有提供足够的安全保障,人们是不会如此依赖它的.幸运的是,在大牛 ...
- JDK 5 ~ 10 新特性倾情整理!
JDK 5 ~ 10 新特性倾情整理! 最近连 JDK11都在准备发布的路上了,大家都整明白了吗?也许现在大部分人还在用6-8,8的新特性都没用熟,9刚出不久,10-11就不用说了. 为了大家对JDK ...
- Java 5-11新特性的整理(转)
Java 5-11新特性的整理(转) 作者:拔剑少年 简书地址:https://www.jianshu.com/u/dad4d9675892博客地址:https://it18monkey.github ...
- HTTPS详解二:SSL / TLS 工作原理和详细握手过程
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...
- HTTPS 握手过程理解
转自https://www.jianshu.com/p/a3a25c6627ee https://blog.csdn.net/xingtian713/article/details/11953057 ...
- SSL 握手过程
SSL协议的握手过程 SSL 协议既用到了公钥加密技术又用到了对称加密技术,对称加密技术虽然比公钥加密技术的速度快,可是公钥加密技术提供了更好的身份认证技术.SSL 的握手协议非常有效的让客户和服务器 ...
- SSL握手过程
原文地址: http://my.oschina.net/u/1188877/blog/164982 一.SSL握手有三个目的:1. 客户端与服务器需要就一组用于保护数据的算法达成一致:2. 它们需要确 ...
- SSL交互和握手过程
SSL消息按如下顺序发送: 1.Client Hello 客户发送服务器信息,包括它所支持的密码组.密码组中有密码算法和钥匙大小: 2.Server Hello 服务器选择客户和服务器都支持的密 ...
随机推荐
- intellij tomcat配置
目录 intellij tomcat配置 @(目录) intellij tomcat配置 如上图标注 1 所示,我们可以切换随时为项目切换不同的容器. 如上图标注 2 所示,我们可以指定给运行的容器设 ...
- bootstrap-table和bootstrap-switch
{% load staticfiles %} <!DOCTYPE html> <html lang="en"> <head> <meta ...
- nodejs中利用expresss脚手架和bootstrap,数据库mongodb搭建的留言板案例
## 1. 先打开编辑器,创建一个项目 ## 2. 再打开cmd命令提示符下载express脚手架 express 项目名 --view=ejs 或express -e 项目名 ## ...
- TypeScript(二)使用Webpack搭建环境
今天继续来更新,本篇文章我们讲环境搭建,主要分享一些环境搭建的学习资源及安装步骤,解决一些安装时可能会出现的问题.下面就让我们一起进入学习第一步,搭建TypeScript环境:一. 环境搭建1.1. ...
- os删除文件或者文件夹
最近在使用os.remove删除目录时报错了,这里记录下os操作文件或者目录的常用方法 递归删除文件或文件夹 import shutil shutil.rmtree() 文件的重命名 os.renam ...
- 基因id转换
DAVID网站提供了id转换的功能 1 选择上传gene list文件 2 选择上传ID的类型,我们ID-list.txt中的是Ensembl Gene ID,所以这里选ENSEMBL_GENE_ID ...
- Zuul【入门】
1.创建eureka-server注册中心工程,配置跟之前讲eureka文章中一样,这里不再赘述 1.1.端口8888 2.创建一个demo-client工程 2.1.demo-client启动类跟之 ...
- Mybatis笔记2
使用Mybatis完成的CRUD操作 个人总结的一些小规律 学习过程中碰到的错误: org.apache.ibatis.exceptions.PersistenceException: ### Err ...
- git彻底删除或变更子模块
今天遇到一个很怪的问题,我想把我的一个子模块切换到另一个上游,我按照网上的方法删除子模块然后新建后,这个子模块依旧跟踪着我先前的上游.自己摸索了一下,可能方法比较傻,不过是可行的,希望能给大家一些帮助 ...
- babel编译ts
这里用的是babel7 npx babel src --out-dir lib --extensions ".ts"