След пет месеца разработка релиз , открито реализиране на клиент и сървър за работа с протоколите SSH 2.0 и SFTP.
Основни промени:
- В ssh и sshd е добавена експериментална поддръжка на метода за размяна на ключове, устойчив на подбора при квантов компютър. Квантовите компютри значително по-бързо решават задачата за разлагане на натурально число на прости множители, която е в основата на съвременните асиметрични алгоритми за криптиране и ефективно не може да се реши на класически процесори. Предложената методология е основана на алгоритъма (функция ntrup4591761), разработен за постквантови криптосистеми и метода за размяна на ключове на база на елиптични криви X25519;
- В sshd, в директивите ListenAddress и PermitOpen е прекратена поддръжката на остарелия синтаксис „host/port“, реализиран през 2001 година като алтернатива на „host:port“ за опростяване на работата с IPv6. В съвременни условия за IPv6 е утвърден синтаксиса „[::1]:22“, а „host/port“ често се бърка с указание за подмрежа (CIDR);
- В ssh, ssh-agent и ssh-add е реализирана поддръжка на ключове в токени 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-сервера е реализирана поддръжка на разширението на протокола «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.
Източник: opennet.ru
