TLS 1.0 & TLS 1.1 版本即將退出歷史舞臺
自從TLS 1.3協議標準規範定稿,各大瀏覽器廠商(Chrome、Firefox、Edge、Safari)不約而同在近日宣告即將廢棄TLS 1.0和TLS 1.1協議了,今天我從多個視角給大家普及下相關知識,以便大家更好的部署自己的 HTTPS 服務。
為什麼要廢棄
從時間上看,TLS 1.0 協議已經有20年曆史了,確實要退出歷史舞臺了。
目前TLS協議主流的版本是 v1.2,那麼和 v1.0 和 v1.1 版本相比,它有那些優勢呢?或者說 v1.0 和 v1.1 版本必然有一些缺陷,所以才要被各大瀏覽器廠商廢棄。
主要原因有兩方面, 首先就是效能 ,TLS 1.2協議有了更快的密碼學演算法,比如支援AEAD類的加密模式, 其次更重要的原因是安全性。
TLS 1.0是 SSL 3.0的一個簡單升級,只是換了個叫法而已;TLS 1.1 在安全性方面有了很大的提升,並且引入了TLS 擴充套件,這是非常重要的改革;TLS 1.2 版本是比較大的一個改造,加強了密碼套件的擴充套件性。
安全是相對的,理論上TLS 1.0和TLS 1.1 協議是安全的,即使歷史上出現一些安全問題,也已經被TLS實現(比如OpenSSL)或客戶端(比如瀏覽器)修復了,但在某種程度上這二個版本仍然有安全風險,主要原因在於某些密碼演算法已經被認為是不安全了(比如 SHA1、RC4演算法)。
所以從安全的角度看v1.0 和 v1.1版本確實可以宣告死亡了,但為什麼值得現在他們仍然還存活著? 相容性 ,這是一種妥協,因為世界上還有很多裝置(比如 XP/IE8)不支援現代化的密碼演算法(比如GCM),所以HTTPS服務部署者不能強制使用 V1.2版本,這是在使用者體驗和安全性上的一個折中。
有的同學說,大部分瀏覽器使用v1.2版本連線我的網站,那麼為了相容老裝置,伺服器同時也只支援v1.0和v1.1版本,有何不可?還是安全性,只要你的伺服器存在v1.0和v1.1版本,攻擊者就會強制讓你從v1.2降級到老版本,從而帶來安全風險。
另外一個原因是如果想支援HTTP/2協議,必須構建於 TLS 1.2協議,它不支援 TLS 1.0 和 TLS 1.2版本。
IETF 專門出了一個 RFC 文件,描述廢棄 TLS 協議舊版本的原因,有興趣可以瞭解下(https://datatracker.ietf.org/doc/draft-ietf-tls-oldversions-deprecate/)。
不管有多困難,我們總是要往前走,隨著v1.3協議的到來,瀏覽器廠商覺得廢棄這二個老版本的時機已經成熟了,接下來我們看看這二個版本的佔有率。
TLS 1.0和TLS 1.1使用率
從使用率上看,這二個版本確實應該廢棄了,從二個緯度的分析。
(1)伺服器
一般情況下,從相容性角度來看,伺服器可能會同時支援v1.0、v1.1、v1.2 協議,SSL Pulse 對它檢測的網站統計資料如下圖(October 03, 2018的資料):
從中可以看出:
-
只有6.5%的網站不支援 v1.2
-
當然並行支援v1.1和v1.0版本的服務還很多,分別達到70%,80%。
(2)客戶端
接下去看看瀏覽器的統計情況,它們最有發言權,看看這二個版本(使用了較舊版本的瀏覽器)的使用情況:
-
Firefox:2018年9月份統計,v1.1和v1.0版本使用率1.2%。
-
Chrome:v1.1和v1.0版本使用率0.5%。
-
Safari:v1.1和v1.0版本使用率0.6%。
從以上的資料來看,這二個版本確實可以廢棄了,在推動web安全方面,各大瀏覽器確實功不可沒。
瀏覽器廠商時間安排
大部分瀏覽器到2020年左右會廢棄這兩個版本,具體如下:
-
Firefox:沒有具體的時間安排,大概會在2020年3月份全面廢棄。
-
Chrome:Chrome 7版本會在 DevTools 控制檯中顯示舊版本警告,到 Chrome 81 版本會終止使用v1.0和v1.1版本,預計在2020一月份全面廢棄。
-
Safari:預計2020年3月份,iOS和macOS平臺上的Safari會廢棄v1.0和v1.1版本。
我們應該做什麼
如果伺服器想廢棄v1.0和v1.1版本,從技術角度看非常的簡單,比如Nginx 可以進行以下配置:
ssl_protocolsTLSv1.2 TLSv1.3 ;
假設你的服務歷史比較長,可以統計下v1.0和v1.1版本的使用率,如果比例很小,可以直接禁止使用這二個版本。
如果比例相對較大,可以在應用層面進行提示,技術實現也非常簡單,比如伺服器判斷出某個連線使用v1.0或v1.1版本,彈出一個對話方塊提示使用者升級系統或瀏覽器,逐步的引導使用者。
當然,廢棄v1.0和v1.1版本已經是既定事實,所以做太多的使用率分析意義並不大。
最近大半年我寫了很多密碼學&HTTPS協議的文章,如果對你有所幫助,還請贊賞鼓勵下,過一段時間,我會對公眾號的文章進行分類,以便大家更好的閱讀。