TLS1.3 VS TLS1.2,讓你明白TLS1.3的強大

TLS1.3 VS TLS1.2,讓你明白TLS1.3的強大

7 人贊了文章

HTTPS 加密時代已經來臨,近兩年,Google、Baidu、Facebook 等互聯網巨頭,不謀而合地開始大力推行 HTTPS, 2018 年 7 月 25 日,Chrome 68 上線,所有 HTTP 網站都會被明確標記為「不安全」。國內外大到 Google、Facebook 等巨頭,小到個人博客在內的眾多網站,以及登陸 Apple App Store 的 App,微信的小程序,都已經啟用了全站 HTTPS,這也是未來互聯網發展的趨勢。

有得必有失,HTTPS 雖然增加了網站安全性,但因為 HTTPS 握手次數增加,會一定程度上降低用戶訪問速度。為了使 HTTPS 達到更快的數據傳輸性能,並且在傳輸過程中更加安全,又拍雲 CDN 已支持 TLS 1.3 新特性。下文簡單介紹下 TLS 1.3 的新特性,讓你明白相較於TLS 1.2,TLS 1.3 強大在哪裡。

帶你認識 TLS

通常所說的 HTTPS 協議,說白了就是 「HTTP 協議」 和 「SSL/TLS 協議」 的組合。SSL 是 「Secure Sockets Layer」 的縮寫,中文意思為「安全套接層」,而 TLS 則是標準化之後的 SSL。

TLS(Transport Layer Security Protocol,傳輸層安全協議)主要目的是提供隱私和數據兩個通信應用之間的完整性。該協議由兩層組成:TLS 記錄協議(TLS Record)和 TLS 握手協議(TLS Handshake)。

當使用 TLS 時,客戶端和伺服器之間的連接具有以下一個或多個屬性:

  • 連接私密性:使用對稱加密演算法用於加密數據的傳輸,例如 AES [AES], RC4 [SCH] 等
  • 可以使用公鑰加密來驗證通信方的身份
  • 連接可靠性:發送的每個消息都使用 MAC(消息認證碼) 進行完整性檢查

低版本 TLS 之殤

Netscape(網景公司) 在 1994 年時提出了 SSL 協議的原始規範, TLS 協議也經過了很多次版本的更新。目前低版本的 TLS (例如:SSL 3.0/TLS 1.0 等)存在許多嚴重漏洞。另外根據 Nist(美國國家標準與技術研究院)所說,現在沒有補丁或修復程序能夠充分修復低版本 TLS 的漏洞,儘快升級到高版本的 TLS 是最好的方法。

目前行業正處於 TLS 1.2 取代 TLS 1/1.1 的過渡時期,將來會有越來越多的互聯網安全企業啟用 TLS 1.2。它引入了 SHA-256 哈希演算法,摒棄了 SHA-1,對增強數據完整性有著顯著優勢。

又拍雲提供最低 TLS 版本管理功能,只需登陸又拍雲控制台,選擇服務,進入「配置」即可開啟。配置過程中,選擇的協議級別越高,相應的也就更安全,但是可以支持的瀏覽器也就越少,有可能會影響終端用戶訪問,請謹慎選擇配置。

TLS 1.3 VS TLS 1.2,強大盡顯

TLS 1.3 是時隔九年對 TLS 1.2 等之前版本的新升級,也是迄今為止改動最大的一次。針對目前已知的安全威脅,IETF(Internet Engineering Task Force,互聯網工程任務組) 正在制定 TLS 1.3 的新標準,使其有望成為有史以來最安全,但也最複雜的 TLS 協議。

TLS 1.3 與之前的協議有較大差異,主要在於:

  • 相比過去的的版本,引入了新的密鑰協商機制 — PSK
  • 支持 0-RTT 數據傳輸,在建立連接時節省了往返時間
  • 廢棄了 3DES、RC4、AES-CBC 等加密組件,廢棄了 SHA1、MD5 等哈希演算法
  • ServerHello 之後的所有握手消息採取了加密操作,可見明文大大減少
  • 不再允許對加密報文進行壓縮、不再允許雙方發起重協商
  • 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 在之前版本的基礎上刪除了那些不安全的加密演算法,這些加密演算法包括:

  • RSA 密鑰傳輸 —— 不支持前向安全性
  • CBC 模式密碼 —— 易受 BEAST 和 Lucky 13 攻擊
  • RC4 流密碼 —— 在 HTTPS 中使用並不安全
  • SHA-1 哈希函數 —— 建議以 SHA-2 取而代之
  • 任意 Diffie-Hellman 組—— CVE-2016-0701 漏洞
  • 輸出密碼 —— 易受 FREAK 和 LogJam 攻擊

總之,TLS 1.3 相比老版本的 TLS 協議將會更加安全,這也代表著互聯網安全的一大進步。

TLS 1.3 瀏覽器支持情況

下面是各大瀏覽器的 TLS 1.3 支持情況:

目前最新的 Chrome 和 Firefox 都已支持 TLS 1.3,但需要手動開啟:

Chrome 中需要將 chrome://flags/ 中的 Maximum TLS version enabled 改為 TLS 1.3(Chrome 62 中需要將 TLS 1.3 改為 Enabled (Draft)

Firefox 中,將 about:config 中的 security.tls.version.max 改為 4;

目前,又拍雲的 CDN 網路已經率先支持 TLS 1.3,作為國內較早支持 TLS 1.3 的 CDN 廠商,又拍雲始終跟隨時代的步伐,為互聯網世界的安全與加速貢獻著自己的一份力量。

推薦閱讀:

科普 TLS 1.3 — 新特性與開啟方式?

tech.upyun.com

用了 HTTPS 還不安全,問題就出在低版本 TLS 上?

tech.upyun.com


推薦閱讀:

TAG:SSL | 前端性能優化 | 互聯網 |