Одна из предложенных смягчающих стратегий против Затор-зависимые атаки на SSH заключаются в создании пользовательских групп SSH Диффи-Хеллмана, используя что-то вроде (ниже для 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.)
Меня в первую очередь интересуют ответы, касающиеся OpenSSH в Linux, но также были бы полезны и более общие ответы.
Вы можете, если хотите, но я бы не стал восстанавливать 2048-битные параметры DH для OpenSSH. Есть гораздо более важные вещи, которые вам нужно сделать для защиты SSH, например отключить слабую криптографию.
Что я бы do - удалить существующие, длина которых меньше 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
страница руководства:
Важно, чтобы этот файл содержал модули разной длины в битах и чтобы оба конца соединения имели общие модули.
Что, кажется, является аргументом против замены существующих модулей, хотя на самом деле не дает реальной причины для этого.
Ответ: Нет. Никаких преимуществ. :)
/etc/ssh/moduli
файл используется только на стороне сервера.
Вам не нужно беспокоиться об этом файле на стороне клиента SSH:
Вы можете отследить выполнение SSH-клиента и убедиться, что он не открывает этот файл.
$ strace -e openat ssh user@localhost