天天看點

【科普】TLS1.3如此強大!我們如何迎接它?

HTTPS 時代已經來臨,而新一代安全傳輸協定TLS1.3的普及會大大提升HTTP連接配接速度的性能,消除HTTPS使用性能上的擔憂,助推HTTPS進一步應用落地。早在去年,阿裡雲CDN HTTPS就已經全面支援TLS1.3,鼓勵使用者逐漸更新到更安全、性能更佳的TLS1.3,幫助終端獲得更好的通路體驗。本文由阿裡雲CDN技術專家林勝恩(嘯坤)為你詳細揭秘TLS1.3的發展曆程、特性以及應用。

一、TLS1.3協定發展曆程

SSL協定起源于1994年,當時網景公司推出首版網頁浏覽器及HTTPS協定,用于加密的就是SSL。此後相繼推出SSL2.0及3.0版本,1999年IETF将SSL标準化,即 RFC 2246 ,并将其命名為TLS。2006年和2008年又分别推出TLS1.1和TLS1.2版本。

在SSL/TLS發展過程中曾出現過各種安全漏洞,如Heartbleed、POODLE,這導緻SSL3.0及其之前版本逐漸廢棄,目前網際網路使用的主流協定是TLS1.2版本。

TLS1.3協定針對安全強化及效率提升等方面進行了大量修改,IETF相繼推出個28個草案版本,曆時4年多,終于在今年8月份完成最終的标準化 (

RFC 8446

) 。

【科普】TLS1.3如此強大!我們如何迎接它?

二、TLS 1.3協定好在哪?

安全強化,TLS1.3依循極簡主義的設計哲學,移除并修複了舊版本協定中的壞味道,将密鑰交換、對稱加解密、壓縮等環節中可能存在的安全隐患剔除,防範于未然。

性能提升,TLS1.3在提高效率方面進行了大量改進,特别是對SSL握手過程進行了重新設計,将握手互動延時從2-RTT降低至1-RTT甚至是0-RTT。在網絡環境較差或節點距離較遠的情況下,這種優化能節省幾百毫秒的時間。這幾百毫秒往往就能決定使用者下一步的行為是繼續浏覽網頁還是關閉網頁。

1、安全強化

TLS1.3依循極簡主義的設計哲學,移除并修複了舊版本協定中的壞味道,将密鑰交換、對稱加解密、壓縮等環節中可能存在的安全隐患剔除,防範于未然。

1.1 密鑰交換

1.1.1 完全支援PFS

TLS1.3協定中選取的密鑰交換算法均支援前向安全性。斯諾登事件之後網際網路企業開始重視加密算法的前向安全性,防止私鑰被破解之後曆史資料也能被解密成明文。

為了達到上述安全目的,TLS1.3協定中廢除了不支援前向安全性的RSA和靜态DH密鑰交換算法。

1.1.2 廢棄DSA證書

DSA證書作為曆史遺留産物,因安全性差,從未被大規模應用,故在TLS1.3協定中被廢棄。

1.1.3 RSA填充模式更改

協定中規定RSA填充模式使用PSS。

1.1.4 禁用自定義的DH組參數

如果選用了不“安全”的素數作為DH的組參數,并且使用靜态DH密碼套件或使用預設OpenSSL配置的DHE加密套件(特别是SSL_OP_SINGLE_DH_USE選項未設定),就很容易受到 Key Recovery Attack 攻擊。 是以TLS1.3協定中禁用自定義的DH組參數。

1.2 對稱加密

1.2.1 禁用CBC模式

針對CBC模式加密算法的攻擊,曆史上出現過兩次,分别是2011年BEAST和2013年Lucky 13,實踐證明這種對稱加密模式确實存在安全隐患。

1.2.2 禁用RC4流加密算法

2011年9月,研究人員發現了BEAST攻擊,該攻擊針對所有基于CBC模式的加密算法。為解決這個問題,專家建議采用非CBC模式且普及率較高的RC4算法作為替代方案,由此RC4算法得到廣泛應用。

