PBKDF2 16 位密碼不加鹽
使用 PBKDF2 不加鹽(或使用相同的鹽)和 16 位唯一且隨機生成的密碼(不可能有兩個相同)的安全性如何?
假設一個擁有大量資源和技術知識的對手,使用 10000 或 50000 次迭代能夠以多快的速度辨識密碼?
TL;DR:如果攻擊者可以通過破解所有“密碼”獲得少於 50k-100k 美元的收益,那麼你很好,否則你可能會被搞砸。(對於 10k 次迭代,對 PBKDF-2 使用 SHA-1)
使用唯一的 16 位密碼(不能有兩個相同)的 PBKDF2 沒有鹽(或所有鹽都相同)使用 PBKDF2 有多安全?
它將阻止中型公司和小型攻擊者獲取密碼,但對於更大規模的攻擊者則無法這樣做。
例外情況當然是攻擊者已經擁有適當規模的現成基礎設施(首先由 Maarten Bodewes 指出)
其原因記錄在下一個(子)問題的答案中。
使用 10000 或 50000 次迭代能夠以多快的速度辨識密碼?
假設您將使用 10,000 次迭代(將所有內容乘以得到 50k)。這意味著要搜尋整個密碼空間,每個條目必須進行 10k SHA-1 迭代。有個條目,所以SHA-1 雜湊。5 $ 5 $ 1016 $ 10^{16} $ 1020 $ 10^{20} $
現在讓我們看看現代 GPU(Nvidia GTX 1070)每秒可以計算多少 SHA-1 雜湊:6.3GHashes/s,即雜湊。現在將其與相乘以獲得每天的雜湊數:。所以你需要天,使用單個GPU。現在 - 只是為了好玩 - 讓我們計算一下 400 GTX 1070(大約 500 歐元一塊)將花費多少(他們大約需要 450 天來搜尋整個關鍵空間):6.3×109 $ 6.3\times 10^9 $ 602×24 $ 60^2\times 24 $ 5.4×1014 $ 5.4\times 10^{14} $ 1020/(5.4×1014)≈180,000 $ 10^{20} / (5.4\times 10^{14})\approx 180,000 $ 400×500≈20ķ $ 400\times 500\approx 20k $ 歐元。這是硬體成本。此外,您需要支付電費和其他費用,如果您想更快,您需要 FPGA、更好的 GPU、ASIC 或更多GPU。現在我認為,通過額外的基礎設施、部署和電力,您最終可能會花費 50k-100k 美元(也許您已經購買了更多的 GPU;)。因此,如果攻擊者可以通過破壞您的系統獲得這麼多錢,那麼您應該適應,否則您可能沒問題。
請注意,這是一個範例計算。攻擊者還可以很好地嘗試在雲中租用高端 GPU,這可能會降低成本和管理成本(首先由 Maarten Bodewes 指出)。