Private-Key

密鑰庫中的私鑰對暴力破解有多少彈性?

  • April 21, 2017

我想知道如果有人可以把手放在我用 MyEtherWallet 創建的密鑰庫文件(UTC / JSON)上,我的密鑰會有多安全。我過去使用過 hashcat,所以我知道它可以在合理的時間內從他的雜湊開始輕鬆找到中等長度密碼的明文,即使只有普通的 GPU。那麼密鑰庫能否以同樣簡單的方式進行暴力破解?或者換句話說,密碼應該多長時間才能安全?

事實上,KDF 幾乎與你錢包的整體安全性無關。原因如下:

密鑰派生函式

KDF將計算熵添加到使用者的密碼中。需要 KDF 的唯一原因是人類不擅長密碼這一事實(這意味著密碼是可預測的)。人類傾向於構造像*P@ssw0rd 這樣的密碼!*它似乎具有數學上的高熵(9 個字元,小寫/大寫,數字,特殊字元),但顯然受到可預測性的影響。

但是,如果您使用強密碼作為您的 AES 密鑰(即不是人工生成的,而是例如 128 位CSPRNG),則根本不需要使用 KDF(潛在的攻擊者可能會嘗試不同的方法和直接攻擊您的加密而不是您的 KDF)。

不過你是對的:KDF 增加了一些計算熵,旨在通過增加攻擊者必須克服的複雜性來減慢攻擊者的速度。對於k次迭代,增加的複雜度約為**log2(k)**位(更多資訊)。當然,這只是一個假設值,您不想依賴它。最好首先選擇一個強密碼。

理論數學

讓我們為您的情況進行數學計算,並假設您使用的是平均密碼(32 位熵)和 1024 次迭代(數字在您的配置中被稱為n)。32 + log2(1024) = 42 位熵

現在,攻擊的實際可行性僅取決於攻擊者的計算資源和金錢。如果他能夠每秒進行 10000 次猜測,那麼攻擊將需要

2^42 / (10000 * 3600 * 24 * 356) = 14 年

真正重要的是什麼

請記住,14 年和其他結果都是理論上的。真正的教訓:如果你想知道錢包的真正安全性,KDF 可以忽略不計。如果您選擇像“1234”這樣的密碼,而小寫/大寫、數字和特殊字元都不允許使用,KDF 和 AES 都不會幫助您,您的錢包也不能被認為是安全的。

最終,您錢包的安全性取決於您的密碼及其熵。使用強密碼保護您的錢包,您是安全的。

引用自:https://ethereum.stackexchange.com/questions/15362