随着TLS版本的演進,BEAST攻擊可通過更新到新版本解決,不必要采用RC4這種陳舊算法來替代。另外,2013年英國皇家哈洛威學院的研究人員發現了一種針對TLS的攻擊,該攻擊可以從RC4算法加密的密文中恢複出少量明文,證明了這種算法無法提供讓人放心的安全等級。

為防止RC4算法被徹底破解,導緻之前加密的網絡流量被解密出現嚴重的安全事故,網際網路公司逐漸廢棄了這個算法。2014年,CloudFlare将RC4算法的優先級從最高降為最低。2015年,IETF組織在rfc7465中明确指出要禁用RC4流加密算法。

1.2.3 禁用SHA1

早在2005年研究機構就發現SHA1存在理論上的漏洞,可能造成碰撞攻擊。

2013年開始微軟、Google、Symantec等相關廠商相繼公布SHA1證書的更新計劃并宣布2017年将開始停止信任SHA1證書。

2017年初Google與荷蘭研究機構CWI Amsterdam共同宣布破解SHA1,将SHA1的碰撞攻擊從理論轉變為現實。

1.3 禁用TLS壓縮

由于TLS壓縮存在安全漏洞,TLS1.3協定删除了該特性。該漏洞表現為通過CRIME攻擊可竊取啟用資料壓縮特性的HTTPS或SPDY協定傳輸的Cookie。在成功解讀身份驗證Cookie後,攻擊者可實行會話劫持并發動進一步攻擊。

1.4 加密握手消息

TLS1.3協定中規定在ServerHello消息之後的握手資訊需要加密。TLS1.2及之前版本的協定中各種擴充資訊在ServerHello中以明文方式發送,新版本中可在加密之後封裝到EncryptedExtension消息中,在ServerHello消息之後發送,提高資料安全性。

2、效率提升

對于網際網路服務而言更快的頁面加載意味着更好的使用者體驗,進而也能帶動産品銷售的提升。

HTTPS在提高網絡安全的同時卻增加了額外的性能消耗,包括額外的SSL握手互動過程,資料加解密對CPU的消耗等。TLS1.3在提高效率方面進行了大量改進,特别是對SSL握手過程進行了重新設計,将握手互動延時從2-RTT降低至1-RTT甚至是0-RTT。在網絡環境較差或節點距離較遠的情況下,這種優化能節省幾百毫秒的時間。這幾百毫秒往往就能決定使用者下一步的行為是繼續浏覽網頁還是關閉網頁。

2.1 2-RTT

下面以ECDHE密鑰交換算法為例,介紹下TLS1.2協定完整的SSL握手過程,如下圖所示。

【科普】TLS1.3如此強大!我們如何迎接它?

首先用戶端發送ClientHello消息,該消息中主要包括用戶端支援的協定版本、加密套件清單及握手過程需要用到的ECC擴充資訊;

服務端回複ServerHello,包含標明的加密套件和ECC擴充;發送證書給用戶端;選用用戶端提供的參數生成ECDH臨時公鑰,同時回複ServerKeyExchange消息;

用戶端接收ServerKeyExchange後,使用證書公鑰進行簽名驗證,擷取伺服器端的ECDH臨時公鑰,生成會話所需要的共享密鑰;生成ECDH臨時公鑰和ClientKeyExchange消息發送給服務端;

伺服器處理ClientKeyExchange消息,擷取用戶端ECDH臨時公鑰;伺服器生成會話所需要的共享密鑰;發送密鑰協商完成消息給用戶端;

雙方使用生成的共享密鑰對消息加密傳輸,保證消息安全。

從上述過程可以看出,在TLS1.2中需要加密套件協商、密鑰資訊交換、ChangeCipherSpec協定通告等過程,需要消耗2-RTT的握手時間,這是造成HTTPS協定較慢的一個重要原因。

