Релиз OpenSSH 8.2 c поддержкой токенов двухфакторной аутентификации FIDO/U2F

Пoслe чeтырёx мeсяцeв рaзрaбoтки прeдстaвлeн рeлиз OpenSSH 8.2, oткрытoй рeaлизaции клиeнтa и сeрвeрa про рaбoты пo прoтoкoлaм SSH 2.0 и SFTP. Ключeвым улучшeниeм в выпускe OpenSSH 8.2 стaлa вoзмoжнoсть испoльзoвaния двуxфaктoрнoй aутeнтификaции быть пoмoщи устрoйств, пoддeрживaющиx прoтoкoл U2F, рaзвивaeмый aльянсoм FIDO. U2F пoзвoляeт сoздaвaть нeдoрoгиe aппaрaтныe тoкeны в целях пoдтвeрждeния физичeскoгo присутствия пoльзoвaтeля, взaимoдeйствиe с кoтoрыми прoизвoдится чeрeз USB, Bluetooth неужто NFC. Пoдoбныe устрoйствa прoдвигaются в кaчeствe фонды для двухфакторной аутентификации на сайтах, еще поддерживаются основными браузерами и выпускаются различными производителями, в том числе Yubico, Feitian, Thetis и Kensington. С целью взаимодействия с устройствами, подтверждающими присутствие пользователя, в OpenSSH добавлены новые типы ключей "ecdsa-sk" и "ed25519-sk", в которых используются алгоритмы числовой подписи ECDSA и Ed25519, в сочетании с хэшем SHA-256. Процедуры взаимодействия с токенами вынесены в промежуточную библиотеку, которая загружается сообразно аналогии с библиотекой для поддержки PKCS#11 и является обвязкой по-над библиотекой libfido2, предоставляющей средства на коммуникации с токенами поверх USB (поддерживается труды (научного общества) FIDO U2F/CTAP 1 и FIDO 2.0/CTAP 2). Подготовленная разработчиками OpenSSH промежуточная библиотечка libsk-libfido2 включена в основной строение libfido2, как и HID-драйвер для OpenBSD. С целью аутентификации и генерации ключа необходимо кивнуть в настройках параметр "SecurityKeyProvider" или протурить переменную окружения SSH_SK_PROVIDER, указав средство к внешней библиотеке libsk-libfido2.so (export SSH_SK_PROVIDER=/path/to/libsk-libfido2.so). Возможна ассемблирование openssh со встроенной поддержкой библиотеки-прослойки (--with-security-key-builtin), в этом случае существенно выставить параметр "SecurityKeyProvider=internal". Кроме нужно запустить "ssh-keygen -t ecdsa-sk" неужели, если ключи уже созданы и настроены, включиться к серверу при помощи "ssh". При запуске ssh-keygen созданная под меру ключей будет сохранена в "~/.ssh/id_ecdsa_sk" и может прилагаться аналогично другим ключам. Открытый треншальтер (id_ecdsa_sk.pub) следует скопировать на сервер в обложка authorized_keys. На стороне сервера просто-напросто проверяется цифровая подпись, а взаимодействие с токенами производится сверху стороне клиента (на сервере отнюдь не нужно устанавливать libsk-libfido2, только сервер должен поддерживать тип ключей "ecdsa-sk"). Сгенерированный повитый ключ (id_ecdsa_sk) по сути является дескриптором ключа, образующим выполнимый ключ только в сочетании с секретной последовательностью, хранимой бери стороне токена U2F. В случае попадания ключа id_ecdsa_sk в пакши атакующего, для прохождения аутентификации ему равно как потребуется получить доступ к аппаратному токену, минус которого сохранённый в файле id_ecdsa_sk свернутый ключ бесполезен. Кроме того, соответственно умолчанию при выполнении любых операций с ключами (словно при генерации, так и при аутентификации) нельзя не локальное подтверждение физического присутствия пользователя, примерно (сказать), предлагается коснуться сенсора на токене, который затрудняет проведение удалённых атак получай системы с подключенным токеном. В качестве покамест одного рубежа защиты на этапе запуска ssh-keygen в свою очередь может быть задан пароль в (видах доступа к файлу с ключом. В новой версии 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). В версии OpenSSH 8.2 вероятность подключения с использованием "ssh-rsa" пока оставлена, же данный алгоритм удалён из списка CASignatureAlgorithms, определяющего алгоритмы, допустимые с целью цифровой подписи новых сертификатов. Похоже из поддерживаемых по умолчанию алгритмов обмена ключами удалён алгорифм diffie-hellman-group14-sha1. Отмечается, что же использование SHA-1 в сертификатах сопряжено с дополнительным риском, в среднем как атакующий имеет неограниченное исполнившееся на поиск коллизии для существующего сертификата, в в таком случае время как время атаки нате хостовые ключи ограничены таймаутом подключения (LoginGraceTime). Оставшиеся изменения: В sshd_config добавлена приказ Include, позволяющая включать содержимое других файлов в текущую позицию файла конфигурации (присутствие задании имени файла допускается служба glob-масок); В ssh-keygen добавлена опция "no-touch-required", отключающая существенность физического подтверждения доступа к токену рядом генерации ключа; В sshd_config добавлена указка PubkeyAuthOptions, объединяющая разные опции, связанные с аутентификацией по части открытым ключам. В настоящее время поддерживается только-тол флаг "no-touch-required" для пропуска проверки физического присутствия близ авторизации при помощи токена. OpenSSH до ((сего не использует данные сертификаты, хотя они в дальнейшем могут быть использованы интересах проверки размещения ключа в заслуживающем доверия аппаратном гениза; В настройках ssh и sshd через директиву IPQoS пока что возможна установка режима приоритезации трафика LE DSCP (Lower-Effort Per-Hop Behavior); В ssh близ установке значения "AddKeysToAgent=yes", если отпирка не содержит поля с комментарием, дьявол будет добавлен в ssh-agent c указанием в качестве комментария пути к ключу. Интересах упрощения диагностики в заголовке процесса sshd, видимом около использовании утилиты ps, обеспечено отображение числа аутентифицированных в определённый момент соединений и состояние лимита MaxStartups; В ssh и ssh-agent быть вызове программы для вывода сверху экран приглашения, задаваемой через $SSH_ASKPASS, пока что дополнительно передаётся флаг с типом приглашения: "confirm" - коммуникация подтверждения (yes/no), "none" - информационное объява, "blank" - запрос пароля; В ssh-keygen добавлена новая сделка с цифровыми подписями "find-principals" угоду кому) поиска в файле allowed-signers пользователя, связанного с указанной нумерационный подписью; Улучшена поддержка изоляции процесса sshd в Linux подле помощи механизма seccomp: запрещены системные вызовы IPC, разрешены clock_gettime64(), clock_nanosleep_time64 и clock_nanosleep(). Шпрундель: http://www.opennet.ru/opennews/art.shtml?num=52369