新技術(shù)“分裂”使密碼破解難度提升1400萬(wàn)倍
密碼學(xué)家經(jīng)常用來(lái)保護(hù)秘密(比如密鑰)的一種方法就是將其分割成多個(gè)較小的份額,并將各個(gè)部分分配給各個(gè)不同的保管方,某些份額必須組合在一起才能完整地重建秘密。
現(xiàn)在,位于澳大利亞悉尼的非營(yíng)利組織 Tide 的研究人員已經(jīng)開(kāi)發(fā)出了一種類(lèi)似的方法來(lái)保護(hù)用戶名和密碼,他們聲稱(chēng),與現(xiàn)有機(jī)制相比,新方法可以將密碼安全性提升 1400 萬(wàn)倍。
Tide 開(kāi)發(fā)的這種新方法叫做 “分裂” (splintering),涉及在認(rèn)證系統(tǒng)中采用加密密碼,將它們分成多個(gè)小塊,并將這些部分存儲(chǔ)在分散的分布式網(wǎng)絡(luò)中,可以根據(jù)需要重新組合它們。
根據(jù)該非盈利組織的說(shuō)法,Tide 的新技術(shù)使得攻擊者通過(guò)逆向工程和其他技術(shù)進(jìn)行暴力密碼猜測(cè)攻擊來(lái)重構(gòu)密碼的實(shí)踐變得異常困難。
在使用早前泄露的 6000 萬(wàn)個(gè) LinkedIn 密碼進(jìn)行的測(cè)試活動(dòng)中,Tide 工程師發(fā)現(xiàn),“splintering” 密碼技術(shù)使字典攻擊成功的機(jī)率從 100% 降低到了 0.00072%,安全性提升了大約 1410 萬(wàn)倍。為了測(cè)試這種新技術(shù)的可靠性,該非營(yíng)利組織還發(fā)起了一項(xiàng)挑戰(zhàn)活動(dòng),通過(guò)該活動(dòng)向能夠破解用戶名和密碼的黑客提供比特幣獎(jiǎng)勵(lì)。
據(jù)悉,Tide 將單個(gè)比特幣的詳細(xì)信息存儲(chǔ)在 “最簡(jiǎn)單的網(wǎng)站設(shè)置中,存儲(chǔ)在 web 服務(wù)器后面的數(shù)據(jù)庫(kù)記錄中”,只要黑客能夠使用正確的用戶名和密碼進(jìn)入,就能夠成功獲取這些比特幣以及 “吹牛” 的權(quán)力。不過(guò),到目前為止的 650 萬(wàn)次嘗試中,還沒(méi)有任何一個(gè)黑客能夠破解出一個(gè)密碼。
目前,Tide 已經(jīng)在其 Tide 協(xié)議中實(shí)施了新的 “splintering” 技術(shù),Tide 協(xié)議是一組開(kāi)源技術(shù),旨在幫助企業(yè)更好地保護(hù)數(shù)據(jù)。
Tide 聯(lián)合創(chuàng)始人 Yuval Hertzog 表示,在 Tide 協(xié)議中,加密密碼會(huì)被分裂并存儲(chǔ)在 Tide 公共區(qū)塊鏈上的 20 到 26 個(gè)節(jié)點(diǎn)之間。每個(gè)節(jié)點(diǎn)——Tide 協(xié)議中的密鑰協(xié)調(diào)控制器的任務(wù)是處理分配給它的 “碎片” (splinter),并在接收到請(qǐng)求時(shí)組裝 splinter。只有分配給 splinter 的節(jié)點(diǎn)才能解密它。
可配置的安全性
Hertzog 表示,每個(gè)加密密碼被分解成 splinter 的數(shù)量取決于組織所需的加密強(qiáng)度和冗余要求。最小數(shù)量是 20 個(gè)節(jié)點(diǎn)。這些參數(shù)是可配置的,允許用戶根據(jù)個(gè)人需求定制安全性和冗余。
Tide 方案的構(gòu)建方式使得即使存儲(chǔ) splinter 的一個(gè)或多個(gè)節(jié)點(diǎn)由于某種原因變得不可用,也可以完全恢復(fù)分裂的密碼。事實(shí)上,該模型允許高達(dá) 30% 的冗余,這就意味著即使最多 6 個(gè)節(jié)點(diǎn)由于某種原因變得不可用,也可以完全重新組裝分裂的密碼,以進(jìn)行身份驗(yàn)證。
那么在管理數(shù)百萬(wàn)個(gè)密碼時(shí),“splintering” 方法的可擴(kuò)展性又表現(xiàn)如何呢?Hertzog 表示,該方法的底層架構(gòu)是基于區(qū)塊鏈技術(shù)的改進(jìn)版本,該技術(shù)已被證明可以支持?jǐn)?shù)百萬(wàn)用戶。Tide 協(xié)議下的具體實(shí)施已經(jīng)過(guò)負(fù)載測(cè)試,結(jié)果顯示其可在受控環(huán)境中擴(kuò)展至數(shù)百萬(wàn)。
Tide 工程師已經(jīng)為每個(gè)身份驗(yàn)證請(qǐng)求引入了一個(gè)特意內(nèi)置的 300 毫秒延遲,以緩解網(wǎng)絡(luò)上的暴力破解和拒絕服務(wù)攻擊 (denial-of-service,簡(jiǎn)稱(chēng)DoS)。但是即便如此,與分裂和重組密碼相關(guān)的延遲仍然要優(yōu)于現(xiàn)有常用的身份驗(yàn)證提供程序。
在公開(kāi)測(cè)試中,“端對(duì)端” 延遲結(jié)果顯示整個(gè)基于分裂的身份驗(yàn)證過(guò)程只需要 1,500 毫秒到 4,000 毫秒,并且在 Microsoft Azure、Google 和 Amazon 網(wǎng)絡(luò)上提供完整的節(jié)點(diǎn)。“splintering” 技術(shù)可以以與任何現(xiàn)有OAuth2認(rèn)證方案幾乎相同的方式使用,并且可以集成到任何現(xiàn)有組織中。
Tide 開(kāi)發(fā)的這種 “splintering” 方法目前尚未商業(yè)化。但是想要提前使用的組織可以在 GitHub 上找到該技術(shù)的代碼和文檔,它可以在特殊的 Tide 開(kāi)源許可下獲得。