TLS1.3 认证和秘钥建立握手环节的分析
1、ClientHello 中的参数
ClientHello---{ Random_C 、extension } 在 extension中的扩展中包含 ( supported_version 、 supported_groups、 signatureschemlist、key_shared )
2、服务器接收到之后需要选择支持的最高版本协议,秘钥分发算法和选择的公钥,加密签名算法、以及random_S、session_id 回复 serverHello,算出自己前主秘钥,紧接着使用自己选择的加密方式加密发送一个 Encryption_Extension报文,接着服务器加密发送CA证书与数字签名,然后等待客户端的回复 Finished
3、客户端收到服务器的 SeverHello报文之后,计算前主秘钥,解密接下来收到的文件,验证其正确性,如果存在问题,发送警告报文,然后终端此次握手。重新建立握手,如果正确加密发送Finished 报文,之后可以发送加密的数据报文。
4、服务器计算主秘钥,收到Finished报文之后,加密发送Finished 报文,然后握手成功,可以选择新的会话 tickets报文
第二部分:
对TLS 1.3的RCF文档部分重新进行整一遍
1.2 Major Difference from TLS1.2
传统的加密算法被精简了,剩下的都是有关认证加密的关联
客户端和服务端,服务读研收到客户端的ClientHello之后,响应客户端发送ServerHello ,如果选择(EC)DHE 秘钥建立方法,ServerHello包含 “key_share”的扩展 但是如果选择的是PSK秘钥建立ServerHello中包含“pre_shared_key”扩展,表明客户端提供的PSKs被选择,注意实现方式可以同时选择 ( EC)DHE 和 PSK两种方式。当选择两种方式的时候两个扩展都应该包括
握手协议的作用:
握手协议的作用是协议安全参数的连接,握手消息提供给记录层,
第三部分:
TLS1.3的握手优化
Client发送 ClientHello , extension中携带支持的椭圆曲线类型,且对自己支持的椭圆曲线类型计算公钥(POINT),公钥放在extension中的 keyshare中
Server端回复 ServerHello和 certificate等,server选择的椭圆曲线参数,然后乘以椭圆曲线的base point得到公钥 (POINT),然后提取CLientHEllo中的key_share拓展中对应的公钥,计算主密钥。公钥(POINT)放在ServerHEllo的key_share扩展中。Client收到Server的公钥(POINT)之后计算主密钥。
第四部分: TLS1.3的全握手
1、client发送CLientHello 携带的信息如下:
- 支持的加密套件 (和TLS1.2版本的信息是一样的)
- support_versions扩展。包含自己支持的TLS协议版本号(TLS1.2没有)
- support_group扩展,表示自己支持的椭圆曲线类型
- key_share 扩展,包含Support_group中各椭圆曲线对应的 public key,key_share中的椭圆曲线必须出现在support_group中。(TLS1.2中没有)
2、Server发送SeverHello 携带信息如下:
support_version 扩展,包含自己从Client的Support_version中选择的TLS协议的版本号,(之前TLS1.2没有)
key_share扩展,包含自己选中的椭圆曲线,以及自己计算出来的公钥(之前TLS1.2没有)
3、Sever 发送 Change cipher Spec (允许不发送,在这一步中我们直接不做处理)
4、Server端发送 Encrypted Extension (加密)
ServerHello 之后必须立刻发送 Encryption Extension ,这是第一个被加密的数据,和秘钥协商没有关系(之前TLS1.2没有)
5、Server端发送 Certificate(加密)
这个报文和之前的协议没有太大的差别,唯一的是证书链中的每个证书后面都有一个 extension(双向认证)
6、server端发送certificate verify(加密)
certificate verify 生成的额逻辑是当前所有的握手报文解析签名
7、Server端回复Finished (加密)
8、客户端发送 Change Cipher Spec (允许不发送 ,在实验中我们不添加这一步)
9、Client发送加密的Finished
10、Server 发送 new Session Ticket (可选)
其实上面的说法还是不够,全面,后续还要对参与的参数等 从新分析 之后开始对协议形式化的分析 。所以现在还是卡在这部分的分析上面

