След пет месеца разработка релиз , открито изпълнение на клиент и сървър за работа по протоколите 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-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 е добавена проверка на съответствието между поисканите и предоставените от сървера имена на файлове, изпълнявана на клиентската страна. В този случай могат да възникнат проблеми с обработката на шаблони, тъй като символите за разширение на шаблони могат да се обработват различно на сървъра и клиента. За случаи, когато клиентът спре да приема файлове поради подобни разминавания, е добавена опцията "-T", която позволява деактивиране на проверката от страната на клиента. За пълно решение на проблема е необходима концептуална преработка на протокола scp, който вече е остарял, затова вместо него се препоръчва използването на по-съвременни протоколи, като sftp и rsync.
Източник: opennet.ru
