Релиз OpenSSH 8.7

OpenSSHСостоялся релиз OpenSSH 8.7 — открытой реализации клиента и сервера для работы через протоколы SSH 2.0 и SFTP.

Основные нововведения в OpenSSH 8.7:

  • В scp добавлен экспериментальный режим передачи данных с использованием протокола SFTP вместо традиционно применяемого протокола SCP/RCP. В SFTP применяются более предсказуемые методы обработки имён и не используется обработка glob-шаблонов через shell на стороне другого хоста, создающая проблемы с безопасностью. Для включения SFTP в scp предложен флаг «-s», но в будущем планируется перейти на данный протокол по умолчанию;
  • В sftp-server реализованы расширения протокола SFTP для раскрытия путей ~/ и ~user/, что необходимо для scp;
  • В утилите scp изменено поведение при копировании файлов между двумя удалёнными хостами (например, «scp host-a:/path host-b:»), которое теперь по умолчанию производится через промежуточный локальный хост, как при указании флага «-3». Указанный подход позволяет избежать передачи лишних учётных данных на первый хост и тройной интерпретации имён файлов в shell (на стороне источника, приёмника и локальной системы), а также при использовании SFTP позволяет использовать все методы аутентификации при обращении к удалённым хостам, а не только неинтерактивные методы. Для восстановления старого поведения добавлена опция «-R»;
  • В ssh добавлена настройка ForkAfterAuthentication, соответствующая флагу «-f»;
  • В ssh появилась настройка StdinNull, соответствующая флагу «-n»;
  • В ssh добавлена настройка SessionType, через которую можно установить режимы, соответствующие флагам «-N» (без сеанса) и «-s» (subsystem);
  • В ssh-keygen в файлах с ключами разрешено указывать интервал действия ключа;
  • В ssh-keygen добавлен флаг «-Oprint-pubkey» для вывода полного открытого ключа в составе подписи sshsig;
  • В ssh и sshd, как клиент, так и сервер, переведены на использование более строгого парсера файла конфигурации, в котором используются похожие на shell правила обработки кавычек, пробелов и escape-символов. Новый парсер также не пропускает ранее имевшиеся допущения, такие как пропуск аргументов в опциях (например, теперь нельзя оставлять пустой директиву DenyUsers), незакрытые кавычки и указание нескольких символов «=»;
  • При использовании DNS-записей SSHFP при верификации ключей, ssh теперь проверяет все совпавшие записи, а не только содержащие определённый тип цифровой подписи;
  • В ssh-keygen при генерации ключа FIDO с указанием опции -Ochallenge для хэширования теперь используется встроенная прослойка, а не средства libfido2, что позволяет использовать challenge-последовательности, размером больше или меньше 32 байт;
  • В sshd при обработке директивы environment=»…» в файлах authorized_keys теперь принимается первое совпадение и действует ограничение в 1024 имён переменных окружения.

Разработчики OpenSSH предупредили о переводе в разряд устаревших алгоритмов, использующих хеши SHA-1, из-за повышения эффективности коллизионных атак с заданным префиксом. В следующем выпуске планируется отключить возможность использования по умолчанию алгоритма цифровых подписей по открытому ключу «ssh-rsa», который упоминается в оригинальном RFC для протокола SSH и остаётся широко распространённым на практике.

Для проверки применения ssh-rsa в своих системах можно попробовать подключиться по ssh с опцией «-oHostKeyAlgorithms=-ssh-rsa». При этом отключение по умолчанию цифровых подписей «ssh-rsa» не означает полный отказ от использования RSA-ключей, так как помимо SHA-1 протокол SSH допускает применение других алгоритмов вычисления хэшей. В частности, помимо «ssh-rsa» останется возможность использования связок «rsa-sha2-256» (RSA/SHA256) и «rsa-sha2-512» (RSA/SHA512).

Для сглаживания перехода на новые алгоритмы в OpenSSH ранее по умолчанию была включена настройка UpdateHostKeys, которая позволяет автоматически перевести клиентов на более надёжные алгоритмы. При помощи указанной настройки включается специальное расширение протокола «hostkeys@openssh.com», позволяющее серверу после прохождения аутентификации информировать клиента о всех доступных ключах хоста. Клиент может отразить эти ключи в своём файле ~/.ssh/known_hosts, что позволяет организовать обновление ключей хоста и упрощает смену ключей на сервере.

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

Среди рекомендуемых для миграции алгоритмов упомянуты 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).

Добавить комментарий

Ваш адрес email не будет опубликован.