TLS1.3 认证和秘钥建立握手环节的分析的更多相关文章
- 《基于Scyther的秘钥建立协议设计》-------摘抄整理
本篇论文额主要创新点: 利用Scyther软件,通过对一个不安全的秘钥建立协议逐步添加并验证安全属性,最终建立一个安全的秘钥建立协议. 通过形式化分析软件设计秘钥建立协议课可以提高协议设计效率,减 ...
- TLS握手秘钥套件分析
1.为了弄清楚TLS1.3的内部结构,觉得有必要将TLS的整个结构从新整理一遍,方便后续在做握手协议的形式化分析的时候能够不遗漏每个加密和认证的的环节. TLS1.3不论文在协议内容上还是性能上都较之 ...
- ssh的秘钥认证
ssh秘钥认证简述 通常我们会使用x-shell.putty.MobaXterm等支持ssh连接的工具去登录服务器进行管理,而执行ssh命令.scp命令等从一台服务器登录另外一台服务器的时候,通常需要 ...
- 克隆虚拟机+Linux互相登录+秘钥认证(四)
1.虚拟机右键管理_克隆 修改虚拟机名称后完成! 2.开机启动虚拟机 随时保存快照 3.开启两台虚拟机,进行互相登录切换!(W命令查看系统负载) 补充: IP登录: ssh IP: 例如:ssh 19 ...
- Linux ssh服务开启秘钥和密码认证
问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 Password ...
- 云主机使用ansible出现秘钥认证问题
使用ansible的时候,出现如下秘钥失效的问题: root@jumpserver ftp]# ansible web -m ping The authenticity of host 'web-00 ...
- VMware 12 与Centos 7建立共享文件夹 && vmware 15 pro过期激活秘钥
1 vmware 15pro评估过期 网上找到的激活秘钥,激活密钥: YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8(亲试有效)UG5J2-0ME12-M89WY-NPWXX-WQH88U ...
- https的秘钥公钥以及之间的会话流程
一 共享秘钥 1.1 概念 共享秘钥和我们生活中同一把锁的钥匙概念类似,对同一把锁来说,加锁时使用什么钥匙,解锁也必须使用同样的钥匙. 1.2 共享秘钥在HTTP传输中的缺点 以共享密钥方式加密时 ...
- SSH设置秘钥登录
设置 SSH 通过密钥登录 我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默 ...
随机推荐
- C#操作Access时Parameters集合的使用方法(转)
按照C#操作Sql Server数据库的方式是不一样的,使用时发现占位符数据会混乱. 查阅相关资料及测试后,总结出这样一套使用方法. 方法: public bool TsqlExecute(strin ...
- (十三)class文件结构:常量池(转)
Class类文件的结构 全局规范 1.任何一个Class文件都对应着唯一一个类或接口的定义信息,但反过来说,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成).本章中,只是通俗 ...
- Newtonsoft.Json 方法使用()
JSON.NET1.3.0,旧版本的json.net,使用Newtonsoft.Json.JavaScriptConvert.DeserializeObject类进行转换 如果是新版本的json.ne ...
- 【Leetcode_easy】917. Reverse Only Letters
problem 917. Reverse Only Letters solution: class Solution { public: string reverseOnlyLetters(strin ...
- 用MATLAB的Classficiation Learner工具箱对12个数据集进行各种分类与验证
准备材料 以所有的特征集作为variable进行像Bayes吖.SVM吖.决策树吖......分类.同时对数据进行预处理,选出相关度高的特征子集作为新的一组data进行分类(预处理的代码不必放出来). ...
- nohup保证程序后台运行
前言 我们运行某些命令的时候,它会默认在前台执行.如果要进行其他操作,则需要先停掉此程序.然后就蛋疼了. 解决 碰到这种情况,我们可以使用"nohup"命令和"&am ...
- vw、vh、vmin、vmax 的含义
像 px.em 这样的长度单位大家肯定都很熟悉,前者为绝对单位,后者为相对单位.CSS3 又引入了新单位:vw.vh.vmin.vmax.下面对它们做个详细介绍. 一.基本说明 1,vw.vh.v ...
- springMVC设置不拦截静态资源的方法
SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下方案进行解决: 方案一.拦截器中增加针对静 ...
- 文件类型分类:头文件dirent.h中定义的文件类型与linux内文件符号对应关系
头文件 dirent.h 定义了文件类型: enum{ DT_UNKNOWN = 0, //未知类型 DT_FIFO = 1, //first in, ...
- maven 打包成 .jar 文件执行:没有主清单属性错误
报错原因是pom.xml配置文件中没有指定main入口信息,在pom.xml文件中添加如下代码: <build> <plugins> <plugin> <gr ...