После пяти месяцев разработки представлен (http://lists.mindrot.org/pipermail/openssh-unix-dev/2019-Apr...) релиз OpenSSH 8.0 (http://www.openssh.com/), открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.
Основные изменения:
- В ssh и sshd добавлена экспериментальная поддержка метода обмена ключами, стойкого к подбору на квантовом компьютере. Квантовые компьютеры кардинально быстрее решают задачу разложения натурального числа на простые множители, которая лежит в основе современных асимметричных алгоритмов шифрования и эффективно не решаема на классических процессорах. Предложенный метод основан на алгоритме NTRU Prime (https://ntruprime.cr.yp.to/) (функция ntrup4591761), разработанному для постквантумных криптосистем, и методе обмена ключами на базе эллиптических кривых X25519;
- В sshd в директивах ListenAddress и PermitOpen прекращена поддержка устаревшего синтаксиса "host/port", реализованного в 2001 году в качестве альтернативы "host:port" для упрощения работы с IPv6. В современных условиях для IPv6 устоялся синтаксис "[::1]:22", а "host/port" часто путают с указанием подсети (CIDR);
- В ssh, ssh-agent и ssh-add реализована поддержка ключей ECDSA (https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signatu...) в токенах 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;
- Устранена уязвимость (https://www.opennet.dev/opennews/art.shtml?num=49953) (CVE-2019-6111) в реализации утилита scp, позволяющая перезаписать произвольные файлы в целевом каталоге на стороне клиента при обращении к подконтрольному злоумышленнику серверу. Проблема заключается в том ,что при применении scp сервер принимает решение о том, какие файлы и каталоги отправить клиенту, а клиент лишь проверяет корректность возвращённых имён объектов. Проверка на стороне клиента ограничена лишь блокированием выхода за границы текущего каталога ("../"), но не учитывает передачу файлов с именами, отличающимися от изначально запрошенных. В случае рекурсивного копирования (-r) кроме имён файлов подобным способом можно манипулировать и именами подкаталогов.
Например, в случае копирования пользователем в домашний каталог файлов, подконтрольный атакующим сервер может выдать вместо запрошенных файлов файлы с именами .bash_aliases или .ssh/authorized_keys, и они будут сохранены утилитой scp в домашнем каталоге пользователя. В новом выпуске в утилиту scp добавлена проверка соответствия запрошенных и отданных имён файлов, выполняемая на стороне клиента. При этом могут возникнуть проблемы с обработкой масок, так как символы раскрытия масок могут по разному обрабатываться на стороне сервера и клиента. На случай, если из-за подобных различий клиент перестанет принимать файлы в scp добавлена опция "-T", позволяющая отключить проверку на стороне клиента. Для полноценного исправления проблемы требуется концептуальная переделка протокола scp, который сам по себе уже устарел, поэтому вместо него рекомендовано использовать более современные протоколы, такие как sftp и rsync.
URL: http://lists.mindrot.org/pipermail/openssh-unix-dev/2019-Apr...
Новость: https://www.opennet.dev/opennews/art.shtml?num=50533