Public-Key
一個 SSH 密鑰的 KDF 輪數是多少?
使用ssh-keygen生成SSH密鑰對時,選擇多少次密鑰派生函式 (KDF)輪次/迭代的最佳實踐是什麼?
我是否正確地說如果密碼足夠強就沒有必要?考慮到密碼長度和 KDF 輪次,是否有某種公式可以計算破解私鑰需要多長時間?
我的猜測是,生成Ed25519密鑰時的預設值 16足夠小,以至於對於正常使用(從命令行登錄到伺服器)幾乎察覺不到,但會為任何蠻力嘗試增加大量費用。我想知道是否值得增加它。
我也嘗試
-a
在 MacBook Pro Mid14 (i7) 中為該標誌找到一個合適的值,嘗試登錄到 Debian 8.5,我得到了以下結果:
-a 1000
花了大約 20 秒。-a 100
在 ~3.5s 到 ~6s 之間變化。-a 64
(4x 預設值)~3 到~9s。-a 16
(預設)~2s ~2.5s。最後我只是堅持使用預設值,因為我不是偏執狂而且我不喜歡等待,但是我在研究中確實發現了一個值
100
並不少見。
新格式使用 bcrypt_pbkdf() 來派生對稱密鑰。當涉及到工作因素時,這與普通 bcrypt 的行為略有不同。
每個編寫 bcrypt_pbkdf() 的 Ted Unangst:
bcrypt 的原始難度參數是重新加密密碼的 log2 次數。bhash 將此數字固定為 64,而是依靠 PBKDF2 回合參數來控制難度。
來源:http ://www.tedunangst.com/flak/post/bcrypt-pbkdf
由於密碼每次迭代被重新加密 64 次,預設的 16 輪將總共執行 1024 次重新加密操作,這等於工作因子為 10 的原始 bcrypt。
您可以在此處閱讀有關選擇 KDF 輪數的更多資訊。