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 认证和秘钥建立握手环节的分析的更多相关文章

  1. 《基于Scyther的秘钥建立协议设计》-------摘抄整理

    本篇论文额主要创新点:   利用Scyther软件,通过对一个不安全的秘钥建立协议逐步添加并验证安全属性,最终建立一个安全的秘钥建立协议. 通过形式化分析软件设计秘钥建立协议课可以提高协议设计效率,减 ...

  2. TLS握手秘钥套件分析

    1.为了弄清楚TLS1.3的内部结构,觉得有必要将TLS的整个结构从新整理一遍,方便后续在做握手协议的形式化分析的时候能够不遗漏每个加密和认证的的环节. TLS1.3不论文在协议内容上还是性能上都较之 ...

  3. ssh的秘钥认证

    ssh秘钥认证简述 通常我们会使用x-shell.putty.MobaXterm等支持ssh连接的工具去登录服务器进行管理,而执行ssh命令.scp命令等从一台服务器登录另外一台服务器的时候,通常需要 ...

  4. 克隆虚拟机+Linux互相登录+秘钥认证(四)

    1.虚拟机右键管理_克隆 修改虚拟机名称后完成! 2.开机启动虚拟机 随时保存快照 3.开启两台虚拟机,进行互相登录切换!(W命令查看系统负载) 补充: IP登录: ssh IP: 例如:ssh 19 ...

  5. Linux ssh服务开启秘钥和密码认证

    问题描述: 实现Linux秘钥和密码同时认证 解决方案: vim /etc/ssh/sshd_config 基本参数: PermitRootLogin yes #允许root认证登录 Password ...

  6. 云主机使用ansible出现秘钥认证问题

    使用ansible的时候,出现如下秘钥失效的问题: root@jumpserver ftp]# ansible web -m ping The authenticity of host 'web-00 ...

  7. VMware 12 与Centos 7建立共享文件夹 && vmware 15 pro过期激活秘钥

    1 vmware 15pro评估过期 网上找到的激活秘钥,激活密钥: YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8(亲试有效)UG5J2-0ME12-M89WY-NPWXX-WQH88U ...

  8. https的秘钥公钥以及之间的会话流程

      一 共享秘钥 1.1 概念 共享秘钥和我们生活中同一把锁的钥匙概念类似,对同一把锁来说,加锁时使用什么钥匙,解锁也必须使用同样的钥匙. 1.2 共享秘钥在HTTP传输中的缺点 以共享密钥方式加密时 ...

  9. SSH设置秘钥登录

    设置 SSH 通过密钥登录 我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器.但是,一般的密码方式登录,容易有密码被暴力破解的问题.所以,一般我们会将 SSH 的端口设置为默 ...

随机推荐

  1. Spring Boot 使用MockMvc对象模拟调用Controller

    功能实现之后,我们要养成随手写配套单元测试的习惯,这在微服务架构中尤为重要.通常,我们实施微服务架构的时候,已经实现了前后端分离的项目与架构部署.那么在实现后端服务的时候,单元测试是在开发过程中用来验 ...

  2. SAS如何看待大数据

    SAS如何看待大数据 "大数据"现在是一个炙手可热的词语,数据分析师这个词虽然比较新,但收集与存储大量信息的历史却不短了. 早在本世纪初,行业分析师Doug Laney就提出了&q ...

  3. Swift4.0复习错误处理

    1.Swift中错误的表示: “在Swift中如果我们要定义一个表示错误的类型非常简单,只需遵循 Error 协议即可.我们通常用枚举或结构体类型来表示错误类型,当然枚举可能用得更多些,因为它能更直观 ...

  4. 【minikube & helm】

    minikube是用来快速搭建一个单机kubernetes集群的工具. https://www.cnblogs.com/liyuanhong/p/10143157.html helm是kubernet ...

  5. curl --resolve 查看证书情况

    通过curl  解析证书 [root@harbor ~]# curl --resolve 'www.abc.com:127.0.0.1' https://www.abc.com/ -vvv * Cou ...

  6. DVWA 安全测试靶机本地搭建

    前期的搭建步骤这里就不多做表述了,网上文章很多,这里主要讲后续会遇到的问题和需要修改的地方.   首先将config-inc.php.dist  修改为config-inc.php 设置Key值 $_ ...

  7. ABP中的AutoMapper

    在我们的业务中经常需要使用到类型之间的映射,特别是在和前端页面进行交互的时候,我们需要定义各种类型的Dto,并且需要需要这些Dto和数据库中的实体进行映射,对于有些大对象而言,需要赋值太多的属性,这样 ...

  8. Spring MVC <mvc:annotation-driven/>的作用

    一.mvc:annotation-driven的作用 Spring 3.0.x中使用了mvc:annotation-driven后,默认会帮我们注册默认处理请求,参数和返回值的类,其中最主要的两个类: ...

  9. Python30之文件2(文件系统)

    一.在python中对于文件系统的访问一般使用的是os模块.python是跨平台的,因此在使用os模块时,不需要关心是在什么系统下使用的 import os >>> os.listd ...

  10. 03 python 对象笔记

    类的命名方法 1.使用大驼峰命名法:每一个单词的首字母大写(第一个的也要)2.单词之间不需要下划线 对象的内置函数和属性 1.使用dir()函数来获取对象的内置方法和属性.返回值是一个列表.2.返回中 ...