FIDO U2F — Универсальная Двухфакторная Аутентификация. Введение

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


На заре веб2.0 мы стали понимать, что паролей недостаточно и изобрели двухфакторную аутентификацию или 2FA.


Что из себя представляют 2FA решения сегодня?


  • SMS — одноразовые пароли отправленные с помощью SMS.


  • OTP(TOTP/HOTP) — одноразовые пароли, сгенерированные на основе мастер ключей. Примеры: Google Authenticator, Yubikey, банковские OTP токены.


  • Криптографические Токены — аппаратные средства для многофакторной аутентификации пользователей. Примеры: RSA SecureID, Рутокен.

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



Причин много:


  • Фишинг — практически все перечисленные решения уязвимы к MITM (человек посередине) атакам, и соответственно фишингу. Что остановит пользователя, который уже ввел свой логин и пароль, от введения одноразового пароля?


  • Безопасность — в данном случае я буду говорить именно про SMS. SMS на данный момент самое популярное решение 2FA на рынке. Истории о перевыпуске сим карты случались не только в России, но и в США, ЮАР, Великобритании и других странах. Почти все провайдеры предоставляют возможность восстановления сим-карт, и методы социальной инженерии еще никто не отменял.


  • Стоимость — если вы швейцарский банк, и ваш клиент хранит семизначные суммы иностранной валюты, то RSA токены это мизерная цена для обеспечения безопасности аккаунтов ваших клиентов. А если вы Twitter или Facebook, то выдавать недешевые токены каждому пользователю просто невозможно. SMS тоже стоит денег, и если вы держите любительский аниме форум о дискуссиях про то как пропатчить KDE под FreeBSD, то вы вряд ли сможете позволить себе SMS.


  • Совместимость — никто не любит возиться с драйверами, и это одна из причин того, что RSA и Рутокен все еще не завоевали мир.


  • Удобство использования — вводить одноразовые пароли это морока. Разблокируй экран, открой сообщения, прочитай код, ошибись, сожги телефон и компьютер — это стандартный алгоритм взаимодействия пользователя и двухфакторной аутентификации.

Этот список можно еще долго продолжать, но я думаю что мысль донесена. Сегодняшние решения не в состоянии надежно защитить пользователя, сложны в применении, дороги и не универсальны.


FIDO U2F — Универсализируем второй фактор


В 2013 году в Кремниевой Долине был организован FIDO (Fast IDentity Online) альянс для того, чтобы адресовать проблемы легкой и безопасной аутентификации в интернете. На данный момент FIDO имеет более трёхсот ассоциативных членов и тридцать членов правления. В список членов правления входят такие компании как Google, Yubico, Microsoft, Visa, Mastercard, American Express, Paypal и другие.


Основные цели, которые FIDO ставит перед собой, это простые в использовании, безопасные, приватные и стандартизированные решения.


На данный момент FIDO представили два стандарта: U2F (Universal Second Factor) — универсальный второй фактор, UAF (Universal Authentication Framework) — универсальный аутентификационный фреймворк для биометрической аутентификации. Сегодня мы поговорим о U2F. Если тема будет интересна, то в будущем я могу написать статью по UAF.


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


Как это работает?


У U2F протокола три уровня абстракции: Пользователь, Браузер(тех. Клиент) и сам Протокол.


Пользователь



Для пользователя все достаточно просто. Пользователь вводит логин и пароль, вставляет U2F устройство, нажимает кнопку и успешно проходит аутентификацию. Собственно об этом ранее уже писали на ХабраХабре.


Браузер



Алгоритм взаимодействия с U2F на стороне браузера такой:


  • Пользователь проходит верификацию логина и пароля


  • Зависимая сторона, Google например, через U2F JS API запрашивает подпись вызова(challenge)


  • Браузер пересылает запрос устройству

