Публикувана е версията на OpenSSH 10.0, отворена реализация на клиент и сървър за работа с помощта на протоколите SSH 2.0 и SFTP. Основни промени:
- Премахната е поддръжката за цифрови подписи, базирани на алгоритъма DSA, чието ниво на защита не отговаря на съвременните изисквания. Цената за продължаване на поддръжката на несигурен DSA алгоритъм не си струва и премахването му ще насърчи други SSH имплементации и криптографски библиотеки да спрат да поддържат DSA. По подразбиране използването на 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 е добавена поддръжка за заместване с "%-token" и разширяване на променливите на средата към директивите SetEnv и User.
- Добавена е поддръжка за израза „Match version“ към ssh_config и sshd_config, което ви позволява да прилагате настройки в зависимост от версията на OpenSSH, която имате. Например, за да се свържете с OpenSSH 10, можете да укажете „Match version OpenSSH_10.*“.
- Поддръжката на изрази е добавена към ssh_config:
- „Match sessiontype“, което ви позволява да прилагате настройки в зависимост от типа на заявената сесия: „shell“ за интерактивни сесии, „exec“ за изпълнение на команди, „subsystem“ за sftp и „none“ за тунели и пренасочване на трафик.
- „Команда за съпоставяне“ за обвързване на действия с команди, посочени в командния ред, за да се изпълняват чрез ssh.
- „Съвпадение с етикет „““ и „Съвпадение на команда „““, за да съвпаднат празни тагове и да изпълнят ssh, без да посочват командата за изпълнение.
- sshd_config позволява използването на маски във файловите пътища, посочени в директивите AuthorizedKeysFile и AuthorizedPrincipalsFile.
- SSH клиентът вече поддържа опцията „VersionAddendum“ за добавяне на персонализиран текст към низа с номера на версията (преди тази опция беше налична само за сървър sshd).
- Помощните програми scp и sftp вече предоставят настройка „ControlMaster no“, за да предотвратят използването на съществуващи връзки при повторно свързване към хост.
- sshd е деактивирал поддръжката за имплементацията на Diffie-Hellman в крайно поле по подразбиране, което е довело до премахването на методите "diffie-hellman-group*" и "diffie-hellman-group-exchange-*" от списъка на KEXAlgorithms. В сравнение с алгоритъма на Дифи-Хелман с елиптична крива, отдалечената имплементация е по-бавна и изисква допълнителни изчислителни ресурси, като същевременно осигурява същото ниво на сигурност.
- В ssh, при избора на шифър за връзка, режимът AES-GCM вече е предпочитан пред AES-CTR. По подразбиране се задава списък с приоритети при избора на шифри: Chacha20/Poly1305, AES-GCM (128/256) и AES-CTR (128/192/256).
- ssh-agent вече изтрива всички заредени ключове при получаване на сигнал SIGUSR1.
- ssh-keygen е добавил поддръжка за FIDO токени, които не връщат данни за удостоверяване, като например WinHello.
- Добавена е опция "-Owebsafe-allow=…" към ssh-agent за отмяна на белия списък на 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 г.
- Добавена е опцията "--with-linux-memlock-onfault" към sshd, за да се закрепи sshd в паметта (предотвратява се изпращането му към swap).
- Добавена е опция „--with-security-key-standalone“ за изграждане на самостоятелната библиотека sk-libfido2.
- Спецификацията на RPM пакета е премахнала настройките за компилация за RHEL 6.
- Свързана със сигурността промяна в sshd: Директивата DisableForwarding не деактивира правилно пренасочването на протокола X11 и извикванията към ssh-agent. Пренасочването на X11 е деактивирано по подразбиране от страната на сървъра, а препращането на ssh-agent е деактивирано от страната на клиента.
Източник: opennet.ru
