• 简介TLS 1.3


    0x00 前言

    最近在阅读论文,其中阅读了 WWW2021的一篇文章“TLS 1.3 in Practice: How TLS 1.3 Contributes to the Internet”。在本篇文章中,作者对当下TLS 1.3在实际中的采用率、安全性、性能和实现进行了大规模的测量。下面是对TLS 1.3 的一些优势与特性的总结。


    论文下载地址:https://yonghwi-kwon.github.io/data/tls_www21.pdf

    0x01 什么是TLS?

    TLS代表传输层安全性并且是SSL(安全套接字层)的后继者。TLS提供了Web浏览器和服务器之间的安全通信。连接本身是安全的,因为使用对称密码术对传输的数据进行加密。密钥是为每个连接唯一生成的,并且基于在会话开始时协商的共享机密(也称为TLS握手)。


    0x02 TLS 1.3 &&TLS 1.2

    在过去十年中,部署了最新的TLS版本1.3 ,解决了其前身(即TLS 1.2 )的关键漏洞,如BEAST和FREAK攻击。TLS 1.3的标准化工作始于2013年8月,随着安全性和性能的提高,于2018年8月完成。


    安全性提高

    1. 废除不支持前向安全性的 RSA 和 DH 密钥交换算法;
    2. MAC 只使用 AEAD 算法;
    3. 禁用 RC4 / SHA1 等不安全的算法;
    4. 加密握手消息;
    5. 兼容中间设备 TLS 1.2;
    6. 加密握手消息。

    另外,TLS 1.2容易受到中间人攻击和降级攻击(FREAK)。TLS 1.3 弥补了TLS 1.2 的缺陷,使其不易受到攻击。

    降级攻击(FREAK)原理

    image-20210421192808608

    主要原因,TLS1.2 握手部分协商使用哪种密码,并没有进行加密数字签名。而 TLS 1.3 对握手信息进行了加密处理。

    Phase 1:在客户端发出的Hello消息中,它会请求标准的加密,中间人攻击者会改变请求内容,转而请求“40 bit 密钥的出口级的加密算法”(弱加密算法)

    Phase 2:服务端会回复一个出口级的密钥,由于OpenSSL/Secure传输的bug,客户端会接受这个存在漏洞的密钥

    Phase 3:攻击者进行爆破40bit密钥,以便能够伪造mac,进行消息修改。详见TLS 1.2 握手过程.

    Phase 4:服务端进行响应消息,中间攻击者可以查看.

    所有的流量都使用弱加密算法,并将经过中间人,中间人可以随意查看与修改。

    Export 加密算法

    Export是一种老旧的弱加密算法,是被美国法律标示为可出口的加密算法,其限制对称加密最大强度位数为40位,限制密钥交换强度为最大512位。这是一个现今被强制丢弃的算法。


    性能提高

    TLS和加密连接在网络性能方面总是会增加一些开销。HTTP / 2确实可以解决此问题,但是TLS 1.3通过诸如TLS错误启动和零往返时间(0-RTT)之类的功能,甚至可以进一步提高加密连接的速度。

    1-RTT模式

    简而言之,对于TLS 1.2,需要两次往返来完成TLS握手。在1.3版本中,它只需要一个往返, 这反过来又将加密延迟减少了一半。这有助于使那些加密的连接比以前更灵活。

    image-20210421192437167

    image-20210421192322160

    具体来说,在TLS 1.2的第二次往返中,客户机Hello和服务器Hello消息与密钥交换消息相结合。

    0-RTT恢复

    TLS1.3通过引入early_data扩展0-RTT恢复与先前访问的网站的会话 ,对于恢复的会话,在发送应用程序数据之前没有握手过程。它允许客户端将应用程序数据与第一个握手消息一起发送。相比之下,TLS 1.2在发送应用程序数据之前需要一个RTT。

    在TLS 1.2中,有两种恢复连接的方法:会话ID和会话票据。TLS 1.3把这俩结合在一起形成了新模式,称为PSK(预共享密钥)恢复。具体是,在建立会话之后,客户端和服务器可以派生一个共享的密钥,叫做“恢复主密钥”。可以将其存储在服务器上(会话ID的形式),也可以使用仅服务器已知的密钥进行加密(会话票据形式)。此会话票据将发送给客户端,并在恢复连接时进行交换。

    对于恢复连接,双方共享恢复的主密钥,不需要进行密钥交换。客户端下一次连接到服务器时,它可以从上一个会话中获取密钥,并使用它来加密应用程序数据和会话票据一起发送到服务器。具体如图:

    image-20210421212235290

    0-RTT恢复不具有前向安全性,且消息可能被用作重放攻击,所以安全性较低,需慎重使用。

    0-RTT 重放攻击原理

    这里借用cloudflare的原理图

    image-20210421201446262

    如果攻击者捕获了发送到服务器的0-RTT数据包,则他们可以重放该数据包,并且服务器可能会将其视为有效。这可能会产生负面后果。



    0x03 参考文献

    TLS 1.3 in Practice: How TLS 1.3 Contributes to the Internet

    详细了解RFC 8446(又名TLS 1.3)

    TLS Session Resumption: Full-speed and Secure

    “历史遗留”漏洞:浅析新型SSL/TLS漏洞FREAK

    HTTPS 温故知新(三) —— 直观感受 TLS 握手流程(上)

    TLS 详解握手流程

    today is not tomorrow
  • 相关阅读:
    js Touch事件(向左滑动,后退)
    浏览器滚动条到底部自动加载更多
    如何终止terminal后台进程
    DFT介绍
    GDS area estimation
    Web Scraping with Python第二章
    Web Scraping with Python第一章
    python技巧汇总
    centos6.4安装zsh与dircolors
    linux解压命令汇总
  • 原文地址:https://www.cnblogs.com/PsgQ/p/14687053.html
Copyright © 2020-2023  润新知