Если пользователь подтвердил, например с помощью нажатия кнопки или иным образом, свое желание произвести двухфакторную аутентификацию, то устройство возвращает подпись вызова


  • Браузер передает подпись зависимой стороне


  • Зависимая сторона верифицирует подпись

Протокол — или пять с половиной шагов к безопасной двухфакторной аутентификации


Шаг первый — Вызов-Ответ



Для начала мы производим простой вызов-ответ. Сервер посылает нам случайный вызов. Наше устройство подписывает вызов и возвращает подпись серверу, после чего сервер сверяет подпись.


Шаг второй — Защита от фишинга


Подписываем оригинальный URL и Channel IDПодписываем оригинальный URL и Channel ID


Сам по себе вызов-ответ не решает проблемы фишинга, так как если вы залогинились на rnail.ru вместо mail.ru, то ваша подпись все еще может быть использована для входа в ваш аккаунт. Для защиты от этого браузер к вызову добавляет URL, с которого был произведен запрос на подпись, и ID канала TLS, после чего зависимая сторона сверяет эти данные.


Шаг третий — Приватность или регистрационно-зависимая пара ключей


Генерируем регистрационно-зависимую паруГенерируем регистрационно-зависимую пару


На данный момент наше устройство подписывает все одной парой ключей. Это создает проблему для приватности, в связи с тем что публичный ключ будет везде одинаковый. Для примера скажем если бы вы были зарегистрированы на печально известном AshleyMadison.com, то атакующий мог бы связать слитый публичный ключ и ваши другие аккаунты и потенциально причинить физический и моральный вред.


Чтобы сохранить приватность при регистрации, зависимая сторона передает ID приложения (AppID) и семя (случайное число). На основе этих данных устройство генерирует уникальную регистрационно-зависимую пару ключей. Как устройство генерирует пару не описано в протоколе, а полностью отдано на усмотрение изготовителя устройства. Например, каждый Yubikey имеет свой мастер ключ, который в связке с HMAC и ГПСЧ (Генератор псевдослучайных чисел) генерирует новую пару.


