TLS1.3 协议介绍

一、 协议介绍
TLS(Transport Layer Security )的中文全称是安全传输层协议,TLS的设计目标是在传输层之上,构建一个安全传输层。
因为有了TLS的存在,HTTP协议栈增加了安全性。变成了目前大规模使用的HTTPS。SSL是TLS的前身。在TLS1.3发布之前,TLS 1.2是该协议的最新版本。TLS是保护Web应用程序和Web浏览器之间通信的标准,但更常见的是通常位于可靠传输层上的客户端和应用程序之间。
Netscape(网景公司)针对传输层协议(TCP/UDP)并没有对传输的数据进行加密保护的缺陷,为自家浏览器设计了SSL协议,于1995年公开协议的2.0版本。1999年,IETF小组基于SSL 3.0设计了与SSL协议独立的TLS 1.0协议,正式成为互联网传输层加密的标准。此后,TLS协议于2006年、2008年再次经历更新,分别命名为TLS 1.1和TLS 1.2。
如今的TLS协议不仅被用于传输层通讯,更作为一个标准的加密保护协议被广泛应用于 FTP, 电子邮件和VPN等领域,时刻保护着我们网络通信的安全。
TLS1.3与TLS1.1、1.2的区别
TLS 1.3 是时隔九年对 TLS 1.2 等之前版本的新升级,也是迄今为止改动最大的一次。针对目前已知的安全威胁,IETF(Internet Engineering Task Force,互联网工程任务组) 正在制定 TLS 1.3 的新标准,使其有望成为有史以来最安全,但也最复杂的 TLS 协议。
TLS 1.3 与之前的协议有较大差异,主要在于:

  1. 相比过去的的版本,引入了新的密钥协商机制 — PSK
  2. 支持 0-RTT 数据传输,在建立连接时节省了往返时间
  3. 废弃了 3DES、RC4、AES-CBC 等加密组件,废弃了 SHA1、MD5 等哈希算法
  4. ServerHello 之后的所有握手消息采取了加密操作,可见明文大大减少
  5. 不再允许对加密报文进行压缩、不再允许双方发起重协商
  6. DSA 证书不再允许在 TLS 1.3 中使用
    对比旧协议中的不足,TLS 1.3 确实可以称得上是向前迈了一大步。既避免之前版本出现的缺陷,也减少了 TLS 握手的时间。
    总结一下,TLS 1.3 与以前的版本相比具有如下两个大的优势,分别是:
    更快的访问速度
    为了对比 TLS 1.3 在 TLS 握手阶段的变化, 这里将 TLS 1.2 和 TLS 1.3 在 TLS 握手阶段进行对比。
    △ TLS 1.2 完整握手框架(来自 RFC 5246)

从上图可以看出,使用 TLS 1.2 需要两次往返( 2-RTT )才能完成握手,然后才能发送请求。
△ TLS 1.3 完整握手框架(来自 TLS 1.3 最新草案 )

TLS 1.3 的握手不再支持静态的 RSA 密钥交换,这意味着必须使用带有前向安全的 Diffie-Hellman 进行全面握手。从上图可以看出,使用 TLS 1.3 协议只需要一次往返( 1-RTT )就可以完成握手。
相比 TLS 1.2,TLS 1.3 的握手时间减半。这意味着访问一个移动端网站,使用 TLS 1.3 协议,可能会减少将近 100ms 的时间。
更强的安全性
TLS 的发展有 20 多年的历史,在之前的版本中,TLS 1.2 是高度可配置的,为了更好的兼容旧版本的浏览器,这意味着那些易受攻击的站点始终在运行着不安全的加密算法,这让互联网黑客有可乘之机。
TLS 1.3 在之前版本的基础上删除了那些不安全的加密算法,这些加密算法包括:

  1. RSA 密钥传输 —— 不支持前向安全性
  2. CBC 模式密码 —— 易受 BEAST 和 Lucky 13 攻击
  3. RC4 流密码 —— 在 HTTPS 中使用并不安全
  4. SHA-1 哈希函数 —— 建议以 SHA-2 取而代之
  5. 任意 Diffie-Hellman 组—— CVE-2016-0701 漏洞
  6. 输出密码 —— 易受 FREAK 和 LogJam 攻击
    通过这种简化的方法,Web开发人员和管理员现在不易受到协议配置错误的影响,从而使网站在机密性和完整性方面对用户更安全,并降低了网络攻击的风险。总之,TLS 1.3 相比老版本的 TLS 协议将会更加安全,这也代表着互联网安全的一大进步。

开启TLS1.3
在 Firefox 中手动启用 TLS 1.3
a) 在 Firefox 地址栏中执行 about:config 打开浏览器配置选项
b) 使用 ctrl + f 快捷键搜索 security.tls.version 这个「首选项名称」并双击打开,查看该首选项的值。
c) 首选项 security.tls.version.max 值用以确定 Firefox 支持的最高 TLS 协议级别。如果它设置为 3,则支持 TLS 1.2。如果将其值设置为 4,则可启用 Firefox 对 TLS 1.3 的支持。
d) 值用以确定 Firefox 支持的最高 TLS 协议级别。如果它设置为 3,则支持 TLS 1.2。如果将其值设置为 4,则可启用 Firefox 对 TLS 1.3 的支持。
e) 您可以在 SSLLabs 网站上对浏览器所支持的协议和安全功能进行检查。 如果 security.tls.version.max 首选项设置为 4,应该可以看到浏览器支持 TLS 1.3。

在 Chrome 中手动启动 TLS 1.3
a) 在 Chrome 浏览器的地址栏中加载 chrome://flags/,打开 Web 浏览器的实验页面;
b) 搜索区域搜索 TLS 或者 tls,找到 TLS 1.3 选项,默认为 Default,需要将 Default 改为 Enabled;
c) 然后重新启动 Chrome 浏览器 OK 了!

猜你喜欢

转载自blog.csdn.net/qq_40291480/article/details/103049969