Опубликован релиз OpenSSH 10.0, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP. Основные изменения:
- Удалена поддержка цифровых подписей на базе алгоритма DSA, уровень защиты которых не соответствует современным требованиям. Затраты на продолжение сопровождения небезопасного алгоритма DSA не оправдывают себя и его удаление позволит стимулировать прекращение поддержки DSA в других реализациях SSH и криптографических библиотеках. По умолчанию использование ключей DSA прекращено ещё в 2015 году.
- Продолжено разделение sshd на несколько отдельных исполняемых файлов. В OpenSSH 9.8 из sshd был выделен процесс sshd-session, выполняющий задачи, связанные с обработкой сеансов. В OpenSSH 10.0 из sshd-session в отдельный процесс sshd-auth перенесён код, выполняющий аутентификацию. Процесс sshd-auth позволяет дополнительно изолировать связанные с аутентификацией данные в адресном пространстве отдельного процесса, что не даст получить доступ к этим данным в памяти в случае проведения атак на код, используемый для обработки стадий соединения до завершения аутентификации. Кроме того, изменение немного снизит потребление памяти, так как связанный с аутентификацией код теперь присутствует в памяти только в момент проведения аутентификации, а затем выгружается при завершении процесса sshd-auth.
- В ssh по умолчанию задействован гибридный алгоритм обмена ключами "mlkem768x25519-sha256", стойкий к подбору на квантовом компьютере и представляющий собой комбинацию из X25519 ECDH и алгоритма ML-KEM (CRYSTALS-Kyber), стандартизированных Национальным институтом стандартов и технологий США (NIST). ML-KEM использует методы криптографии, основанные на решении задач теории решёток, время решения которых не отличается на обычных и квантовых компьютерах.
- В ssh_config в директивы SetEnv и User добавлена поддержка подстановки "%-token" и раскрытия переменных окружения.
- В ssh_config и sshd_config добавлена поддержка выражения "Match version", позволяющего применять настройки в зависимости от имеющейся версии OpenSSH, например, для привязки к OpenSSH 10 можно указать "Match version OpenSSH_10.*".
- В ssh_config добавлена поддержка выражений:
- "Match sessiontype", позволяющего применять настройки в зависимости от типа запрошенного сеанса: "shell" для интерактивных сеансов, "exec" для запуска команд, "subsystem" для sftp и "none" для туннелей и перенаправления трафика.
- "Match command" для привязки действий к командам, указанным в командной строке для запуска через ssh.
- 'Match tagged ""' и 'Match command ""' для привязки к пустым тегам и запуску ssh без указания выполняемой команды.
- В sshd_config разрешено использование масок в файловых путях, указываемых в директивах AuthorizedKeysFile и AuthorizedPrincipalsFile.
- В клиент ssh добавлена поддержка опции "VersionAddendum" для добавления произвольного текста к строке с номером версии (ранее данная опция была доступна только для сервера sshd).
- В утилитах scp и sftp обеспечена передача настройки "ControlMaster no" для запрета использования существующих соединений, при повторном подключении к хосту.
- В sshd по умолчанию отключена поддержка реализации алгоритма Диффи — Хеллмана в конечном поле, что привело к удалению из списка KEXAlgorithms методов "diffie-hellman-group*" и "diffie-hellman-group-exchange-*". По сравнению с алгоритмом Диффи — Хеллмана на базе эллиптических кривых удалённая реализация медленнее и требует дополнительных вычислительных ресурсов при идентичном уровне безопасности.
- В ssh при выборе шифра для соединения режим AES-GCM теперь является более предпочтительным, чем AES-CTR. По умолчанию выставлен список приоритетов при выборе шифров: Chacha20/Poly1305, AES-GCM (128/256) и AES-CTR (128/192/256).
- В ssh-agent реализовано удаление всех загруженных ключей при получении сигнала SIGUSR1.
- В ssh-keygen добавлена поддержка токенов FIDO, не возвращающих данные аттестации, таких как WinHello.
- В ssh-agent добавлена опция "-Owebsafe-allow=..." для переопределения белого списка FIDO-приложений.
- Добавлена экспериментальная утилита regress/misc/ssh-verify-attestation для верификации данных аттестации FIDO, опционально генерируемых ssh-keygen при регистрации ключей FIDO.
- В ssh-keygen разрешено использовать "-" вместо имени файла.
- В ssh-agent и переносимую версию OpenSSH добавлена поддержка активации по сокету в стиле systemd, реализованная с использованием механизма LISTEN_PID/LISTEN_FDS.
- В переносимой версии:
- Реализована поддержка криптографической библиотеки AWS-LC (AWS libcrypto).
- В sshd добавлена поддержка wtmpdb, аналога wtmp, не подверженного проблеме 2038 года.
- В sshd добавлена опция "--with-linux-memlock-onfault" для закрепления sshd в памяти (запрета вытеснения в раздел подкачки).
- Добавлена опция "--with-security-key-standalone" для сборки обособленной библиотеки sk-libfido2.
- Из спецификации RPM-пакета убраны настройки сборки для RHEL 6.
- Изменение в sshd, связанное с безопасностью: директива DisableForwarding не запрещала должным образом перенаправление протокола X11 и обращений к ssh-agent. Перенаправление X11 отключено по умолчанию на стороне сервера, а перенаправление ssh-agent на стороне клиента.
Источник: https://www.opennet.ru/opennews/art.shtml?num=63042