SSL/TLS 协议运行机制概述(二)

在SSL/TLS 协议运行机制概述(一)中介绍了TLS 1.2 的运行机制,现在我们来看年 TLS 1.3 的运行机制。会涉及到SSL/TLS 协议运行机制概述(一)中的一些概念,有需要的可以配合着看。

TLS 1.3 握手过程

TLS 1.3 握手过程

  1. 与 TLS 1.2 握手一样,"Client Hello" 消息启动握手,但这次它包含了很多信息。TLS 1.3 将支持的密码套件从37个减少到5个。在握手的上下文中,这意味着客户端除了从它猜测的任何协议发送密钥共享外,还可以猜测将使用什么密钥协议/交换协议。
  2. 服务器将用自己的 "Server Hello" 消息响应。就像1.2握手一样,它也会在此时发送证书。并且,如果客户机猜对了,并且两端同意相同的 AEAD 协议,服务器将发送自己的密钥共享部分,计算会话密钥(session key),并以 "Server Finished" 消息结束。
  3. 现在客户端已经拥有了所有相关信息,客户端将对 SSL 证书进行身份验证,并使用这两个密钥共享来计算它自己的会话密钥副本。完成后,它会发送自己的完成消息。

TLS 1.3 握手相对 TLS 1.2 的改进

1.更少的往返次数

最理想的情况是,TLS 1.2握手可以进行两次往返。在某些情况下,可能需要额外的往返行程,因此我们是在最佳情况下所讨论的往返行程的数量。对比如下两个图:

TLS 1.2 握手

TLS 1.2 握手

TLS 1.3 握手

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 协议运行机制概述(二)的更多相关文章

  1. SSL/TLS 协议运行机制概述(一)

    SSL/TLS 协议运行机制概述(一) SSL/TLS 发展史 1994年,NetScape 设计了SSL协议(Secure Sockets Layer) 1.0,未正式发布 1995年,NetSca ...

  2. SSL/TLS协议运行机制的概述_转

    转自:SSL/TLS协议运行机制的概述 作者: 阮一峰 日期: 2014年2月 5日 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和 ...

  3. SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  4. 【转】SSL/TLS协议运行机制的概述

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  5. SSL/TLS协议运行机制的概述(转)

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  6. SSL/TLS协议运行机制的概述(转)

    互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行机制.文章的重点是设计思想和运行过程,不涉及具体的实现细节.如果想了解这方面的内容,请参阅RFC文档. 一.作用 ...

  7. 网络安全 - SSL/TLS协议运行机制的概述

    大学时也系统学过相关的网络安全,但那时并没有理论联系实践,稀里糊涂的,现在才意识到所学的东西都是好东西,可惜已晚. 来自http://www.ruanyifeng.com/blog/2014/02/s ...

  8. SSL/TLS协议运行机制

      转载自http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html 互联网的通信安全,建立在SSL/TLS协议之上. 本文简要介绍SSL/TLS协议的运行 ...

  9. SSL协议运行机制

    SSL/TLS协议运行机制 一.作用 不使用SSL/TLS的HTTP通信,就是不加密的通信.所有信息明文传播,带来了三大风险. (1) 窃听风险(eavesdropping):第三方可以获知通信内容. ...

随机推荐

  1. python学习笔记(9)函数(一)

    定义一个函数 你可以定义一个由自己想要功能的函数,以下是简单的规则: 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 (). 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定 ...

  2. python3下scrapy爬虫(第十卷:scrapy数据存储进mysql)

    上一卷中我将爬取的数据文件直接写入文本文件中,现在我将数据存储到mysql中,我依然用的是pymysql,这个很麻烦建表需要在外面建 这次代码只需要改变pipyline就行 来 现在看下结果: 对比发 ...

  3. Base64基础知识

    转载自百度百科:http://baike.baidu.com/link?url=tI0FbG-ALTTNhRsaQHWXqdVWQDCq4bwd5Xsc0m46M8DKZ5jJyVWnr3IvTprh ...

  4. Qt foreach关键字用法

    Qt提供一个关键字 foreach (实际是 <QtGlobal> 里定义的一个宏)用于方便地访问容器里所有数据项. foreach 关键字用于遍历容路中所有的项,使用 foreach 的 ...

  5. SQL提高性能

    1.对外键建立索引,大数据量时性能提高明显(建索引可以直接[Merge Join],否则还须在查询时生成HASH表作[Hash Join]) 2.尽量少使用inner join,使用left join ...

  6. Mybatis-Generator相关配置demo

    generatorConfig.xml配置信息 首先在resource中配置好datasource.propertise文件,包括数据库信息和mysql-connector的jar包位置. <? ...

  7. Zabbix-3.0.3实现微信(WeChat)报警

    转自:http://blog.sina.com.cn/s/blog_87113ac20102w7hp.html Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来 ...

  8. idea运行时默认显示的index.jsp修改方法

    在web.xml中加入以下代码,然后重启服务器就可以了. <welcome-file-list> <welcome-file>这儿写你要显示的页面名称</welcome- ...

  9. [洛谷P4556] 雨天的尾巴

    这道题可以用线段树合并做,网上的题解基本上都是线段树合并的. 但是为什么我就偏偏要用dsu on tree...... 题目传送门 dsu on tree的方法类似[CF1009F] Dominant ...

  10. POJ 3522 用不同的排序方式

      这是一个蜜汁WA了的代码.. 说好的样例对了就是对了呢orz 反正我个人认为思路是没问题的不知道WA在哪了,丢个坑在这里以后填吧 //思路: //1节点连接的边都记录下来,依次克鲁斯卡尔枚举得出最 ...