Authentication

OpenSSH:基於密鑰的授權,最大密鑰長度

  • March 24, 2015

我在 Windows 上使用基於密鑰的身份驗證的 Putty 來訪問我的一些伺服器。

它使用 ~3700 位密鑰完全可以正常工作,但使用 ~17000 位密鑰它會在客戶端思考 20 秒,然後只是說“訪問被拒絕”並要求輸入密碼。

OpenSSH 中對於基於密鑰的身份驗證是否有任何密鑰長度限製或超時?

我知道使用這麼大的鍵沒有太大的實際意義,尤其是在看這 20 秒的計算時,只是想解決我面臨的任何問題:-)…

有一次,我查看了 Diffie-Hellman 密鑰的 OpenSSL 來源,發現 DH 密鑰的大小有一個“任意”的 10K 限制。我更改了測試的來源,發現它有效。我給作者寫了一個錯誤,他們回复說這是通過使用大量密鑰來防止 DoS 的設計意圖。

在 OpenSSH 中看到類似的東西不會讓我感到驚訝。

協議中沒有定義最大密鑰大小或超時(或者至少沒有定義),但實現可能不支持這麼長的密鑰。對於 17kbit 的 RSA 密鑰來說,20 秒的私鑰處理時間聽起來並不高。那麼伺服器可能不想在未經身份驗證的使用者身上花費太多的計算能力:拒絕非常大的密鑰是對 DoS 攻擊的保護。

目前認為 2048 位對於 RSA 密鑰是合理的;4096 位高於必要但通常支持;除此之外,如果某些程序拒絕密鑰,您不應該感到驚訝。

引用自:https://serverfault.com/questions/160268