文章分享

開放、平等、協(xié)作、快速、分享

當(dāng)前位置:首頁(yè)>文章分享

TLS 1.3概述

摘錄:HCTech 無(wú)錫和控電子   時(shí)間:2020-08-07   訪問(wèn)量:3265

作者:李新宇 中科院軟件所

TLS 1.3是IETF正在制定的TLS 新標(biāo)準(zhǔn)。TLS 自標(biāo)準(zhǔn)化至今已有近20年的時(shí)間,自1999年TLS 1.0標(biāo)準(zhǔn)頒布,到后來(lái)的TLS 1.1(2006年)和目前得到廣泛使用的TLS 1.2(2008年),TLS是保障網(wǎng)絡(luò)傳輸安全最重要的安全標(biāo)準(zhǔn)之一。然而,廣泛的應(yīng)用也使得TLS成為了攻擊的“眾矢之的”,這些攻擊或利用TLS設(shè)計(jì)本身存在的不足(如幸運(yùn)十三攻擊[1]、三次握手攻擊[2]、跨協(xié)議攻擊 [3]等),或利用TLS所用密碼原語(yǔ)本身的缺陷(如RC4加密 [4]、RSA-PKCS#1 v1.5加密 [5]等),或利用TLS實(shí)現(xiàn)庫(kù)中的漏洞(如心臟出血攻擊[6]等)。面對(duì)這一系列的攻擊,一直以來(lái)我們采取的措施是“打補(bǔ)丁”,即針對(duì)新的攻擊做新的修補(bǔ)。然而,由于TLS的應(yīng)用規(guī)模過(guò)于龐大,不斷地打補(bǔ)丁在如此大規(guī)模的實(shí)際應(yīng)用中并不容易全面實(shí)施。除此之外,交互雙方必須運(yùn)行復(fù)雜的TLS握手協(xié)議才能開始傳輸信息,很多情況下我們希望在握手輪數(shù)和握手延遲方面可以有更多的選擇。出于以上以及其他種種因素的考慮,IETF從2014年開始著手制定一個(gè)“clean”的TLS1.3。

問(wèn)題一:TLS 1.3的制定過(guò)程

TLS 1.3的制定過(guò)程是“透明”的,即IETF發(fā)布的草案中會(huì)留下若干問(wèn)題,相關(guān)領(lǐng)域的專家學(xué)者可以就這些問(wèn)題或者自己有疑問(wèn)的其他問(wèn)題通過(guò)郵件系統(tǒng)進(jìn)行在線討論[7],而討論結(jié)果也會(huì)在更新后的草案版本中有所體現(xiàn)。目前最新發(fā)布的草案版本是TLS 1.3 draft 19 [8](2017年3月)。

除此之外,近兩年也出現(xiàn)了一系列對(duì)TLS 1.3草案的分析工作,如[9-13],在標(biāo)準(zhǔn)正式頒布之前,這對(duì)于我們對(duì)TLS的全面理解以及TLS安全防護(hù)的設(shè)計(jì)是大有幫助的。

問(wèn)題二:為什么是TLS 1.3

有一個(gè)比較有趣的細(xì)節(jié),TLS新標(biāo)準(zhǔn)的名字并不是TLS 2.0或者其他名字,而是TLS 1.3,即延續(xù)了TLS 1.0、1.1和1.2的名稱。這說(shuō)明1.3是之前版本的升級(jí),TLS 協(xié)議的大致框架并未發(fā)生本質(zhì)改變。下面兩圖為TLS 1.2和TLS 1.3握手協(xié)議的對(duì)比(細(xì)節(jié)請(qǐng)參照標(biāo)準(zhǔn)文檔)。然而,TLS 1.3是TLS標(biāo)準(zhǔn)更新過(guò)程中變動(dòng)最大的一次,除了對(duì)于運(yùn)行過(guò)程中的若干問(wèn)題如密碼套件的選擇、密鑰的計(jì)算方式、握手消息的發(fā)送方式等做了更改之外,TLS 1.3還增加了新的握手模式,以滿足不同應(yīng)用場(chǎng)景下的需求。

圖一:TLS 1.2握手框架

 

圖二:TLS 1.3握手框架

問(wèn)題三:TLS 1.3做出了哪些重大改動(dòng)

與之前版本類似,TLS 1.3協(xié)議可分為握手協(xié)議和記錄協(xié)議,前者負(fù)責(zé)密碼組件的協(xié)商以及安全信道的建立,后者則是在已建立的安全信道中傳輸秘密信息。TLS 1.3設(shè)計(jì)的第一個(gè)重要目標(biāo)就是避免之前版本存在的缺陷,為此,一部分相關(guān)的改動(dòng)如下:

(1)禁止使用RSA密鑰傳輸算法。

(2)禁止一些安全性較弱的密碼原語(yǔ)如MD5的使用。

(3)不再支持重協(xié)商握手模式。

(4)握手消息采取了加密操作,如圖二中標(biāo)有{}的部分。

(5)實(shí)現(xiàn)了握手協(xié)議和記錄協(xié)議的密鑰分離。

(6)實(shí)現(xiàn)了會(huì)話密鑰與整個(gè)握手消息的綁定。

(7)記錄層只能使用AEAD(Authenticated Encryption with Additional Data)認(rèn)證加密模式。

相應(yīng)的改動(dòng)還有很多,新發(fā)布的草案中也會(huì)明確說(shuō)明相比之前版本所做的改動(dòng)。這些改動(dòng)不僅可以避免之前版本存在的問(wèn)題,如(6)使得TLS可以避免三次握手攻擊。同時(shí),也使得TLS的可證明安全分析工作更加方便,如(5)使得TLS 1.3可以實(shí)現(xiàn)密鑰不可區(qū)分性質(zhì)的證明,而在TLS1.2中,由于握手協(xié)議和記錄協(xié)議的重疊,無(wú)法實(shí)現(xiàn)這一目標(biāo)的證明。

從目前發(fā)布的最新草案來(lái)看,TLS 1.3主要支持四種握手模式:(1)基于(EC)DHE密鑰交換的握手模式;(2)基于PSK的會(huì)話重啟,由預(yù)共享密鑰PSK進(jìn)行快速簡(jiǎn)短的握手;(3)會(huì)話重啟與(EC)DHE結(jié)合的握手,可以提供前向安全性;(4)基于PSK的0-RTT(round-trip time)握手,客戶端利用PSK導(dǎo)出密鑰,在第一輪就發(fā)送秘密數(shù)據(jù),降低了握手的延遲。在此之后還可以繼續(xù)進(jìn)行(EC)DHE的密鑰交換完成完整的握手(該步為可選)。注意到,0-RTT握手第一輪中加密數(shù)據(jù)所使用的密鑰并沒(méi)有服務(wù)器的貢獻(xiàn),因此可能存在重放攻擊。另外,握手模式(4)與(2)或者(3)的區(qū)別僅在于是否在第一輪就傳輸秘密數(shù)據(jù)。

另外,TLS 1.3還定義了一種特殊的認(rèn)證方式:后握手認(rèn)證(post-handshake authentication)。在TLS握手過(guò)程中,客戶端的認(rèn)證是可選的,所謂后握手認(rèn)證指的是握手結(jié)束后,允許服務(wù)器在任何時(shí)刻向客戶端發(fā)起身份認(rèn)證的申請(qǐng),作為回復(fù),客戶端會(huì)發(fā)送證書以及對(duì)本次連接握手內(nèi)容的簽名,除此之外,還會(huì)發(fā)送密鑰確認(rèn)消息以提供對(duì)整個(gè)握手消息和會(huì)話密鑰的確認(rèn)。該條認(rèn)證消息是在記錄層的安全信道中傳輸?shù)摹?/p>

上一篇:PSK在TLS中的應(yīng)用

下一篇:TLS 1.3概述

在線咨詢

點(diǎn)擊這里給我發(fā)消息 售前咨詢專員

點(diǎn)擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

免費(fèi)通話

24小時(shí)免費(fèi)咨詢

請(qǐng)輸入您的聯(lián)系電話,座機(jī)請(qǐng)加區(qū)號(hào)

免費(fèi)通話

微信掃一掃

微信聯(lián)系
返回頂部