[https://developers.yubico.com/U2F/Protocol_details/Key_generation.html](https://developers.yubico.com/U2F/Protocol_details/Key_generation.html)https://developers.yubico.com/U2F/Protocol_details/Key_generation.html


За счет того, что пара ключей уникальна для каждой регистрации, становится возможным использовать совместно одно U2F устройство для множества аккаунтов.


Шаг четвертый — Защита от клонирования



Так как U2F это только протокол, то он может иметь разные имплементации, в железе и ПО. Некоторые имплементации могут быть не устойчивыми к клонированию. Для защиты от этого U2F устройство имеет встроенный счетчик. Каждая подпись и регистрация увеличивает состояние счетчика на единицу. Состояние счетчика подписывается и возвращается зависимой стороне. Если U2F устройство было склонировано, то состояние счетчика клонированного устройства скорее всего будет меньше чем состояние счетчика оригинального устройства, что вызовет ошибку во время верификации.


Шаг пятый— Аттестация Ключа



Разные имплементации протокола могут быть быть небезопасны. Чтобы избежать этого, каждое U2F устройство имеет встроенный партийный сертификат, который устанавливается приблизительно на каждые сто тысяч устройств. Каждая подпись и регистрация дополнительно подписывается сертификатом, публичный ключ которого находится в публичной директории.


Зачем это надо? Например, если вы — форум о котятах, то вы возможно не сильно волнуетесь о том, насколько безопасны U2F устройства ваших пользователей, а если вы банк, то возможно вы разрешите только устройства, выполненные в железе, и только если они сертифицированы FIDO альянсом.


Шаг шесть с половиной — Защита от перебора



В ситуации, когда пользователь находится вдали от своего устройства, вредоносное программное обеспечение может попытаться атаковать устройство методом полного перебора или другими видами атак. Для защиты от этого U2F стандарт требует чтобы все имплементации, в железе и ПО, активировались пользователем. Пользователь обязан подтвердить свое решение на двухфакторную аутентификацию. Этим действием может быть простое нажатие на кнопку, ввод пин-кода, снятие отпечатка пальца или другое.


Сервисы с множественными точками входа


Возьмем для примера Gmail.



В Gmail можно войти как с веб интерфейса, так и с мобильного. Как можно произвести авторизацию пользователя с андроид приложения, если AppID нашего приложения и AppID сервиса будут различаться?


Для этого есть фасеты (facets).


Фасеты — это JSON файл со списком всех ID, которым разрешается производить аутентификацию для выбранного сервиса. Для примера, вот фасеты Google:


{
  "trustedFacets": [{
    "version": { "major": 1, "minor" : 0 },
    "ids": [
      "https://accounts.google.com",
      "https://myaccount.google.com",
      "https://security.google.com",
      "android:apk-key-hash:FD18FA800DD00C0D9D7724328B6...",
      "android:apk-key-hash:Rj6gA3QDA2ddyQyi21JXly6gw9...",
      "ios:bundle-id:com.google.SecurityKey.dogfood"
    ]
  }]
}

Фасеты должны быть в том же доменном пространстве что и AppID. Например, если наше AppID это https://example.com/facets.json, то https://**security**.example**.com пройдет проверку, а https://security.example.net **нет.


Для мобильных приложений фасеты имеют URI схему вида “OS:TYPE:ID”. Для андроида вычисляется SHA-1 сертификата подписи apk. Для IOS это bundle ID.


Фасеты обязаны раздаваться по HTTPS!


Спецификации



На данный момент готовы спецификации для USB, NFC и Bluetooth LE.


Поддержка браузерами



Chrome поддерживает U2F из коробки с начала 2015. U2F поддержка в Firefox в данный момент в активной разработке. Microsoft анонсировала поддержку U2F как для Windows 10 так и для Edge как часть FIDO2.0 стека, и она уже доступна в Insider Build.


Кто использует?



Google, Github, Wordpress, Dropbox, Evernote. Правительство Великобритании недавно ввело поддержку U2F для своих государственных сайтов, что немало доставляет.


Что нужно учесть при переходе на U2F?


  • HTTPS ОБЯЗАТЕЛЕН —мало того, что если вы не предоставляете HTTPS своим пользователям, то вас не заботит их безопасность, и U2F вам будет мало интересен. Firefox, Chrome, и Edge требуют HTTPS соединения для использования U2F API.


  • Попробуйте TLS SessionID.


  • U2F это второй фактор. Не будьте как банки. Не используйте 2FA как основной фактор.

Подводим итоги


U2F это хорошо продуманная, сильная, открытая и стандартизированная технология. Она была успешно протестирована Google на своих сотрудниках, кои используют U2F на данный момент в качестве основного метода двухфакторной аутентификации.


U2F всего лишь протокол, что влечет за собой создание огромного рынка решений на основе его. От крипто-ключей с безопасным элементом, JavaCard имплементаций, до мобильных приложений и биометрически-защищенных U2F устройств, U2F дает свободу вашей фантазии втом, где его можно применить.


Примечания



Если вы хотели бы больше узнать о U2F и его внедрении, а так же о других решениях FIDO альянса, пишите в комментариях.

Share post

Comments 57

    0
    Не повторит ли эта штука судьбу OpenID? Тоже, вроде, все было здорово… И поддерживали прям все-все… И как все бесславно закончилось…
    Кроме самой технологии, надо чтобы пользователь ее еще захотел использовать, а пока что я вижу только потенциальные проблемы от ее использования.
    Что будет если пользователь потеряет свой токен? Надо восстанавливать доступ — привет социальная инженерия!
    А как авторизоваться с чужого устройства? А если нет USB порта?
      0
      FIDO U2F не предназначен для универсальной аутентификации, а только протокол для универсального второго фактора. В связи с тем что для каждой регистрации генерируется уникальная пара ключей, связать разные аккаунты с помощью регистрационных дынных токена, не представляется возможным.

      Для того чтобы обезопасить себя от проблем при потере токена, имеет смысл иметь более чем один токен при регистрации, или же восстановительные коды, как сейчас делается с TOTP.

      На данный момент готовы спецификации для USB, NFC и Bluetooth LE. Готовые решения вы можете видеть на картинке выше в секции спецификации.
        +1
        Пишу из 2019 года. Популярность технологии не сильно выше чем в 2016. Увы.
          0
          На самом деле подвижки есть. Google и Facebook уже поддерживают.
          В прошлом году все популярные браузеры, кроме Safari (но они тоже планируют), начали поддерживать стандарт.
            0
            Чот гугол вроде не дал мне отвязать телефон и оставить только эту штуку в качестве второго фактора.
              0

              А также, скажем AWS (Amazon), GitHub и куча других товарищей.

          +4
          Повёлся на аббревиатуру FIDO. Оказалось, что это совсем другое FIDO. :)
            0
            Баг в котором можно отслеживать разработку FIDO u2f api в Firefox
            • UFO just landed and posted this here
                0
                Не взлетит.

                Основная проблема — материальность ключей и их слишком высокая (на мой взгляд) стоимость. Ключ от Yubico стоит $18, примерно как неплохая флешка на 32Гб, и покупать его простой человек не будет. Нужно, чтобы эти ключи заставляли покупать, или чтобы хотя бы смысл покупки был заметен. Или опустить цену до пары долларов.
                Вообще, на мой дилетантский взгляд, заинтересовать 2FA-токенами людей, не причастных к IT-безопасности, вышло разве что у Близзарда.

                Теперь сравним с xOTP. C _софтовыми_ реализациями OTP. Телефоны у всех есть, Google Authenticator или аналог на них прекрасно ставится. Затрат — ноль. Проблем при потере ключа, скажем, при перепрошивке — минимум. А ведь есть реализации OTP и на других девайсах…

                И нет, то, что Гугл, Дропбокс и прочие поддерживают U2F — ни о чём не говорит. Подключить _ещё один_ модуль аутентификации не настолько уж сложно и затратно.

                Так что, на мой взгляд, это очередной „пятнадцатый стандарт“.
                  0
                  Единственная потере при утрате брелка yubico это просто потеря самого брелка. Мастер ключ при зашивки в токен можно сохранить.
                  Соответственно можно купить новый токен и все востановить. Приэтом все сервисы с 2fa предоставляют аварийные коды. И всегда можно при потере временно отключить или изменить авторизацию.

                  Возможно что u2f это решение не для всех, но для людей которые заботятся о безопасности своих аккаунтов это очень удобная штука.
                  И если чесно я неразу не пожелел после покупки yubico. Так-как это не только u2f и OTP но и другие шикарные штуки, такие как ssh-ключ о котором можно больше не переживать. На все сервисы ставить свой единый публичный ключ. И не переживать, что кто-то может какимто образом получить доступ к приватной части.
                    0
                    > Единственная потере при утрате брелка yubico это просто потеря самого брелка.
                    Я об этом и говорю. Нужно покупать новый, „а до завтра, как лох, с пейджером ходить“. Мастер-ключи сохранять — это естественно.

                    > Возможно что u2f это решение не для всех, но для людей которые заботятся о безопасности своих аккаунтов это очень удобная штука.
                    Я, скажем, забочусь о безопасности своих аккаунтов, но TOTP на часах мне хватает. Очень удобная штука. Для этого, к тому же, не нужно покупать _отдельного_ гаджета и таскать его всюду.

                    Вот ssh — это интересно. Как именно он реализован, не расскажете?
                      0
                      PAM https://github.com/Yubico/pam-u2f
                        0
                        Вот ssh — это интересно. Как именно он реализован, не расскажете?

                        PAM https://github.com/Yubico/pam-u2f

                        Не путайте теплое с мягким.

                        Авторизация работает там, где физически подключен U2F девайс.
                        Т.е. для удаленного сервера, где-то там в ДЦ, не годится (на данный момент).
                        Пруфы тут:
                        https://github.com/Yubico/pam-u2f/issues/12
                        https://bugzilla.mindrot.org/show_bug.cgi?id=2319
                          +1

                          Поделюсь опытом покупки вот такого девайса: http://hypersecu.com/products/hyperfido (продается тут $5.50/шт. + $10 доставка )


                          Виглядит так

                          image


                          Что надо для работы

                          Из коробки все работает после установки одного лишь пакета (Fedora 22+):


                          dnf install u2f-hidraw-policy -y

                          Отдельно следует обтатить внимание на сайт http://demo.yubico.com/u2f, для проверки работы ключа.


                          А что случится After : Aug 14 18:29:32 2024 GMT ? )))

                          image


                          После этого можно подключать u2f-брелок к google, github, и прочим сервисам.


                          Just for fun "Lazy su"

                          Для примера прямой авторизации через PAM-модуль.
                          Представим вот такую ситуацию ( у меня так всегда ):


                          # grep ^YouUserName  /etc/sudoers  | wc -l
                          0

                          Так, или иначе, пользователь не имеет на sudo, и не хочет им пользоваться.
                          Хочется заменить ввод длинного пароля на один клик (да-да, и никакого пароля).
                          Устанавливаем необходимые пакеты:


                           dnf install u2f-host pamu2fcfg pam-u2f --enablerepo=updates-testing -y

                          Добавляем строку auth sufficient pam_u2f.so authfile=/etc/u2f_mappings, перед auth substack system-auth:


                          # cat  /etc/pam.d/su
                          #%PAM-1.0
                          auth            sufficient      pam_rootok.so
                          auth            sufficient      pam_u2f.so authfile=/root/.u2f_mappings
                          # Uncomment the following line to implicitly trust users in the "wheel" group.
                          #auth           sufficient      pam_wheel.so trust use_uid
                          # Uncomment the following line to require a user to be in the "wheel" group.
                          #auth           required        pam_wheel.so use_uid
                          auth            substack        system-auth
                          auth            include         postlogin
                          account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
                          account         include         system-auth
                          password        include         system-auth
                          session         include         system-auth
                          session         include         postlogin
                          session         optional        pam_xauth.so

                          Регистрируем ключик для авторизации root:


                          # pamu2fcfg -uroot >> /root/.u2f_mappings
                          # echo >> /root/.u2f_mappings

                          После запуска pamu2fcfg, все вставленные ключи начнут мигать, необходимо нажать на необходимый.
                          Содержимое файла будет иметь такую структуру <username>:<KeyHandle>,<UserKey>.
                          Все готово, можно логиниться:


                          [YouUserName@laptop007 ~]$ su -
                          [root@laptop007 ~]# 

                          В процессе логина будет мигать только тот ключ, который привязаны к root, необходимо только нажать кнопочку.
                          Если ключ вытащить, то активируется обычный Password:.

                            0
                            А что случится After: Aug 14 18:29:32 2024 GMT? )))

                            После этого истечет действие сертификата подписи, и ничего более.
                            Сертификаты только удостоверяют что данное устройство из этакой партии, и для большего не предназначены. Хотя все таки странно.

                            0

                            В это же issue есть инструкция по добавлению U2F поддержки в SSH
                            https://github.com/Yubico/pam-u2f/issues/12#issuecomment-148917351

                              0
                              Seems to be a good working prototype

                              да, имеем патчи для openssh-6.7 (времен убунты 15.04)…
                              и это бы ничего, если бы не главная проблема — для работы подобных вещей надо патчить ssh на стороне сервера.
                              а их может быть много, разных… а потом, следить за всеми обновлениями безопасности и снова патчить…
                              т.е. pam-u2f необходим, но непричем.
                              в общем :


                              не годится (на данный момент).
                          +2
                          В yubico есть такая штука PIV
                          В двух словах оно представляет собой pkcs11 токен с которым можно работать через opensc. Потдерживается кучей софта. Для винды есть putty-sc и пару еще клиентов которые работают с биюлиотекой opensc.

                          Также впринципе в yubco есть и pgp card который тоже можно заставить работать с ssh но opensc удобнее.

                          Например под линуксовм достаточно добавить строку
                          PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so

                          Все, что работает через ssh клиент смотрит вставлен ли токен в систему и если на нем подходящий ключ для сервера. Если есть, запрашивает пин, и производит на токене все шифрования. Тоесть ключ не извекается из токена.
                          0
                          другие шикарные штуки, такие как ssh-ключ о котором можно больше не переживать
                          Для этого есть TPM, который встроен во многие ноутбуки, а в самых современных материнских платах (Intel Skylake) он вообще софтовый и доступен всем.
                            0
                            Да, но удобнее когда вы можете аналог TPM всегда иметь при себе и вставлять в любые компьютеры.
                              0
                              Неверно называть эти «usb-приблуды» аналогами TPM.
                                0
                                USB приблуты с pkcs11 интерфейсом и не извлекаемыми ключами?
                                И чем это не TPM? В чем разница?
                                  0
                                  Функции USB-приблуд покрываются функциональностью ТРМ-модулей, но не наоборот. Функциональность и возможности ТРМ-модулей гораздо шире… Взять хотя бы тот факт, фто ТРМ-модуль начинает функционировать и использоваться системой гораздо раньше любых классических АПМДЗ, не говоря уж о USB-приблудах. И ПО (и системное и прикладное), использующее подходы Trusted Computing, а соответственно и функциональность ТРМ-модуля, имеет возможность получить из PCR-регистров ТРМ-модуля «состояние безопасности» вычислительной платформы (начиная от валидности БИОС (UEFI), загрузчика ОС и ядра ОС и заканчивая такими вещами, как наличие антивируса и фаервола или даже состояния Вашей утилитки). И это только вершина айсберга информационной безопасности))) Так же у вас появляется возможность получить проанализировать такой же слепок «состояния безопасности» у другого участника информационного взаимодействия прежде, чем начать с ним взаимодействовать.
                          0
                          Самое важное в FIDO U2F протоколе это то что он открытый, и то что он протокол. Он необязательно должен быть в железе, и даже если в железе, то необязательно 18$. 18$ это устройство с защищенным элементом. Железный токен может быть намного дешевле с дешевым китайским контролером.

                          Есть имплементации в ПО, например Java-card https://github.com/LedgerHQ/ledger-u2f-javacard. Так же в качестве токена может выступать любое ПО, в том числе мобильное приложение, или что либо подобное.
                            0
                            > Самое важное в FIDO U2F протоколе это то что он открытый, и то что он протокол.
                            Google TOTP — вообще RFC, есличо.

                            > Железный токен может быть намного дешевле с дешевым китайским контролером.
                            Будем ждать. Буду рад, если дождёмся.

                            > Есть имплементации в ПО, например Java-card https://github.com/LedgerHQ/ledger-u2f-javacard
                            Это опять отдельный гаджет.

                            > Так же в качестве токена может выступать любое ПО, в том числе мобильное приложение, или что либо подобное.
                            Хорошо, если так. Просто в статье всё время говорилось про устройство.
                              0
                              Duo Mobile на андроиде уже есть. не уверен что то же протокол, но принцип тот же. Клиенты пользуются, удобнее чем токены.

                              https://duo.com/solutions/features/two-factor-authentication-methods/duo-mobile

                              0
                              На канадском амазоне HyperFIDO U2F-K5 стоит CDN$ 9.99. Если CDN$ — это канадский доллар, то получается меньше 500р. В валюте us/uk ~ 700р. Я бы взял ради интереса, если б не стоимость доставки :)
                            • UFO just landed and posted this here
                                +1
                                Я так вижу ваc интересует FIDO UAF. Там устройство зависимые пары ключей генерируемые на основе биометрических данных… Надо будет написать пост по этой теме.
                                • UFO just landed and posted this here
                                    0
                                    Пару уникальны для устройства. То есть войти с помощью токена друга не получится*)
                                    • UFO just landed and posted this here
                                        0
                                        U2F не решает проблему универсальной аутентификации, а только универсальный второй фактор.
                                          0
                                          В этом и проблема.Я же думаю о системе body-as-device.То есть скан отпечатка пальцев или скан днк является таким же устройством как сейчас телефон в otp.Blockchain это позволяет.Такая мечта о мировой системе аутентификации.

                                          Это так же просто ужасно для приватности.

                                          Мне гораздо больше нравится подход UAF протокола. Аутентификация с помощью устройство зависимых пар ключей. То есть на основе ваших биометрических данных, на устройстве генерируется пара ключей, и помощью этого вы уже и проходите аутентификацию.

                                          В будущем я напишу обзор UAF протокола.
                                  0
                                  Если тема будет интересна, то в будущем я могу написать статью по UAF.

                                  Поддерживаю инициативу.

                                    0
                                    немного не по теме вопрос: у кого-нибудь получилось прокинуть JaCarta U2F в virtualbox?
                                      0
                                      U2F токены это USB HID. Если проброс других USB устройств не вызывает проблем, то и токен должен нормально работать.
                                        0
                                        не работает, я думаю что проблема как раз в том, что он usb hid.
                                        В ВМ при аутентификации ни чего не происходит(хотя в диспетчере устройств токен появляется).
                                          0
                                          Какая OS в виртуалке?
                                            0
                                            пробовал на centos и winxp
                                              0
                                              Попробуйте https://demo.yubico.com/u2f
                                                0
                                                на хосте без проблем, в ВМ отвал по тайм-ауту
                                                  0
                                                  А какая ОС хоста?
                                                    0
                                                    win7 и centos
                                                      0
                                                      То есть у вас Win7 на котором виртуалка с CentOS?
                                                        0
                                                        нет, у меня есть хост с win7 и ещё один пк с линуксом
                                                          0

                                                          Попробуйте добавить udev правила
                                                          /etc/udev/rules.d/70-u2f.rules


                                                          # this udev file should be used with udev 188 and newer
                                                          ACTION!="add|change", GOTO="u2f_end"
                                                          
                                                          # Yubico YubiKey
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0402|0403|0406|0407|0410", TAG+="uaccess"
                                                          
                                                          # Happlink (formerly Plug-Up) Security KEY
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess"
                                                          
                                                          #  Neowave Keydo and Keydo AES
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", TAG+="uaccess"
                                                          
                                                          # HyperSecu HyperFIDO
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0880", TAG+="uaccess"
                                                          
                                                          # Feitian ePass FIDO
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850", TAG+="uaccess"
                                                          
                                                          # Feitian ePass FIDO
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850", TAG+="uaccess"
                                                          
                                                          # JaCarta U2F
                                                          KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101", TAG+="uaccess"
                                                          
                                                          LABEL="u2f_end"
                                                            0
                                                            спасибо, но не помогло
                                        0
                                        Удивлен тем что в РФ есть производитель U2F устройств, и огорчен что они не сертифицированы FIDO.

                                        В добавок высокая цена, 1500 руб. Тот же Yubico U2F токен — 1200 рублей, и он мало того что сертифицирован, так и при этом использует безопасный элемент для криптографических операция.

                                      0
                                      Хорошо бы универсальное устройство, с поддержкой и u2F и TOTP, с USB/BLE и с экраном для OTP, перепрошиваемое и дешевле 10$
                                        +1
                                        Звучит как идея для стартапа XD
                                        +2
                                        Открытая реализация U2F для тех кто дружит с паяльником: https://github.com/conorpp/u2f-zero

                                        Only users with full accounts can post comments. Log in, please.