Релиз OpenSSH 8.0
18 апреля 2019 года
После пяти месяцев разработки представлен релиз OpenSSH 8.0, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.
Основные изменения:
- В ssh и sshd добавлена экспериментальная поддержка метода обмена ключами, стойкого к подбору на квантовом компьютере. Квантовые компьютеры кардинально быстрее решают задачу разложения натурального числа на простые множители, которая лежит в основе современных асимметричных алгоритмов шифрования и эффективно не решаема на классических процессорах. Предложенный метод основан на алгоритме NTRU Prime (функция ntrup4591761), разработанном для постквантумных криптосистем, и методе обмена ключами на базе эллиптических кривых X25519;
- В sshd в директивах ListenAddress и PermitOpen прекращена поддержка устаревшего синтаксиса "host/port", реализованного в 2001 году в качестве альтернативы "host:port" для упрощения работы с IPv6. В современных условиях для IPv6 устоялся синтаксис "[::1]:22", а "host/port" часто путают с указанием подсети (CIDR);
- В ssh, ssh-agent и ssh-add реализована поддержка ключей ECDSA в токенах PKCS#11;
- В ssh-keygen размер ключа RSA по умолчанию увеличен до 3072 бит, в соответствии с новыми рекомендациями NIST;
- В ssh разрешено использование настройки "PKCS11Provider=none" для переопределения директивы PKCS11Provider, заданной в ssh_config;
- В sshd обеспечено отображение в логе ситуаций, когда соединение завершено при попытке выполнения команд, блокированных ограничением "ForceCommand=internal-sftp" в sshd_config;
- В ssh при выводе запроса на подтверждение приёма нового хостового ключа, вместо ответа "yes" теперь воспринимается правильный fingerprint-отпечаток ключа (в ответ на приглашение подтвердить подключение пользователь может через буфер обмена скопировать отдельно полученный эталонный хэш, чтобы вручную не заниматься его сравнением);
- В ssh-keygen обеспечено автоматическое увеличение номера последовательности в сертификате при создании цифровых подписей для нескольких сертификатов в командной строке;
- В scp и sftp добавлена новая опция "-J", эквивалентная настройке ProxyJump;
- В ssh-agent, ssh-pkcs11-helper и ssh-add добавлена обработка опции командной строки "-v" для увеличения информативности вывода (при указании данная опция передаётся и дочерним процессам, например, когда из ssh-agent вызывается ssh-pkcs11-helper);
- В ssh-add добавлена опция "-T" для тестирования пригодности ключей в ssh-agent для выполнения операций создания и верификации цифровых подписей;
- В sftp-server реализована поддержка расширения протокола "lsetstat at openssh.com", добавляющего для SFTP поддержку операции SSH2_FXP_SETSTAT, но без следования по символическим ссылкам;
- В sftp добавлена опция "-h" для выполнения команд chown/chgrp/chmod с запросами, не использующими символические ссылки;
- В sshd обеспечено выставление переменной окружения $SSH_CONNECTION для PAM;
- Для sshd в ssh_config добавлен режим сопоставления "Match final", аналогичный "Match canonical", но не требующий включения нормализации имени хоста;
- В sftp добавлена поддержка префикса '@' для отключения трансляции вывода команд, выполняемых в пакетном режиме;
- При выводе содержимого сертификата при помощи команды
"ssh-keygen -Lf /path/certificate" теперь отображается алгоритм, использованный удостоверяющим центром для заверения сертификата;
- Улучшена поддержка окружения Cygwin, например обеспечено сравнение имён групп и пользователей без учёта регистра символов. Процесс sshd в порте для Cygwin изменён на cygsshd для того чтобы избежать пересечений с портом OpenSSH, поставляемым Microsoft;
- Добавлена возможность сборки с экспериментальной веткой OpenSSL 3.x;
- Устранена уязвимость (CVE-2019-6111) в реализации утилиты scp, позволяющая перезаписать произвольные файлы в целевом каталоге на стороне клиента при обращении к подконтрольному злоумышленнику серверу. Проблема заключается в том, что при применении scp сервер принимает решение о том, какие файлы и каталоги отправить клиенту, а клиент лишь проверяет корректность возвращённых имён объектов. Проверка на стороне клиента ограничена лишь блокированием выхода за границы текущего каталога ("../"), но не учитывает передачу файлов с именами, отличающимися от изначально запрошенных. В случае рекурсивного копирования (-r) кроме имён файлов подобным способом можно манипулировать и именами подкаталогов. Например, в случае копирования пользователем в домашний каталог файлов, подконтрольный атакующим сервер может выдать вместо запрошенных файлов файлы с именами .bash_aliases или .ssh/authorized_keys, и они будут сохранены утилитой scp в домашнем каталоге пользователя.
В новом выпуске в утилиту scp добавлена проверка соответствия запрошенных и отданных сервером имён файлов, выполняемая на стороне клиента. При этом могут возникнуть проблемы с обработкой масок, так как символы раскрытия масок могут по разному обрабатываться на стороне сервера и клиента. На случай, если из-за подобных различий клиент перестанет принимать файлы в scp добавлена опция "-T", позволяющая отключить проверку на стороне клиента. Для полноценного исправления проблемы требуется концептуальная переделка протокола scp, который сам по себе уже устарел, поэтому вместо него рекомендовано использовать более современные протоколы, такие как sftp и rsync.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.