В версии 1 протокола SSH, можно было установить размер эфемерного сеансового ключа с помощью параметра ServerKeyBits в sshd_config. Есть ли способ сделать это для версии 2 протокола ssh?
В протоколе SSH используются три ключа шифрования:
Промежуточный эфемерный ключ сеанса - это асимметричный ключ шифрования, созданный только для этого сеанса. Он создан таким образом, чтобы при передаче окончательного симметричного ключа его не нужно было шифровать серверным ключом. Это сделано для того, чтобы, если ключ сервера когда-либо будет скомпрометирован, вы не сможете использовать его для восстановления конечного симметричного ключа шифрования из ранее «записанных» сеансов. Это прямая секретность.
Размер ключа сервера устанавливается пользователем при его создании. Размер конечного симметричного шифра предварительно устанавливается RFC и присущ выбранному симметричному шифру. Промежуточный ключ, эфемерный сеансовый ключ, я не знаю, как установить размер этого ключа. В версии 1 протокола SSH вы можете установить его с помощью параметра ServerKeyBits. Как можно установить это в версии 2 протокола?
Похоже, что клиент указывает минимальный, предпочтительный и максимальный размер модуля, когда diffie-hellman-group-exchange-sha256 используется в качестве метода обмена ключами. Означает ли это, что удаление меньших размеров бит из файла модулей сервера (как рекомендовано здесь ) фактически предотвратит использование небольших эфемерных размеров ключей, если клиент об этом попросит, или сервер просто будет использовать один из своих встроенных фиксированных модулей, если сломанному клиенту нужен только действительно маленький?
В протокол 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 определяет размеры ключей, связанные с каждым шифром, хотя единственные, которые не сразу очевидны из имени шифра: