В версии 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 определяет размеры ключей, связанные с каждым шифром, хотя единственные, которые не сразу очевидны из имени шифра: