
一項建議的緩解策略僵局對 SSH 的相關攻擊是使用類似的東西產生自訂 SSH Diffie-Hellman 群組(以下針對 OpenSSH)
ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates
然後用輸出檔替換系統範圍的模數檔moduli-2048
。 (ssh-keygen -G
用於產生候選DH-GEX素數,並ssh-keygen -T
測試生成的候選素數的安全性。)
這顯然是在 SSH 伺服器上做的一個合理的事情,否則這些伺服器將使用非常適合預先計算的知名群組,但是將自訂 SSH DH 群組部署到僅限客戶端的系統上是否有任何安全優勢?(也就是說,連接到 SSH 伺服器的系統,但本身從不充當 SSH 伺服器。)
我主要對與 Linux 上的 OpenSSH 相關的答案感興趣,但也將不勝感激更通用的答案。
答案1
如果您確實願意,也可以,但我不會費心為 OpenSSH 重新產生 2048 位元 DH 參數。還有很多更重要的事情要你去做保護 SSH 的安全,例如停用弱加密。
我什麼會要做的就是刪除現有的小於 2048 位元的。
awk '$5 >= 2000' /etc/ssh/moduli > /etc/ssh/moduli.strong && \
mv /etc/ssh/moduli.strong /etc/ssh/moduli
如果你沒有註意到,OpenSSH 附帶了大量預先產生的模數,最高可達 8192 位元。雖然我們現在確實擔心 1024 位元素數,但相信 2048 位元素數在可預見的未來是安全的。雖然這種情況最終會改變,但可能是下週,但更有可能是在我們成為退休金領取者之後很長一段時間...
手冊頁中還有這樣一個奇怪的地方ssh-keygen
:
重要的是,該檔案包含一系列位元長度的模數,並且連接的兩端共享公共模數。
這似乎反對替換現有模組,儘管它並沒有真正提供這樣做的實際原因。
答案2
答案是:不會。 :)
/etc/ssh/moduli
文件僅用於伺服器端。
您無需擔心 SSH 用戶端的該檔案:
您可以追蹤 SSH 用戶端的執行並檢查它是否沒有開啟該檔案。
$ strace -e openat ssh user@localhost