估計使用 JtR + OpenCL 破解 sha512crypt 密碼所需的時間
好的,我有一個我知道密碼的影子文件,它是 4 個字母后跟兩個數字。在具有 AMD Radeon Mobility 顯卡的筆記型電腦上使用支持 OpenCL 的 John The Ripper,暴力破解需要多長時間?我應該期待什麼速度?
最簡單明了的解決方案就是去做。JTR(或任何體面的密碼破解程序)將顯示實時 ETC,這比無休止地猜測硬體規格要好得多。
但是,如果必須,請繼續閱讀…
這在很大程度上取決於您用於 KDF 的迭代次數。但是你可以很容易地計算出來。假設選擇一個候選人並通過 sha512crypt 執行它需要時間 $ t $ .
現在字母表中有 52 個“字母”(我假設大小寫很重要)和 10 個“數字”。所以總共有 $ 52^4 \cdot 10^2 = 731161600 $ 您的密碼的候選人。
因此,在單核上,您將需要 $ 731161600 t $ 在最壞的情況下找到您的密碼。平均而言,需要 $ \frac{731161600}{2} t $ 時間單位。
現在如果你有 $ k $ 使用不同的核心,您通常會在以下情況下找到密碼:
$$ \frac{731161600}{2} \frac{t}{k} ~ ~ ~ ~ (\text{units of time} ~ t) $$ 讓我們插入一些數字。一個主流的 GPU 有相當多的獨立執行單元,所以讓我們說 $ k = 256 $ , 一個合理的數字。在 CPU 上,假設您正確設置了 KDF,在 CPU 上計算它需要 0.1 秒。GPU 核心單獨速度較慢,所以讓 $ t = 0.25 ~ \text{s} $ .
$$ \text{Average time to crack} = \frac{731161600}{2} \frac{0.25 ~ \text{s}}{256} = 357000 ~ \text{s} $$ 平均在四天左右出現。在最壞的情況下,需要八天時間。
選擇 $ t $ 和 $ k $ 因此(我懷疑在你的情況下,你的 $ k $ 因為你有筆記型電腦顯卡,所以會更低,但你的 $ t $ 也可能更低)。當然,在專用硬體上,它會更快。
如果最壞的情況發生,您可以隨時藉用一些重型伺服器(或詢問朋友)並增加您的 $ k $ 價值相當大,這可以大大加快這個過程。
tl;博士這取決於你的 GPU 有多快,以及你如何配置你的 sha512crypt KDF。如果您有任何關於密碼的附加資訊(第一個字母是元音,四個字母是一個單詞等),您可以使用它在 JTR 中設置規則,以減少可能的候選者數量。