TLS 1.3 中Pre_shared_key和key_share对应的两种密钥交换模式
1、TLS1.3的整个协议的文档规范 请参照 RFC 8846,协议规范中指出,TLS1.3提供三方面的安全属性,分别是身份认证、通信加密、完整性验证。
2、TLS1.3协议主要包括两个组成部分,分别是握手协议、记录协议、其中记录协议包括了警告协议。而握手协议的主要作用是实现双方身份认证,协商加密模式,建立共享密钥参数,产生一个主秘钥用于后续记录协议使用加密应用层通信消息。
3、TLS1.3提供密钥交换模式一共有三种分别是:
(EC)DHE (DDiffer-Hellman overr either finite fields or elliptic curves)(论文中讨论有限域上椭圆曲线秘钥交换模式)
PSK -Only
PSK with (EC)DHE (暂时还没有实现)
4、Pre_shared_key和key_share的内容区别
key_share 是Client发送ClientHello中Extension中包含的一个对应Support_group中椭圆曲线的对应计算的公钥集(ECDHE)
Pre_shared_key是PSK模式中
(TLS1.3中删除了之前版本在中使用的会话票据,而是使用PSK模式建立会话恢复)
其中加密协商的进程主要四个可选的扩展影响(Cipher_suite 表明AEAD算法、 HKDF算法 哈希对),(Support_group 包含ECDHE组)(Signature_algorithms签名算法)(Pre_shared_key 包含对称密钥标签)
5、LTS1.3 握手协议客户端和服务端 认证过程图
客户端: 服务端:
6、ProVerify验证TLS1.3握手协议(考虑服务端认证)
7、对TLS1.3 中秘钥推导计算的过程分析
8、CPNtool对TLS1.3我首先协议秘钥建立过程的建模分析
CPNtoll广泛使用在对系统的建模,其实并不适合对协议的分析,尤其是安全协议比较复杂的过程。适应CPNtoll我们只分析TLS1.3中没有使用加密的会话过程。同时添加攻击模型对其状态空间分析。
TLS 1.3 中Pre_shared_key和key_share对应的两种密钥交换模式的更多相关文章
- Java 获取*.properties配置文件中的内容 ,常见的两种方法
import java.io.InputStream; import java.util.Enumeration; import java.util.List; import java.util.Pr ...
- 【Spark篇】--Spark中Standalone的两种提交模式
一.前述 Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式. 二.具体 1.Standalon ...
- 在Java Web程序中使用监听器可以通过以下两种方法
之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响 ...
- Eclipse中SVN的安装步骤(两种)和使用方法
Eclipse中SVN的安装步骤(两种)和使用方法 一.给Eclipse安装SVN,最常见的有两种方式:手动方式和使用安装向导方式.具体步骤如下: 方式一:手动安装 1.下载最新的Eclipse,我的 ...
- [转]MFC子线程中更新控件内容的两种办法
一.概述 每个系统中都有线程(至少都有一个主线程),而线程最重要的作用就是并行处理,提高软件的并发率.针对界面来说,还能提高界面的响应能力.一般的,为了应用的稳定性,在数据处理等耗时操作会单独在一个线 ...
- python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- js如何实现动态的在表格中添加和删除行?(两种方法)
js如何实现动态的在表格中添加和删除行?(两种方法) 一.总结 1.table元素有属性和一些方法(js使用) 方法一:添加可通过在table的innerHTML属性中添加tr和td来实现 tab.i ...
- QT中获取选中的radioButton的两种方法(动态取得控件的objectName之后,对名字进行比较)
QT中获取选中的radioButton的两种方法 QT中要获取radioButton组中被选中的那个按钮,可以采用两种如下两种办法进行: 方法一:采用对象名称进行获取 代码: 1 QRadioBu ...
- Android中H5和Native交互的两种方式
Android中H5和Native交互的两种方式:http://www.jianshu.com/p/bcb5d8582d92 注意事项: 1.android给h5页面注入一个对象(WZApp),这个对 ...
随机推荐
- ISO/IEC 9899:2011 条款6.10.3——宏替换
6.10.3 宏替换 约束 1.两个替换列表是相同的,当且仅当两个替换列表中的预处理符记都具有相同的数.次序.拼写,以及空白分隔符,这里所有的空白分隔符都认为是相同的. 2.当前被定义为一个类似对象的 ...
- js 模糊搜索
function fuzzysearch (needle, haystack) { var hlen = haystack.length; var nlen = needle.length; if ( ...
- react项目中element的DatePicker回显
element的DatePicker获取value的时候是日期对象如下,可以提交的时候查看参数 2019-06-30T17:02:02.000Z 如果是console.log打印出来的话,是这样的 ...
- Pytorch IO提速
1. 把内存变成硬盘,把需要读的数据塞到里面去,加快了io. Optimizing PyTorch training code 如何给你PyTorch里的Dataloader打鸡血 轻轻松松为你的Li ...
- LeetCode,3. 无重复字符的最长子串
看了各位大神的,真是难堪,尤其是各种c++动不动就击败99%...我用python,换了三次算法,改了十几次bug,才击败5%....贴出来纪念下吧. 题目如下: 给定一个字符串,请你找出其中不含有重 ...
- js:如何获取select选中的值
我想获取select选中的value,或者text,或者…… 比如这个: <select id="select"> <option value=" ...
- 【Sqoop学习之二】Sqoop使用
环境 sqoop-1.4.6 一.基本命令1.帮助命令 [root@node101 ~]# sqoop help Warning: /usr/local/sqoop-/../hbase does no ...
- (生鲜项目)03. xadmin的配置
步骤1. 下载xadmin源码(git_hub上的源码已经不支持py3了,需要从其它老手那里获取),将本文件夹全部放置于合适的目录下(这里放到extra_apps内)2. 在settings的INST ...
- windows下大数据开发环境搭建(1)——Java环境搭建
一.Java 8下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载之后 ...
- 如何配置STP
一.搭建本次实验的拓扑结构 两台s5700交换机模拟核心交换,两台s3700交换机模拟接入交换机,核心上配置eth-trunk 二.开启所有交换机的stp功能 开启stp [S1]stp enab ...