23.10.2020

Релиз OpenSSH 8.4


После четырёх месяцев разработки представлен релиз OpenSSH 8.4, открытой реализации клиента и сервера для работы по протоколам SSH 2.0 и SFTP.

Основные изменения:

  • Изменения, связанные с безопасностью:
    • В ssh-agent при использовании ключей FIDO, созданных не для аутентификации через SSH (идентификатор ключа начинается не со строки «ssh:»), теперь выполняется проверка, что сообщение будет подписано с использованием методов, применяемых в протоколе SSH. Изменение не позволит перенаправлять ssh-agent на удалённые хосты, имеющие FIDO-ключи, для блокирования возможности использования данных ключей для формирование подписей запросов web-аутентификации (обратный случай, когда браузер может подписать запрос SSH, изначально исключён, благодаря применению префикса «ssh:» в идентификаторе ключа).
    • В ssh-keygen при генерации резидентного ключа включена поддержка дополнения credProtect, описанного в спецификации FIDO 2.1, предоставляющего дополнительную защиту для ключей через обязательный запрос ввода PIN-кода перед выполнением любой операции, которая может привести к извлечению резидентного ключа из токена.
  • Изменения, потенциально нарушающие совместимость:
    • Для поддержки FIDO/U2F рекомендовано использовать библиотеку libfido2 как минимум версии 1.5.0. Частично реализована возможность использования и старых выпусков, но в этом случае будут недоступны такие функции, как резидентные ключи, запрос PIN и подключение нескольких токенов.
    • В 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 в web-браузерах.
  • В 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).

Источник: https://www.opennet.ru/opennews/art.shtml?num=53793

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