Команда разработки анонсировала релиз OpenSSH 8.5 — открытой реализации клиента и сервера для работы с протоколами SSH 2.0 и SFTP. Работа над новой версией заняла более пяти месяцев — релиз OpenSSH 8.4 состоялся в конце сентября 2020 года.

ВАЖНО!

В версии OpenSSH 8.5 был внесен целый ряд изменений, нарушающих обратную совместимость, так что крайне рекомендуем ознакомиться с официальным патч-ноутом.

Одно из важных изменений в новой версии — перевод в категорию устаревших алгоритмов на базе хэшей SHA-1, так как эффективность коллизионных атак с заданным префиксом серьезно возросла. Сейчас стоимость подбора коллизии по SHA-1 оценивается в ~$50 тыс. Также команда планирует отключить возможность по умолчанию использовать цифровую подпись по открытому ключу вида SSH-RSA. Он упоминается в RFC для SSH и до сих пор широко практикуется на местах.

Важно понимать, что отказ от использования цифровых подписей SSH-RSA не означает полного отказа от RSA, так как помимо SHA-1 можно использовать и прочие алгоритмы вычисления хэшей. Так, можно перейти на связки RSA-SHA2-256 или RSA-SHA2-512, которые обеспечивают большую стойкость ключа. Среди рекомендуемых для миграции алгоритмов упомянуты 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).

С новой версией системным администраторам, которые не захотят ничего менять в системе, нужно будет перевести свои системы на принудительное использование открытого ключа SSH-RSA. Чтобы узнать, используется ли эта подпись в системе, можно подключиться по SSH с опцией "-oHostKeyAlgorithms=-ssh-rsa".

Впрочем, если вы солидарны с разработчиками OpenSSH, то можете просто проигнорировать данную манипуляцию: в новой версии обеспечена система гладкого перехода на новые алгоритмы шифрования ключей через настройку UpdateHostKeys. Она автоматически переводит клиентов на более надежные алгоритмы шифрования. UpdateHostKeys включает специальное расширение, которое в момент прохождение аутентификации на сервере информирует пользователя о доступных ключах. Просмотреть полный список можно в файле ~/.ssh/known_hosts.

Использование UpdateHostKeys ограничено несколькими оговорками, которые в будущем могут быть отменены: ключ должен упоминаться в UserKnownHostsFile и не использоваться в GlobalKnownHostsFile; ключ должен присутствовать только под одним именем; не должен применяться сертификат хостового ключа; в known_hosts не должно применяться масок по имени хоста; должна быть отключена настройка VerifyHostKeyDNS; должен быть активен параметр UserKnownHostsFile.