2.2 1-RTT

TLS1.3中提供1-RTT的握手機制,以ECDHE密鑰交換過程為例,握手過程如下。将用戶端發送ECDH臨時公鑰的過程提前到ClientHello ,同時删除了ChangeCipherSpec協定簡化握手過程,使第一次握手時隻需要1-RTT。

【科普】TLS1.3如此強大!我們如何迎接它?

用戶端發送ClientHello消息,該消息主要包括用戶端支援的協定版本、DH密鑰交換參數清單KeyShare;

服務端回複ServerHello,包含標明的加密套件;發送證書給用戶端;使用證書對應的私鑰對握手消息簽名,将結果發送給用戶端;選用用戶端提供的參數生成ECDH臨時公鑰,結合標明的DH參數計算出用于加密HTTP消息的共享密鑰;服務端生成的臨時公鑰通過KeyShare消息發送給用戶端;

用戶端接收到KeyShare消息後,使用證書公鑰進行簽名驗證,擷取伺服器端的ECDH臨時公鑰,生成會話所需要的共享密鑰;

2.3 0-RTT

為使TLS協定的性能得到極緻提升,TLS 1.3提出0-RTT工作模式。對于客戶最近通路過的網站,可以在第一次互動時就将加密資料發送給伺服器。

具體的實作過程如下:

用戶端和服務端通過TLS session複用或外部輸入的方式共享PSK,這種情況下,允許用戶端在第一次互動的ClientHello消息中包含應用資料,該資料使用PSK加密。

0-RTT模式不具有前向安全性,且消息可能被用作重播攻擊,是以安全性較低,需慎重使用。

TLS 1.2與TLS 1.3對比總結

相比TLSv1.2,TLSv1.3主要的優勢如下:

性能提升:完全握手場景下,TLSv1.3握手消耗1-RTT;會話複用的場景,TLSv1.3握手消耗0-RTT;均比TLSv1.2少一個RTT。

安全提升:TLSv1.3完全支援PFS(即完全前向安全)的密鑰交換算法;禁用有安全漏洞的加密套件;對ServerHello消息之後的握手資訊加密。

阿裡雲CDN 支援TLS1.3情況

目前阿裡雲CDN已經支援TLS 1.3的标準化版本,客戶可以通過控制台自主開啟該功能。

具體開啟方式是:

1.登入CDN控制台。

2.在左側導航欄,單擊域名管理。

3.在域名管理頁面,單擊目标域名對應的管理。

4.在指定域名的左側導航欄,單擊HTTPS配置。

5.在TLS版本控制區域,根據所需開啟或關閉對應的TLS版本。

TLS協定說明如下表所示:

【科普】TLS1.3如此強大!我們如何迎接它?
具體操作方式可以點選進入文檔檢視

歡迎大家開啟TLS 1.3,一起來使用阿裡雲CDN更加安全和快速的服務。

阿裡雲CDN介紹

作為國内CDN行業的絕對上司者,阿裡雲聚焦于超低延時、邊緣安全、智能中台等領域,不斷尋求突破性技術進展。目前,阿裡雲CDN已建成從智能運維,實時資料監控、全網動态實施故障感覺到智能自修複的全鍊路智能營運支撐平台。前不久,阿裡雲釋出超低延時直播服務RTS,引領千萬級直播場景進入毫秒時代。此後,阿裡雲将雲盾WAF性能注入CDN節點,推出一站式分發+安全解決方案。在7月份的阿裡雲開發者大會中,阿裡雲宣布CDN邊緣腳本EdgeScript正式公測,幫助開發者生态快速建構CDN個性化業務體系,赢得靈活的傳遞收益。

目前,阿裡雲CDN在全球部署2800+節點,具備130Tb帶寬儲備,服務于全球超30萬客戶,每天為超過百萬的域名加速,承接數十億次的重新整理。

點選了解阿裡雲CDN

繼續閱讀