開放、平等、協(xié)作、快速、分享
作者:李新宇 中科院軟件所
TLS 1.3是IETF正在制定的TLS 新標準。TLS 自標準化至今已有近20年的時間,自1999年TLS 1.0標準頒布,到后來的TLS 1.1(2006年)和目前得到廣泛使用的TLS 1.2(2008年),TLS是保障網(wǎng)絡傳輸安全最重要的安全標準之一。然而,廣泛的應用也使得TLS成為了攻擊的“眾矢之的”,這些攻擊或利用TLS設計本身存在的不足(如幸運十三攻擊[1]、三次握手攻擊[2]、跨協(xié)議攻擊 [3]等),或利用TLS所用密碼原語本身的缺陷(如RC4加密 [4]、RSA-PKCS#1 v1.5加密 [5]等),或利用TLS實現(xiàn)庫中的漏洞(如心臟出血攻擊[6]等)。面對這一系列的攻擊,一直以來我們采取的措施是“打補丁”,即針對新的攻擊做新的修補。然而,由于TLS的應用規(guī)模過于龐大,不斷地打補丁在如此大規(guī)模的實際應用中并不容易全面實施。除此之外,交互雙方必須運行復雜的TLS握手協(xié)議才能開始傳輸信息,很多情況下我們希望在握手輪數(shù)和握手延遲方面可以有更多的選擇。出于以上以及其他種種因素的考慮,IETF從2014年開始著手制定一個“clean”的TLS1.3。
問題一:TLS 1.3的制定過程
TLS 1.3的制定過程是“透明”的,即IETF發(fā)布的草案中會留下若干問題,相關領域的專家學者可以就這些問題或者自己有疑問的其他問題通過郵件系統(tǒng)進行在線討論[7],而討論結果也會在更新后的草案版本中有所體現(xiàn)。目前最新發(fā)布的草案版本是TLS 1.3 draft 19 [8](2017年3月)。
除此之外,近兩年也出現(xiàn)了一系列對TLS 1.3草案的分析工作,如[9-13],在標準正式頒布之前,這對于我們對TLS的全面理解以及TLS安全防護的設計是大有幫助的。
問題二:為什么是TLS 1.3
有一個比較有趣的細節(jié),TLS新標準的名字并不是TLS 2.0或者其他名字,而是TLS 1.3,即延續(xù)了TLS 1.0、1.1和1.2的名稱。這說明1.3是之前版本的升級,TLS 協(xié)議的大致框架并未發(fā)生本質改變。下面兩圖為TLS 1.2和TLS 1.3握手協(xié)議的對比(細節(jié)請參照標準文檔)。然而,TLS 1.3是TLS標準更新過程中變動最大的一次,除了對于運行過程中的若干問題如密碼套件的選擇、密鑰的計算方式、握手消息的發(fā)送方式等做了更改之外,TLS 1.3還增加了新的握手模式,以滿足不同應用場景下的需求。
圖一:TLS 1.2握手框架
圖二:TLS 1.3握手框架
問題三:TLS 1.3做出了哪些重大改動
與之前版本類似,TLS 1.3協(xié)議可分為握手協(xié)議和記錄協(xié)議,前者負責密碼組件的協(xié)商以及安全信道的建立,后者則是在已建立的安全信道中傳輸秘密信息。TLS 1.3設計的第一個重要目標就是避免之前版本存在的缺陷,為此,一部分相關的改動如下:
(1)禁止使用RSA密鑰傳輸算法。
(2)禁止一些安全性較弱的密碼原語如MD5的使用。
(3)不再支持重協(xié)商握手模式。
(4)握手消息采取了加密操作,如圖二中標有{}的部分。
(5)實現(xiàn)了握手協(xié)議和記錄協(xié)議的密鑰分離。
(6)實現(xiàn)了會話密鑰與整個握手消息的綁定。
(7)記錄層只能使用AEAD(Authenticated Encryption with Additional Data)認證加密模式。
相應的改動還有很多,新發(fā)布的草案中也會明確說明相比之前版本所做的改動。這些改動不僅可以避免之前版本存在的問題,如(6)使得TLS可以避免三次握手攻擊。同時,也使得TLS的可證明安全分析工作更加方便,如(5)使得TLS 1.3可以實現(xiàn)密鑰不可區(qū)分性質的證明,而在TLS1.2中,由于握手協(xié)議和記錄協(xié)議的重疊,無法實現(xiàn)這一目標的證明。
從目前發(fā)布的最新草案來看,TLS 1.3主要支持四種握手模式:(1)基于(EC)DHE密鑰交換的握手模式;(2)基于PSK的會話重啟,由預共享密鑰PSK進行快速簡短的握手;(3)會話重啟與(EC)DHE結合的握手,可以提供前向安全性;(4)基于PSK的0-RTT(round-trip time)握手,客戶端利用PSK導出密鑰,在第一輪就發(fā)送秘密數(shù)據(jù),降低了握手的延遲。在此之后還可以繼續(xù)進行(EC)DHE的密鑰交換完成完整的握手(該步為可選)。注意到,0-RTT握手第一輪中加密數(shù)據(jù)所使用的密鑰并沒有服務器的貢獻,因此可能存在重放攻擊。另外,握手模式(4)與(2)或者(3)的區(qū)別僅在于是否在第一輪就傳輸秘密數(shù)據(jù)。
另外,TLS 1.3還定義了一種特殊的認證方式:后握手認證(post-handshake authentication)。在TLS握手過程中,客戶端的認證是可選的,所謂后握手認證指的是握手結束后,允許服務器在任何時刻向客戶端發(fā)起身份認證的申請,作為回復,客戶端會發(fā)送證書以及對本次連接握手內容的簽名,除此之外,還會發(fā)送密鑰確認消息以提供對整個握手消息和會話密鑰的確認。該條認證消息是在記錄層的安全信道中傳輸?shù)摹?/p>
總結:
TLS 1.3 draft 19發(fā)布之后,起草者Eric Rescorla在討論列表中列出了仍待解決的問題供大家討論 [14],由此可見TLS 新標準的制定工作仍然在進行中,而對于TLS 1.3的研究也會成為未來的熱點方向。與此同時,TLS 1.2仍然是目前甚至未來相當一段時間內被普遍使用或者兼容的TLS 版本,這可能導致TLS 1.2對TLS 1.3的安全性帶來影響,這也是未來研究的重要方向。
部分參考文獻:
[1]AlFardan N J, Paterson K G. Lucky thirteen: Breaking the TLS and DTLS record protocols [C]. Proceedings of 2013 IEEE Symposium on Security and Privacy (S&P), 2013. 526–540.
[2]Bhargavan K, Lavaud A D, Fournet C, et al. Triple handshakes and cookie cutters: Breaking and fixing authentication over TLS [C]. Proceedings of 2014 IEEE Symposium on Security and Privacy (S&P), 2014. 98–113.
[3]Mavrogiannopoulos N, Vercauteren F, Velichkov V, et al. A cross-protocol attack on the TLS protocol[C]//Proceedings of the 2012 ACM conference on Computer and communications security. ACM, 2012: 62-72.
[4]AlFardan N J, Bernstein D J, Paterson K G, et al. On the Security of RC4 in TLS [C]. Proceedings of 22nd USENIX Security Symposium, 2013. 305–320.
[5]Bleichenbacher D. Chosen ciphertext attacks against protocols based on the RSA encryption standard PKCS #1 [C]. Advances in Cryptology—CRYPTO’98, 1998. 1–12.
[6]Codenomicon. The Heartbleed Bug [EB/OL]. http://heartbleed.com, April 2014.
[7]https://www.ietf.org/mail-archive/web/tls/current/maillist.html.
[8]Rescorla E. The Transport Layer Security (TLS) Protocol Version 1.3 – draft-ietf-tls-tls13-09[S]. https://tools.ietf.org/html/draft-ietf-tls-tls13-19, March, 2017.
[9]Dowling B, Fischlin M, Günther F, et al. A cryptographic analysis of the TLS 1.3 handshake protocol candidates [C]. Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security (CCS), 2015. 1197–1210.
[10]Cremers C, Horvat M, Scott S, et al. Automated analysis and verification of TLS 1.3: 0-RTT, resumption and delayed authentication[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 470-485.
[11]Fischlin M, Günther F, Schmidt B, et al. Key confirmation in key exchange: a formal treatment and implications for TLS 1.3[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 452-469.
[12]Li X, Xu J, Zhang Z, et al. Multiple handshakes security of TLS 1.3 candidates[C]//Security and Privacy (SP), 2016 IEEE Symposium on. IEEE, 2016: 486-505.
[13]Krawczyk H, Wee H. The OPTLS protocol and TLS 1.3[C]//Security and Privacy (EuroS&P), 2016 IEEE European Symposium on. IEEE, 2016: 81-96.
[14]https://www.ietf.org/mail-archive/web/tls/current/msg22593.html.
作者簡介:
李新宇,本科、碩士就讀于中國科學技術大學,現(xiàn)為中國科學院軟件研究所在讀博士生,目前的研究方向主要為密碼協(xié)議的設計與安全性分析。
上一篇:TLS 1.3概述
下一篇:SSL和TLS部署注意事項