SSL/TLS 协议运行机制概述(二)
SSL/TLS 协议运行机制概述(二)
在SSL/TLS 协议运行机制概述(一)中介绍了TLS 1.2 的运行机制,现在我们来看年 TLS 1.3 的运行机制。会涉及到SSL/TLS 协议运行机制概述(一)中的一些概念,有需要的可以配合着看。
TLS 1.3 握手过程
- 与 TLS 1.2 握手一样,"Client Hello" 消息启动握手,但这次它包含了很多信息。TLS 1.3 将支持的密码套件从37个减少到5个。在握手的上下文中,这意味着客户端除了从它猜测的任何协议发送密钥共享外,还可以猜测将使用什么密钥协议/交换协议。
- 服务器将用自己的 "Server Hello" 消息响应。就像1.2握手一样,它也会在此时发送证书。并且,如果客户机猜对了,并且两端同意相同的 AEAD 协议,服务器将发送自己的密钥共享部分,计算会话密钥(session key),并以 "Server Finished" 消息结束。
- 现在客户端已经拥有了所有相关信息,客户端将对 SSL 证书进行身份验证,并使用这两个密钥共享来计算它自己的会话密钥副本。完成后,它会发送自己的完成消息。
TLS 1.3 握手相对 TLS 1.2 的改进
1.更少的往返次数
最理想的情况是,TLS 1.2握手可以进行两次往返。在某些情况下,可能需要额外的往返行程,因此我们是在最佳情况下所讨论的往返行程的数量。对比如下两个图:
TLS 1.2 握手
TLS 1.3 握手
相比之下,TLS 1.3 的握手只是一次往返旅行
2.简化密码套件
TLS 1.2 支持的密码套件有37个,到目前为止有些已经很不安全了,而且过多的配置会导致过分的复杂,因此 TLS 1.3 将支持的密码套件从37个减少到5个。往返次数的减少归结于密码套件支持的减少。
最值得注意的是,关于密钥交换的整个选择都被删除了。Diffie-Hellman Ephemeral 方案是TLS 1.3 的唯一选择,它允许客户端在握手的第一部分将其密钥共享信息与 Client Hello 一起发送。RSA 加密与所有其他静态密钥交换方案一起被完全删除。完美前向保密(PFS)已经成为 TLS 1.3 的一项要求。
3.零往返恢复(0-RTT)
TLS握手在历史上一直很昂贵:增加服务器的负载和增加连接的延迟。所以缩小它的想法很有吸引力。0-RTT 只是通过存储一些有关客户端的秘密信息来实现这一点,通常是会话 ID (Session ID) 或会话票证(Session Tickets),以便将来双方连接时使用。
尽管0-RTT带来了所有好处,但它实际上也带来了一些潜在的问题。
(1) 它使客户端容易受到重播攻击。在重播攻击中,以某种方式设法访问加密会话的攻击者可以获取 0-RTT 数据(包括客户端的第一个请求),并将其再次发送到服务器,它可以欺骗服务器,因为它无法知道数据来自哪里。如果攻击者多次发送这个请求,就称为“重放攻击”。当然,它并不像听起来那么容易,有一些机制可以阻止这种攻击。
(2)更大的问题是,0-RTT 握手可能通过提供解密旧会话的途径破坏完美前向保密(PFS)。当然,通过定期轮换会话密钥可以轻松避免这种情况。
4.保护更多的 TLS 1.3 握手
在握手的早期,最大的担心之一是它的明文发送量。在 TLS 1.2 握手中,握手的协商阶段是不安全的,而是使用一个简单的 MAC 来确保没有人篡改传输的内容。TLS 1.3 握手对早期部分进行了数字签名(对 ServerHello 消息之后的握手信息加密),这使得握手更安全,减少了降级攻击,并且通过扩展它们促进了许多攻击。这还提供了一种途径,通过验证私钥的拥有情况来更快速有效地对服务器进行身份验证。
参考链接:
https://www.thesslstore.com/blog/explaining-ssl-handshake/
https://tools.ietf.org/html/draft-ietf-tls-tls13-18#section-4
SSL/TLS 协议运行机制概述(二)的更多相关文章
- SSL/TLS 协议运行机制概述(一)
SSL/TLS 协议运行机制概述(一) SSL/TLS 发展史 1994年,NetScape 设计了SSL协议(Secure Sockets Layer) 1.0,未正式发布 1995年,NetSca ...
- SSL/TLS协议运行机制的概述_转
转自:SSL/TLS协议运行机制的概述 作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和 ...
- SSL/TLS协议运行机制的概述
互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...
- 【转】SSL/TLS协议运行机制的概述
互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...
- SSL/TLS协议运行机制的概述(转)
互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...
- SSL/TLS协议运行机制的概述(转)
互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...
- 网络安全 - SSL/TLS协议运行机制的概述
大学时也系统学过相关的网络安全,但那时并没有理论联系实践,稀里糊涂的,现在才意识到所学的东西都是好东西,可惜已晚. 来自http://www.ruanyifeng.com/blog/2014/02/s ...
- SSL/TLS协议运行机制
转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...
- SSL协议运行机制
SSL/TLS协议运行机制 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. ...
随机推荐
- miRNA|housekeeping|RNAi|siRNA|Oncomirs|miRBase|PMRD|TargetScan|miRDeep|miRNA target|seed regions|
生物信息学-miRNA 转录组的分类: Noncoding RNA可分为负责Regulatory和housekeeping,housekeeping就是组织日常功能miRNA便是Regulatory ...
- jQuery中的bind(), live(), on(), delegate()
当我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 准备知识: 当我们在开始的时候,有些知识是必须具备的: D ...
- Java 并发编程面试题
并发编程面试题-内存模型说下内存模型定义为什么要有内存模型为什么要重排序,重排序在什么时候排如何约束重排序规则happens-before什么是顺序一致性CAS 实现的原理,是阻塞还是非阻塞方式?什么 ...
- flutter实践 - plsy
项目背景 项目需要从钉钉微应用跳转 WPS 打开 word 文档,但是 WPS 只提供了 StartActivity 方式携带参数跳转应用,deeplink 只能打开应用,而钉钉微应用只支持 deep ...
- win10 安装VMware Workstation Pro提示无法在windows上运行
win10 安装vm无法在windows上运行 之前还可以用 网上搜了一下 要安装最新15.5.0就不会报错了 没毛病!! 不想注册下载 百度网盘(2019年9月19日版本) https://pan ...
- Fence和非原子操作的ordering
除了在原子操作中标记memory ordering外,还可以单独使用fence指定memory ordering.Fence是全局的操作,它影响所执行线程中其他原子操作的ordering. 12345 ...
- 视频播放插件JWPlayer的使用
JwPlayer 简介 JW Media Player是一个开源的在网页上使用的Flash视频.音频以及图片播放器,支持 Sliverlight 播放,支持H.264 ( .mp4, .mo ...
- 递归、尾递归和使用Stream延迟计算优化尾递归
我们在学数据结构的时候必然会接触栈(Stack),而栈有一个重要的应用是在程序设计语言中实现递归.递归用途十分广泛,比如我们常见的阶乘,如下代码: 1234 public static int (in ...
- Linux 下的/usr/bin /usr/sbin /usr/local/bin /usr/local/sbin区别
一./usr/sbin与/usr/bin区别: 1./usr/sbin:root权限下的命令属于基本的系统命令,如shutdown,reboot,用于启动系统,修复系统: 2./usr/bin普通用户 ...
- QIs for Spread
玩了好几天,看了好多剧,所以这几天的进度稍微有点慢,另外,<一起同过窗>真香! 延展特性涉及解集覆盖的区域.一个具有良好分布的解集应该包含来自PF每个部分的解集,而不遗漏任何区域.然而,大 ...