След четири месеца разработка Релиз OpenSSH 8.4, отворена реализация на клиент и сървър за работа с протоколите SSH 2.0 и SFTP.
Основни промени:
- Промени, свързани с безопасността:
- В ssh-agent при използване на FIDO ключове, създадени не за удостоверяване през SSH (идентификаторът на ключа не започва с 'ssh:'), сега се извършва проверка, че съобщението ще бъде подписано, използвайки методите, прилагани в протокола SSH. Това изменение няма да позволи пренасочване на ssh-agent към дистанционни хостове с FIDO ключове, за да се блокира възможността за използване на тези ключове за генерация на подписи за web удостоверяване (обратният случай, при който браузърът може да подпише SSH запитване, първоначално е изключен благодарение на прилагането на префикса 'ssh:' в идентификатора на ключа).
- В ssh-keygen при генериране на резидентен ключ е включена поддръжката на добавката credProtect, описанa в спецификацията FIDO 2.1, която предоставя допълнителна защита за ключовете чрез задължителна заявка за въвеждане на ПИН код преди изпълнението на всяка операция, която може да доведе до извличане на резидентния ключ от токена.
- Промени, които потенциално нарушават съвместимостта:
- За поддръжка на FIDO/U2F се препоръчва да се използва библиотеката libfido2 поне версия 1.5.0. Частично е реализирана възможността за работа и със стари версии, но в този случай ще бъдат недостъпни функции като резидентни ключове, заявка за ПИН и свързване на няколко токена.
- В ssh-keygen в формата на потвърдителната информация, опционално запазена при генериране на FIDO ключ, са добавени данни за автентификатора, необходими за проверка на потвърдителните цифрови подписи.
- Променен е API, използван при взаимодействие на OpenSSH с прослойката за достъп до FIDO токени.
- При компилиране на преносимата версия на OpenSSH сега е необходим automake за генериране на configure скрипта и съпътстващите файлове за компилация (ако компилацията се извършва от публикуван tar файл с код, регенерацията на configure не е необходима).
- В ssh и ssh-keygen е добавена поддръжка на FIDO ключове, изискващи потвърждение с PIN код. За генериране на ключове с PIN в ssh-keygen е добавена опцията «verify-required». При използване на подобни ключове, преди изпълнение на операцията за създаване на подпис, на потребителя се извежда подканване, изискващо потвърждение на действията му чрез въвеждане на PIN код.
- В sshd в настройката authorized_keys е реализирана опция «verify-required», изискваща прилагането на възможности за удостоверяване на присъствието на потребителя по време на операции с токена. Стандартът FIDO предвижда няколко варианта за подобно удостоверяване, но в момента в OpenSSH се поддържа само проверка на базата на PIN код.
- В sshd и ssh-keygen е добавена поддръжка на проверка на цифрови подписи, отговарящи на стандарта FIDO Webauthn, позволяващ използването на FIDO ключове в уеб браузъри.
- В ssh в настройките CertificateFile,
ControlPath, IdentityAgent, IdentityFile, LocalForward и
RemoteForward е разрешена подмяна на стойности от променливи среда, указани във формат «${ENV}». - В ssh и ssh-agent е добавена поддръжка на променливата среда $SSH_ASKPASS_REQUIRE, която може да се използва за активиране или деактивиране на извикването на ssh-askpass.
- В ssh в ssh_config в директивата AddKeysToAgent е добавена възможност за ограничаване на времето за действие на ключа. След изтичане на зададения лимит, ключовете автоматично се отстраняват от ssh-agent.
- В scp и sftp чрез флага «-A» сега може явно да се разреши пренасочване в scp и sftp с помощта на ssh-agent (по подразбиране пренасочването е забранено).
- В настройките на ssh е добавена поддръжка на подмяна ‘%k’, определяща името на ключа на хоста. Указаната възможност може да се използва за разпределение на ключовете по отделни файлове (например, «UserKnownHostsFile ~/.ssh/known_hosts.d/%k»).
- Разрешено е използването на операцията «ssh-add -d -» за четене от stdin на ключове, които подлежат на отстраняване.
- В sshd е осигурено отразяване в логовете на началото и края на процеса на ограничаване на съединенията, регулиран чрез параметъра MaxStartups.
Разработчиците на OpenSSH също така напомниха за предстоящото превеждане на алгоритми, използващи хешове SHA-1, в категорията на остарели. ефективността на колизионните атаки с зададен префикс (цената за подбора на колизия се оценява приблизително на 45 хиляди долара). В едно от следващите издания планират да деактивират по подразбиране възможността за използване на алгоритъма за цифрови подписи с открит ключ «ssh-rsa», който се споменава в оригиналния RFC за протокола SSH и остава широко разпространен на практика (за проверка на приложението на ssh-rsa в своите системи може да опитате да се свържете по ssh с опция «-oHostKeyAlgorithms=-ssh-rsa»).
За да се улесни прехода към новите алгоритми в OpenSSH, в следващото издание по подразбиране ще бъде включена настройката UpdateHostKeys, която ще позволи автоматично да се премести клиентите на по-надеждни алгоритми. Сред препоръчаните алгоритми за миграция са rsa-sha2-256/512 на базата на RFC8332 RSA SHA-2 (поддържа се от OpenSSH 7.2 и се използва по подразбиране), ssh-ed25519 (поддържа се от OpenSSH 6.5) и ecdsa-sha2-nistp256/384/521 на базата на RFC5656 ECDSA (поддържа се от OpenSSH 5.7).
Източник: opennet.ru
