2016年(nián)密碼學最大的實踐發展,就(jiù)是安全傳輸層協議(TLS)1.3版。TLS是應用廣泛的重要加密協議,也是安全互聯網通(tōng)信的基礎。在數百位研究人員(yuán)和工(gōng)程師(shī)長(cháng)達數年(nián)的鑽研之後,新的TLS設計從(cóng)密碼學的角度看(kàn)終于可被認為(wèi)是完工(gōng)了。該協議如今支持Firefox、Chrome和Opera。雖然看(kàn)起來像是個(gè)小(xiǎo)版本升級,TLS1.3卻是TLS1.2的重大再設計(1.2版已存世8年(nián)有餘)。事(shì)實上(shàng),最富争議的問題之一(yī),是要不要改個(gè)名字來表明TLS1.3所做的重大改進呢(ne)?
用戶從(cóng)哪兒感受到(dào)TLS1.3?速度!TLS1.3就(jiù)是為(wèi)速度而生(shēng),尤其是大幅減少了重複連接時數據發送前的網絡往返通(tōng)信數量,最低(dī)可減至1次往返(1-RTT)乃至0次。這些理念之前已經以實驗形式出現過——QUIC協議(谷歌(gē)制定的一(yī)種基于UDP的低(dī)時延互聯網傳輸層協議)和早期TLS中。但作為(wèi)TLS1.3默認行為(wèi)的一(yī)部分,它們很快就(jiù)會(huì)得到(dào)廣泛應用。這意味著(zhe)延遲減少和網頁加載速度的加快。
另外,TLS1.3應将成為(wèi)安全智慧的顯著(zhe)改進。它吸收了TLS幾十年(nián)實踐中的兩大主要教訓。首先,該協議摒棄了對一(yī)些舊(jiù)協議功能(néng)和過時加密算(suàn)法的支持,大幅瘦身。其次,TLS1.3引入了模式檢查,用以在很多(duō)舊(jiù)版TLS和SSL中查找漏洞。TLS1.3在标準化過程中經曆加密社區的廣泛分析,而不是等到(dào)協議被廣泛部署難以修補的時候才這麽做。
對後量子加密的要求仍在繼續
加密社區一(yī)直在努力嘗試從(cóng)當今算(suàn)法(其中很多(duō)在實用量子計算(suàn)機(jī)出現後就(jiù)會(huì)變得徹底不安全)遷移到(dào)後量子加密。
自(zì)去年(nián)年(nián)底美國(guó)國(guó)家标準與技(jì)術(shù)協會(huì)(NIST)發布了後量子算(suàn)法标準化計劃,算(suàn)法轉型便受到(dào)了大幅推動。NIST在今年(nián)2月(yuè)公布了首份工(gōng)作報(bào)告,并在8月(yuè)發布了一(yī)份召集算(suàn)法提案的草(cǎo)案。研究人員(yuán)一(yī)直在争論後量子算(suàn)法的目标到(dào)底該是什麽(以及,雙橢圓曲線(DualEC)标準後門(mén)事(shì)件(jiàn)之後,NIST是否還(hái)應在後量子算(suàn)法标準化過程中擔任領導角色)。
同時,谷歌(gē)在實用性實驗中采用了新希望(NewHope)後量子密鑰交換算(suàn)法,來保護谷歌(gē)服務器(qì)和Chrome浏覽器(qì)之間的真實流量。這是後量子加密在現實世界中的首例部署應用。該實驗的結果表明,計算(suàn)成本幾乎可以忽略不計,但因更大的密鑰規模導緻的帶寬消耗有所增加。另一(yī)隊研究人員(yuán)采用不同的算(suàn)法,向TLS協議中加入了量子阻抗的密鑰交換。
關于後量子加密,我們不知道的東西(xī)還(hái)很多(duō),但我們已開(kāi)始探索其實際工(gōng)程意義。
關于給加密算(suàn)法安後門(mén)的新思考
很長(cháng)時間裡(lǐ),設計表面安全但暗(àn)藏後門(mén)的加密系統,一(yī)直是争議焦點。((“盜碼學(kleptography)”一(yī)次在1996年(nián)被創造出來,用以描述此類概念。)但斯諾登的揭秘,尤其是DUAL_EC僞随機(jī)數字生(shēng)成器(qì)被NSA故意安置後門(mén)的消息,激發了對加密算(suàn)法後門(mén)安置方法的更多(duō)研究。法國(guó)和美國(guó)研究人員(yuán)組成的一(yī)個(gè)團隊就(jiù)發表了一(yī)篇論文,展示了技(jì)巧地選擇素數可使離散對數計算(suàn)變得簡單容易,足以破壞Diffie-Hellman密鑰交換的安全性。
更糟的是,這種後門(mén)素數無法與其他随機(jī)選擇的素數相(xiàng)區别。
RFC5114:NIST的又(yòu)一(yī)後門(mén)加密标準?
說到(dào)後門(mén),今年(nián)還(hái)發現了另一(yī)個(gè)可能(néng)被後門(mén)了的标準:RFC5114。該很少為(wèi)人所知的标準是在2008編寫的,某種程度上(shàng),這玩意兒一(yī)直很神秘。該協議是由國(guó)防承包商BBN編寫的,目的是标準化NIST之前公布的某些參數。它定義了8個(gè)Diffie-Hellman組,可用于與互聯網工(gōng)程任務組(IETF)的協議協同工(gōng)作,提供互聯網通(tōng)信安全性。最終,這些密鑰進入到(dào)了一(yī)些廣泛使用的加密庫中,比如OpenSSL和BouncyCastle(java平台輕量級加密包)。然而,其中一(yī)些組被發現十分可疑:沒有提供對産生(shēng)過程和方法的任何說明(意味著(zhe)可能(néng)被後門(mén)了),隻要參數沒有被仔細審查,便無力對抗小(xiǎo)組約束攻擊。
雖然沒有切實證據,這還(hái)是導緻了該标準是否被故意後門(mén)的一(yī)些争論。作為(wèi)回應,該标準的其中一(yī)位作者聲明稱,這有部分原因是為(wèi)了給一(yī)位實習生(shēng)一(yī)個(gè)“相(xiàng)對容易”的項目來完成。NIST的一(yī)名密碼學家聲稱,該标準不過是寫來給使用曲線算(suàn)法的人提供測試數據的,“當然不是作為(wèi)給實際使用或采納的人的建議”。該不良标準正是因其無能(néng)而提出的可能(néng)性無疑是存在的,但圍繞它的質疑,凸顯出一(yī)直以來對NIST作為(wèi)密碼标準化機(jī)構的信任缺失。
美國(guó)總統大選暴露密碼可否認性問題
可否認性,及其對立面——不可抵賴性,是加密通(tōng)信可具有的兩個(gè)基本技(jì)術(shù)特性:系統應該向局外人提供證據證明消息是由特定發送者發送的嗎(ma)(不可抵賴性)?或者,系統應确保任何局外人都能(néng)根據需要修改記錄(可否認性)以便被洩通(tōng)信不會(huì)牽連其他?這些屬性的現實必要性,是加密社區長(cháng)久以來的争議重災區。2016總統大選的新聞報(bào)道所掩蓋掉的,是不可抵賴性出其不意的崛起。資深民(mín)主黨政客們,包括副總統候選人蒂姆·凱恩及前DNC主席丹娜·布拉齊爾,正式聲明稱被洩DNC電(diàn)子郵件(jiàn)是被篡改過的。
然而,網絡偵探們很快證實,電(diàn)郵是以hillaryclinton.com郵件(jiàn)服務器(qì)的正确密鑰,經域名密鑰識别郵件(jiàn)協議(DKIM)簽署的。關于這些簽名,有很多(duō)防止誤解的說明:其中一(yī)些郵件(jiàn)來自(zì)不支持DKIM的外部地址,因而可能(néng)被修改過,DKIM隻斷言特定郵件(jiàn)服務器(qì)發送了消息(而不是某個(gè)個(gè)人用戶),所以,有可能(néng)是hillaryclinton.com的DKIM密鑰被盜或被惡意内部人士使用了,被洩郵件(jiàn)緩存也有可能(néng)被故意漏掉了某些郵件(jiàn)(DKIM證據不會(huì)揭露這個(gè)的)。然而,這可能(néng)是我們在不可抵賴加密證據的價值(或無價值)中所有的最引人矚目的數據點了。
攻擊隻會(huì)變得更好
一(yī)系列新型改進版攻擊已被發現。其中值得注意的是:
HEIST攻擊改進了之前BREACH和CRIME等Oracle壓縮攻擊的通(tōng)用性,可通(tōng)過惡意JavaScript從(cóng)網頁盜取敏感數據。盡管因為(wèi)此類攻擊的風險而在2014年(nián)就(jiù)決定從(cóng)TLS1.3中完全摒棄對壓縮的支持,這一(yī)漏洞還(hái)是進一(yī)步顯示出了往HTTP之類複雜(zá)協議中添加加密功能(néng)的困難性。
DROWN攻擊利用幾十歲高(gāo)齡的SSLv2協議漏洞,破壞Web服務器(qì)的RSA簽名密鑰。如很多(duō)之前的TLS/SSL攻擊(POODLE、FREAK等等),DROWN依賴的是現代Web浏覽器(qì)已不支持的老舊(jiù)協議。然而,這依然是很現實的重大缺陷,因為(wèi)攻擊者可以用此方法盜取Web服務器(qì)上(shàng)那與現代客戶端所用相(xiàng)同的密鑰。該攻擊再一(yī)次提醒了我們:維持對過時加密協議的支持是有多(duō)不安全!
Sweet32攻擊顯示出:64比特塊密碼(著(zhe)名的三重DES和Blowfish)以CBC模式使用時,無法抵禦碰撞攻擊。生(shēng)日悖論告訴我們,隻需觀察大約2^(64/2)=2^32個(gè)加密塊——即32GB數據,就(jiù)可以1/2的概率找到(dào)碰撞。這再一(yī)次暴露出,早該抛棄的遺留密碼卻依然在約1%的加密Web流量中被使用。
可能(néng)有點點遠(yuǎn)離實際系統,新攻擊在某些配對友(yǒu)好的橢圓曲線族中被發現,包括了流行的Barreto-Naehrig曲線。雖然當今互聯網加密中并沒有廣泛使用配對友(yǒu)好的曲線算(suàn)法,它們卻是一(yī)系列高(gāo)級加密系統的基礎,比如Zcash中用到(dào)的高(gāo)效零知識證明,或Pond使用的組簽名。
安全随機(jī)性依然是密碼系統中的脆弱點:隻要不能(néng)産生(shēng)真正随機(jī)的數字,就(jiù)不能(néng)創建真正不可預測的密鑰。GnuPG項目(廣泛使用的PGP軟件(jiàn)維護者)宣稱修複了Libcrypt随機(jī)數産生(shēng)方法中的缺陷,堵上(shàng)了這個(gè)存在了18年(nián)的漏洞。雖然實際利用該漏洞并不容易,此類攻擊顯露出PRNG庫中的微小(xiǎo)漏洞可因從(cóng)未導緻功能(néng)上(shàng)的可見(jiàn)損失而隐身數十年(nián)之久。
吐故納新:HTTPS仍在緩慢(màn)堅實的路(lù)上(shàng)
HTTPS正慢(màn)慢(màn)變得更加安全:
SHA-1散列函數在2016年(nián)就(jiù)達美國(guó)法定最低(dī)飲酒年(nián)齡了——21歲,但是沒人會(huì)慶祝這個(gè)生(shēng)日。相(xiàng)反,我們正逐漸逼近讓這個(gè)過時算(suàn)法退休的終點。有那麽點點令人驚訝的是,今年(nián)并沒有發現任何SHA-1碰撞攻擊——算(suàn)法被攻破的無可辯駁的明證。不過,浏覽器(qì)廠商可不會(huì)等到(dào)真出現碰撞。微軟、谷歌(gē)、Mozilla,全都宣稱2017年(nián)起自(zì)己的浏覽器(qì)不再接受SHA-1證書。雖然還(hái)需要一(yī)段時間,對SHA-A的協同抛棄,依然是加密社區的大勝利。據觀察,浏覽器(qì)市(shì)場激勵廠商不擅自(zì)移除不安全舊(jiù)協議,因此,廠商在SHA-1被完全攻破之前達成棄用時間線是個(gè)積極的迹象。
對證書透明性(CT)的支持繼續增長(cháng)。CT是設計來提供哪些證書被頒發給哪些域名的公開(kāi)記錄協議。今年(nián)6月(yuè)1日開(kāi)始,所有賽門(mén)鐵克頒發的證書就(jiù)被包含到(dào)CT記錄中(會(huì)被Chrome和Firefox拒絕)。網站可用Chrome的HSTS預加載列表(Firefox也用)來選擇要求CT。就(jiù)在本周,Facebook發布了首個(gè)基于Web的CT記錄監視工(gōng)具。
RFC7748,橢圓曲線Curve25519和Curve448(“金發姑娘”)的标準化,終于完成了。這兩個(gè)曲線算(suàn)法在TLS1.3中可用,提供更快的表現,作為(wèi)P-256之類NIST支持的經典曲線算(suàn)法集的替代選擇。
獲取更多(duō)專業(yè)資訊
微信掃一(yī)掃