簡介TLS 1.3

PsgQ 發表於 2021-04-21

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 詳解握手流程