Czy są jakieś korzyści bezpieczeństwa związane z wdrażaniem niestandardowych grup SSH DH w systemach tylko dla klientów?

16

Jedną z sugerowanych strategii ograniczających ataki SSH związane z Logjam jest wygenerowanie niestandardowych grup SSH Diffie-Hellman przy użyciu czegoś podobnego (poniżej dla OpenSSH)

ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates

a następnie zastąpienie ogólnosystemowego pliku modułów plikiem wyjściowym moduli-2048. ( ssh-keygen -Gsłuży do generowania kandydatów liczb pierwszych DH-GEX i ssh-keygen -Tdo testowania wygenerowanych kandydatów pod kątem bezpieczeństwa.)

Jest to całkiem rozsądna rzecz do zrobienia na serwerach SSH, które w innym przypadku korzystałyby ze znanych grup, które nadawałyby się dobrze do wstępnego obliczenia, ale czy są jakieś korzyści z bezpieczeństwa związane z wdrażaniem niestandardowych grup SSH DH w systemach tylko dla klientów? (Oznacza to, że systemy łączą się z serwerami SSH, ale same nigdy nie działają jako serwer SSH.)

Interesują mnie przede wszystkim odpowiedzi dotyczące OpenSSH w systemie Linux, ale docenione zostaną również bardziej ogólne odpowiedzi.

CVn
źródło

Odpowiedzi:

18

Możesz, jeśli naprawdę chcesz, ale nie zawracałbym sobie głowy regeneracją 2048-bitowych parametrów DH dla OpenSSH. Aby zabezpieczyć SSH, musisz wykonać znacznie ważniejsze czynności , np. Wyłączyć słabe szyfrowanie .

Co ja by zrobić to usunąć istniejących, które mają mniej niż 2048 bity.

awk '$5 >= 2000' /etc/ssh/moduli > /etc/ssh/moduli.strong && \
mv /etc/ssh/moduli.strong /etc/ssh/moduli

Jeśli nie zauważyłeś, OpenSSH jest dostarczany z dużą liczbą wstępnie wygenerowanych modułów, aż do 8192 bitów. Chociaż z pewnością martwimy się obecnie liczbami 1024-bitowymi, liczby 2048-bitowe są uważane za bezpieczne w najbliższej przyszłości. I chociaż to się ostatecznie zmieni, może to być w przyszłym tygodniu, ale bardziej prawdopodobne jest, że długo po tym, jak zostaniemy emerytami ...

Na ssh-keygenstronie podręcznika znajduje się również ciekawy fragment :

Ważne jest, aby ten plik zawierał moduły o zakresie długości bitów i aby oba końce połączenia miały wspólne moduły.

Co wydaje się przemawiać przeciwko zastąpieniu istniejących modułów, chociaż tak naprawdę nie podaje faktycznego powodu takiego postępowania.

Michael Hampton
źródło
Powiązane: Diffie-Hellman używa innego modułu po obu stronach w kryptografii . Według mojego ograniczonego zrozumienia wydaje się, że jeśli nie ma wspólnych modułów o pożądanej długości, Diffie-Hellman z grupą o tej długości nie jest możliwy w ogólnym przypadku i może nie być możliwy w żadnym konkretnym przypadku. Zatem posiadanie modułów dzielonych między dwoma punktami końcowymi jest matematycznym wymogiem protokołu wymiany kluczy Diffie-Hellmana, a próba wykonania wymiany kluczy Diffie-Hellmana między dwoma punktami końcowymi, które nie mają wspólnych modułów, zakończy się niepowodzeniem.
CVn
2
RFC 4419 [ tools.ietf.org/html/rfc4419] służy właśnie do umożliwienia serwerowi dostarczania niestandardowych parametrów DH. Serwer wysyła swoje parametry kandydujące do klienta, a jeśli klient wyrazi zgodę, obie strony używają parametrów podanych przez serwer do wygenerowania wspólnego klucza, który jest używany jako klucz sesji. Jest więc całkowicie w porządku, jeśli serwer i klient nie mają tych samych wpisów w pliku modułu.
Brian Minton
2

Odpowiedź brzmi: nie. Nie ma żadnych korzyści. :)

/etc/ssh/moduli plik jest używany tylko po stronie serwera.

Nie musisz się martwić o ten plik po stronie klienta SSH:

Możesz śledzić wykonanie klienta SSH i sprawdzać, czy nie otwiera on tego pliku.

$ strace -e openat ssh user@localhost
Adi Roiban
źródło