company_banner

В OpenSSH добавлена двухфакторная аутентификация

    В OpenSSH добавлена экспериментальная функция двухфакторной аутентификации с помощью дешевых решений вида USB, Bluetooth или NFC-носителей. Соответствующая информация и детальное руководство опубликованы на marc.info.



    Теперь OpenSSH имеет экспериментальную поддержку поддержку U2F / FIDO, а U2F добавлен как новый тип ключа "sk-ecdsa-sha2-nistp256@openssh.com" или сокращенно «ecdsa-sk» («sk» означает «ключ безопасности»).

    Если ранее вы не сталкивались с U2F, то это — открытый стандарт для создания недорогих аппаратных решений в области security-токенов. Фактически, это самый дешевый способ для пользователей для получения аппаратных ключей, а на рынке достаточно продавцов. Например, токены можно купить у Yubico, Feitian, Thetis и Kensington. Аппаратные ключи дают преимущество в плане взлома: их надо физически украсть, что невозможно для большинства взломщиков.

    При это токены — недорогие устройства, стоимость многих редко достигает сотни евро, то есть это сравнительно дешевый и надежный способ для того, чтобы обезопасить систему.

    В РФ подходящий токен можно купить за ~30 евро, что еще выгоднее, чем у западных коллег.

    Сейчас функция двухфактора работает в экспериментальном режиме, то есть доступна только тем, кто целенаправленно захочет ею воспользоваться. Для этого стоит выполнить условия, описанные в README.md из репозитория OpenSSH на GitHub. Также функция доступна пользователям коммерческого OpenBSD в билде от 01.11.2019.

    Для установки двухфакторного доступа вам потребуется библиотека Libfido2, которую можно скачать на GitHub (включает поддержку OpenBSD, Linux, OS X и частично Windows). Каких-либо дополнительных зависимостей она не создает, так что абсолютно безопасна для использования. Libfido2 генерирует сам ключ, так что ее использование необходимо.

    Добавьте сгенерированный ключ U2F в ssh-agent.

    Ключи U2F можно добавить в ssh-agent, как и любой другой ключ. Только в нашем случае есть дополнительные требования:

    1. агент поддерживает новый тип ключа.
    2. библиотека и физический токен должны присутствовать на хосте-агенте (по принципу очень похоже на PKCS # 11)
    3. ssh-add должен указывать путь к библиотеку промежуточного ПО (можно воспользоваться командой -S)
    4. чтобы библиотека промежуточного ПО находится в white-листе (см. документацию -P ssh-agent).

    В файле PROTOCOL.u2f в репозитории OpenSSH можно найти информацию и по другим нюансам использования двухфактора.

    С полным руководством можно ознакомиться на ранее упоминаемом marc.info.
    ITSumma
    Собираем безумных людей и вместе спасаем интернет

    Комментарии 13

    • НЛО прилетело и опубликовало эту надпись здесь
        +2
        Пользуясь случаем спрошу:
        настраивал ли кто хранение ключа пользователя на токене (етокен/рутокен).
        1. Возможно-ли записать ключ на токен и использовать его в Putty? Гугл приводит довольно старые мануалы по генерации ключа в расширении Firefox, которое уже не устанавливается.
        Задача заключается в препятствии копирования ключа (хотя бы непрофессиональными пользователями)
        2. Возможно ли настроить работу так, что при извлечении ключа сессия принудительно разрывалась?
          0
          1. Записывал заранее сгенерированный ключ на Рутокен ЭЦП 2.0 по мануалу с их wiki. Можно сгенерировать сразу на ключ. Удалось использовать с клиентом openSSH на macOS и Putty-CAC на Windows, но необходима установка драйверов рутокен.
          2. Отключение по извлечению настроить не удалось.
          +1
          Libfido2 генерирует сам ключ, так что ее использование необходимо.
          Если ключ генерируется в библиотеке, а не в токене, это значит, что отсутствует основная «фишка», это неизвлекаемость ключа.
          Кто мешает создать слабый ключ, своровать его резервную копию или перехватить его при записи, если компьютер инфицирован?
            +1

            Он и не извлекается, но библиотека генерирует другой ключ на основе неизвлекаемого, с которым уже может работать ssh

            +6

            Заголовок с ЛОРа коприровали?


            Нет там никакой "двухфакторной" аутентификации. Просто можно использовать FIDO-девайсы как единственный фактор, т.е. железка становится вашим ссш-ключем.


            Двухфакторная аутентификация, это например libpam-google-authenticator или duo. И они с openssh работают уже много лет.

              +1

              Не согласен. Тут используются 2 фактора — владение железкой и владение ключом как файлом на компьютере. По одиночке они равнозначно бесполезны для входа.
              Подозреваю, что можно добавить и третий фактор в виде пароля на ключе

            +2
            Также функция доступна пользователям коммерческого OpenBSD в билде от 01.11.2019.

            Да, и шо такое — «коммерческий openbsd»? Дайте два.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое