Как установить размер сеансового ключа в OpenSSH?

В версии 1 протокола SSH, можно было установить размер эфемерного сеансового ключа с помощью параметра ServerKeyBits в sshd_config. Есть ли способ сделать это для версии 2 протокола ssh?

В протоколе SSH используются три ключа шифрования:

  1. Серверный ключ
  2. (промежуточный) эфемерный сеансовый ключ
  3. Последний симметричный ключ шифрования

Промежуточный эфемерный ключ сеанса - это асимметричный ключ шифрования, созданный только для этого сеанса. Он создан таким образом, чтобы при передаче окончательного симметричного ключа его не нужно было шифровать серверным ключом. Это сделано для того, чтобы, если ключ сервера когда-либо будет скомпрометирован, вы не сможете использовать его для восстановления конечного симметричного ключа шифрования из ранее «записанных» сеансов. Это прямая секретность.

Размер ключа сервера устанавливается пользователем при его создании. Размер конечного симметричного шифра предварительно устанавливается RFC и присущ выбранному симметричному шифру. Промежуточный ключ, эфемерный сеансовый ключ, я не знаю, как установить размер этого ключа. В версии 1 протокола SSH вы можете установить его с помощью параметра ServerKeyBits. Как можно установить это в версии 2 протокола?

Похоже, что клиент указывает минимальный, предпочтительный и максимальный размер модуля, когда diffie-hellman-group-exchange-sha256 используется в качестве метода обмена ключами. Означает ли это, что удаление меньших размеров бит из файла модулей сервера (как рекомендовано здесь ) фактически предотвратит использование небольших эфемерных размеров ключей, если клиент об этом попросит, или сервер просто будет использовать один из своих встроенных фиксированных модулей, если сломанному клиенту нужен только действительно маленький?

2
задан 4 December 2018 в 23:28
1 ответ

В протокол SSH 2 было внесено множество улучшений безопасности по сравнению с протоколом версии 1, и я полагаю, что удаление этой опции было одним из них.

Насколько я могу угадать ключ сеанса Размер в некоторой степени неявно налагается сервером при выборе алгоритмов шифрования, предлагаемых директивой Ciphers . Фактический размер сеансового ключа в конечном итоге будет тем фактическим шифром, который согласовывается между клиентом и сервером.

В OpenSSH поддерживаются следующие шифры:

               3des-cbc
               aes128-cbc
               aes192-cbc
               aes256-cbc
               aes128-ctr
               aes192-ctr
               aes256-ctr
               aes128-gcm@openssh.com
               aes256-gcm@openssh.com
               arcfour
               arcfour128
               arcfour256
               blowfish-cbc
               cast128-cbc
               chacha20-poly1305@openssh.com

RFC 4253 определяет размеры ключей, связанные с каждым шифром, хотя единственные, которые не сразу очевидны из имени шифра:

  • «3des-cbc» - будет быть устаревшим, но по-прежнему включен для исторические причины - эффективная длина ключа 112 бит
  • простой "arcfour" - это RC4 и проблемы со слабыми ключами, и следует использовать с осторожностью - длина ключа 128 бит (см. этот Q&A о разнице между «arcfour» и (скрытым) - RFC 7539 имеет AFAIK также 256-битный ключ
2
ответ дан 3 December 2019 в 11:24

Теги

Похожие вопросы