本文主要從TLS 1.3的優(yōu)勢(shì)、部署和時(shí)間發(fā)展線介紹了這種用于為計(jì)算機(jī)網(wǎng)絡(luò)通信提供安全性的密碼協(xié)議TLS。
成都創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元嶗山做網(wǎng)站,已為上家服務(wù),為嶗山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
TLS簡(jiǎn)介
按照維基百科的定義,TLS 是一種用于為計(jì)算機(jī)網(wǎng)絡(luò)通信提供安全性的密碼協(xié)議,其前身安全套接層(SSL)想必很多人都聽(tīng)說(shuō)過(guò)。TLS 被廣泛應(yīng)用于基于 IP 的網(wǎng)絡(luò)協(xié)議,如 HTTP、SMTP、FTP 等。最近幾年內(nèi),Let's Encrypt 提供的免費(fèi)證書服務(wù)、瀏覽器只對(duì) HTTPS 站點(diǎn)啟用 HTTP/2 和把未使用 HTTPS 而要求輸入密碼的網(wǎng)站標(biāo)記為不安全等因素強(qiáng)力推動(dòng)了 HTTPS 的部署,國(guó)際上 HTTPS 的部署率現(xiàn)已超過(guò) 50%。在各種因素的推動(dòng)下,國(guó)內(nèi)站點(diǎn)和應(yīng)用也在大力推廣 TLS 等密碼協(xié)議的使用。
Figure 1: 數(shù)據(jù)來(lái)自谷歌 Transparency Report,2018年9月14日獲取
TLS 1.3 移除了很多過(guò)時(shí)的密碼學(xué)原型和功能(例如壓縮、重協(xié)商),強(qiáng)制要求完美前向安全。TLS 1.2 支持了很多加密算法(包括 3DES、靜態(tài) DH 等),這導(dǎo)致了 FREAK、Logjam、Sweet32 等攻擊的出現(xiàn)。TLS 1.3 縮緊了對(duì)加密原型的限制,避免了因服務(wù)器啟用不安全的算法導(dǎo)致協(xié)議的安全性受到影響。在這方面的簡(jiǎn)化也使得運(yùn)維和開(kāi)發(fā)者配置 TLS 變得更容易,不再容易誤用不安全的配置。
TLS 1.3 之前,整個(gè)握手環(huán)節(jié)都是沒(méi)有加密保護(hù)的,這泄漏了很多信息,包括客戶端和服務(wù)器的身份。TLS 1.3 對(duì)握手的絕大部分信息進(jìn)行了加密,這保護(hù)了用戶隱私,也在一定程度上防止了協(xié)議僵化問(wèn)題。
雖然電腦越變?cè)娇?,但在互?lián)網(wǎng)上傳輸數(shù)據(jù)耗費(fèi)的時(shí)間依然受限于光速,所以兩個(gè)節(jié)點(diǎn)間來(lái)回傳輸一次的時(shí)間(RTT)成為了限制協(xié)議性能的因素之一。TLS 1.3 只需要一個(gè) RTT 就能完成握手,相比 TLS 1.2 省去了一個(gè) RTT。并且 TLS 1.3 支持 “0-RTT” 模式,在該模式下客戶端可以在握手的同時(shí)發(fā)送數(shù)據(jù),極大地加快了頁(yè)面的加載速度。TLS 1.3 還增加了 ChaCha20/Poly1305 支持,在不支持 AES 硬件指令的老設(shè)備上能提升加、解密性能。
TLS 1.3的部署
Tengine 2.2.2 / nginx 1.13.0 提供了 TLS 1.3 支持,和 OpenSSL 1.1.1 配合即可將網(wǎng)站升級(jí)到 TLS 1.3。在配置文件里將 TLSv1.3 加到 ssl_protocols 中就可以啟用 TLS 1.3 支持了。Qualys 的 SSL 服務(wù)器測(cè)試[1]是很方便的 TLS 配置測(cè)試工具,可以很方便地檢測(cè)公網(wǎng)站點(diǎn)的 TLS 配置及其安全性。
協(xié)議僵化問(wèn)題
當(dāng)一個(gè)互聯(lián)網(wǎng)協(xié)議長(zhǎng)時(shí)間不發(fā)生變化時(shí),基于該協(xié)議開(kāi)發(fā)的設(shè)備就可能無(wú)視其預(yù)留的變通手段而對(duì)其特性作出超出標(biāo)準(zhǔn)的假設(shè),這就是協(xié)議僵化現(xiàn)象。在 TLS 1.3 的完善過(guò)程中,新的協(xié)議因協(xié)議僵化問(wèn)題而不得不模擬老協(xié)議的一些行為,這大大拖慢了 TLS 1.3 標(biāo)準(zhǔn)化的進(jìn)度。盡管在制定 TLS 1.3 標(biāo)準(zhǔn)時(shí)工作組針對(duì)很多實(shí)際測(cè)試時(shí)出現(xiàn)的問(wèn)題進(jìn)行了處理,但我們部署到線上環(huán)境還是需要注意可能出現(xiàn)的兼容性問(wèn)題。
2017年4月25日,nginx 1.13.0 發(fā)布,增加了 TLS 1.3 支持。
2018年3月21日,IESG 批準(zhǔn)了 TLS 1.3 草案。
2018年4月17日,Chrome 66 默認(rèn)開(kāi)啟了對(duì) TLS 1.3 草案的支持。
2018年5月9日,F(xiàn)irefox 60 默認(rèn)開(kāi)啟了對(duì) TLS 1.3 草案的支持。
2018年8月10日,IETF 發(fā)布了 TLS 1.3 標(biāo)準(zhǔn)。
2018年9月11日,OpenSSL 1.1.1 (LTS) 版本發(fā)布,提供 TLS 1.3 支持。TLS 1.3 超過(guò) TLS 1.0 成為 Cloudflare 上使用率排名第二的 TLS 版本。
2018年10月16日,Chrome 70 支持 TLS 1.3 正式標(biāo)準(zhǔn)。
2018年10月23日,F(xiàn)irefox 63 支持 TLS 1.3 正式標(biāo)準(zhǔn)。
[1]https://www.ssllabs.com/ssltest/
[2]https://tools.ietf.org/html/rfc8446
[3]https://en.wikipedia.org/wiki/Transport_Layer_Security
[4]https://blog.mozilla.org/security/2018/08/13/tls-1-3-published-in-firefox-today/
[5]https://ietf.org/blog/tls13/
[6]https://kinsta.com/blog/tls-1-3/