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