Ни для кого не секрет, что сегодня существует большая проблема с безопасностью в интернете. Пользователи используют легкие пароли и переиспользуют их на других ресурсах. Парольные менеджеры все еще в новинку для обычного пользователя, и вашу бабушку вы вряд ли заставите использовать случайные одноразовые пароли с высокой энтропией. Жизнь тлен и боль…
На заре веб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
Сам по себе вызов-ответ не решает проблемы фишинга, так как если вы залогинились на rnail.ru вместо mail.ru, то ваша подпись все еще может быть использована для входа в ваш аккаунт. Для защиты от этого браузер к вызову добавляет URL, с которого был произведен запрос на подпись, и ID канала TLS, после чего зависимая сторона сверяет эти данные.
Шаг третий — Приватность или регистрационно-зависимая пара ключей
Генерируем регистрационно-зависимую пару
На данный момент наше устройство подписывает все одной парой ключей. Это создает проблему для приватности, в связи с тем что публичный ключ будет везде одинаковый. Для примера скажем если бы вы были зарегистрированы на печально известном AshleyMadison.com, то атакующий мог бы связать слитый публичный ключ и ваши другие аккаунты и потенциально причинить физический и моральный вред.
Чтобы сохранить приватность при регистрации, зависимая сторона передает ID приложения (AppID) и семя (случайное число). На основе этих данных устройство генерирует уникальную регистрационно-зависимую пару ключей. Как устройство генерирует пару не описано в протоколе, а полностью отдано на усмотрение изготовителя устройства. Например, каждый Yubikey имеет свой мастер ключ, который в связке с HMAC и ГПСЧ (Генератор псевдослучайных чисел) генерирует новую пару.
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 дает свободу вашей фантазии втом, где его можно применить.
Примечания
https://fidoalliance.org/specifications/download/
https://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009/fido-appid-and-facets-ps-20141009.html
- https://developers.yubico.com/U2F/
Если вы хотели бы больше узнать о U2F и его внедрении, а так же о других решениях FIDO альянса, пишите в комментариях.
Комментарии (53)
eugzol
12.07.2016 23:05На брелке не хватает мониторчика, который бы отображал информацию, которую его просят подписать.
Fullmoon
12.07.2016 23:39Не взлетит.
Основная проблема — материальность ключей и их слишком высокая (на мой взгляд) стоимость. Ключ от Yubico стоит $18, примерно как неплохая флешка на 32Гб, и покупать его простой человек не будет. Нужно, чтобы эти ключи заставляли покупать, или чтобы хотя бы смысл покупки был заметен. Или опустить цену до пары долларов.
Вообще, на мой дилетантский взгляд, заинтересовать 2FA-токенами людей, не причастных к IT-безопасности, вышло разве что у Близзарда.
Теперь сравним с xOTP. C _софтовыми_ реализациями OTP. Телефоны у всех есть, Google Authenticator или аналог на них прекрасно ставится. Затрат — ноль. Проблем при потере ключа, скажем, при перепрошивке — минимум. А ведь есть реализации OTP и на других девайсах…
И нет, то, что Гугл, Дропбокс и прочие поддерживают U2F — ни о чём не говорит. Подключить _ещё один_ модуль аутентификации не настолько уж сложно и затратно.
Так что, на мой взгляд, это очередной „пятнадцатый стандарт“.a1ien_n3t
13.07.2016 01:05Единственная потере при утрате брелка yubico это просто потеря самого брелка. Мастер ключ при зашивки в токен можно сохранить.
Соответственно можно купить новый токен и все востановить. Приэтом все сервисы с 2fa предоставляют аварийные коды. И всегда можно при потере временно отключить или изменить авторизацию.
Возможно что u2f это решение не для всех, но для людей которые заботятся о безопасности своих аккаунтов это очень удобная штука.
И если чесно я неразу не пожелел после покупки yubico. Так-как это не только u2f и OTP но и другие шикарные штуки, такие как ssh-ключ о котором можно больше не переживать. На все сервисы ставить свой единый публичный ключ. И не переживать, что кто-то может какимто образом получить доступ к приватной части.Fullmoon
13.07.2016 01:26> Единственная потере при утрате брелка yubico это просто потеря самого брелка.
Я об этом и говорю. Нужно покупать новый, „а до завтра, как лох, с пейджером ходить“. Мастер-ключи сохранять — это естественно.
> Возможно что u2f это решение не для всех, но для людей которые заботятся о безопасности своих аккаунтов это очень удобная штука.
Я, скажем, забочусь о безопасности своих аккаунтов, но TOTP на часах мне хватает. Очень удобная штука. Для этого, к тому же, не нужно покупать _отдельного_ гаджета и таскать его всюду.
Вот ssh — это интересно. Как именно он реализован, не расскажете?herrjemand
13.07.2016 01:29PAM https://github.com/Yubico/pam-u2f
BOPOHA
14.07.2016 06:28Вот 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=2319BOPOHA
14.07.2016 06:46+1Поделюсь опытом покупки вот такого девайса: http://hypersecu.com/products/hyperfido (продается тут $5.50/шт. + $10 доставка )
Виглядит такherrjemand
14.07.2016 08:50А что случится After: Aug 14 18:29:32 2024 GMT? )))
После этого истечет действие сертификата подписи, и ничего более.
Сертификаты только удостоверяют что данное устройство из этакой партии, и для большего не предназначены. Хотя все таки странно.
herrjemand
14.07.2016 08:47В это же issue есть инструкция по добавлению U2F поддержки в SSH
https://github.com/Yubico/pam-u2f/issues/12#issuecomment-148917351BOPOHA
14.07.2016 09:54Seems to be a good working prototype
да, имеем патчи для openssh-6.7 (времен убунты 15.04)…
и это бы ничего, если бы не главная проблема — для работы подобных вещей надо патчить ssh на стороне сервера.
а их может быть много, разных… а потом, следить за всеми обновлениями безопасности и снова патчить…
т.е. pam-u2f необходим, но непричем.
в общем :
не годится (на данный момент).
a1ien_n3t
13.07.2016 01:36+2В yubico есть такая штука PIV
В двух словах оно представляет собой pkcs11 токен с которым можно работать через opensc. Потдерживается кучей софта. Для винды есть putty-sc и пару еще клиентов которые работают с биюлиотекой opensc.
Также впринципе в yubco есть и pgp card который тоже можно заставить работать с ssh но opensc удобнее.
Например под линуксовм достаточно добавить строку
PKCS11Provider /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
Все, что работает через ssh клиент смотрит вставлен ли токен в систему и если на нем подходящий ключ для сервера. Если есть, запрашивает пин, и производит на токене все шифрования. Тоесть ключ не извекается из токена.
ValdikSS
13.07.2016 15:35другие шикарные штуки, такие как ssh-ключ о котором можно больше не переживать
Для этого есть TPM, который встроен во многие ноутбуки, а в самых современных материнских платах (Intel Skylake) он вообще софтовый и доступен всем.a1ien_n3t
13.07.2016 16:29Да, но удобнее когда вы можете аналог TPM всегда иметь при себе и вставлять в любые компьютеры.
Kolyuchkin
15.07.2016 08:13Неверно называть эти «usb-приблуды» аналогами TPM.
a1ien_n3t
15.07.2016 09:12USB приблуты с pkcs11 интерфейсом и не извлекаемыми ключами?
И чем это не TPM? В чем разница?Kolyuchkin
15.07.2016 10:53Функции USB-приблуд покрываются функциональностью ТРМ-модулей, но не наоборот. Функциональность и возможности ТРМ-модулей гораздо шире… Взять хотя бы тот факт, фто ТРМ-модуль начинает функционировать и использоваться системой гораздо раньше любых классических АПМДЗ, не говоря уж о USB-приблудах. И ПО (и системное и прикладное), использующее подходы Trusted Computing, а соответственно и функциональность ТРМ-модуля, имеет возможность получить из PCR-регистров ТРМ-модуля «состояние безопасности» вычислительной платформы (начиная от валидности БИОС (UEFI), загрузчика ОС и ядра ОС и заканчивая такими вещами, как наличие антивируса и фаервола или даже состояния Вашей утилитки). И это только вершина айсберга информационной безопасности))) Так же у вас появляется возможность получить проанализировать такой же слепок «состояния безопасности» у другого участника информационного взаимодействия прежде, чем начать с ним взаимодействовать.
herrjemand
13.07.2016 01:21Самое важное в FIDO U2F протоколе это то что он открытый, и то что он протокол. Он необязательно должен быть в железе, и даже если в железе, то необязательно 18$. 18$ это устройство с защищенным элементом. Железный токен может быть намного дешевле с дешевым китайским контролером.
Есть имплементации в ПО, например Java-card https://github.com/LedgerHQ/ledger-u2f-javacard. Так же в качестве токена может выступать любое ПО, в том числе мобильное приложение, или что либо подобное.Fullmoon
13.07.2016 01:38> Самое важное в FIDO U2F протоколе это то что он открытый, и то что он протокол.
Google TOTP — вообще RFC, есличо.
> Железный токен может быть намного дешевле с дешевым китайским контролером.
Будем ждать. Буду рад, если дождёмся.
> Есть имплементации в ПО, например Java-card https://github.com/LedgerHQ/ledger-u2f-javacard
Это опять отдельный гаджет.
> Так же в качестве токена может выступать любое ПО, в том числе мобильное приложение, или что либо подобное.
Хорошо, если так. Просто в статье всё время говорилось про устройство.
kromel
13.07.2016 05:30Duo Mobile на андроиде уже есть. не уверен что то же протокол, но принцип тот же. Клиенты пользуются, удобнее чем токены.
https://duo.com/solutions/features/two-factor-authentication-methods/duo-mobile
d_ilyich
13.07.2016 11:14На канадском амазоне HyperFIDO U2F-K5 стоит CDN$ 9.99. Если CDN$ — это канадский доллар, то получается меньше 500р. В валюте us/uk ~ 700р. Я бы взял ради интереса, если б не стоимость доставки :)
nikitastaf1996
13.07.2016 00:43Мне лично недавно пришла идея про blockchain с привязкой к биометрическим данным.То есть данные со сканера передаются программе.Она ищет такой же скан во всём blockchain.И дает доступ.
herrjemand
13.07.2016 01:23+1Я так вижу ваc интересует FIDO UAF. Там устройство зависимые пары ключей генерируемые на основе биометрических данных… Надо будет написать пост по этой теме.
nikitastaf1996
13.07.2016 09:52А эти пары ключей зависят от устройства или едины для всех устройств? То есть могу ли я войти в свой аккаунт с помощью устройства друга?
herrjemand
13.07.2016 09:54Пару уникальны для устройства. То есть войти с помощью токена друга не получится*)
nikitastaf1996
13.07.2016 10:13В этом и проблема.Я же думаю о системе body-as-device.То есть скан отпечатка пальцев или скан днк является таким же устройством как сейчас телефон в otp.Blockchain и повсеместное распространение биометрических сканеров это позволяет.Такая мечта о мировой системе аутентификации.
herrjemand
13.07.2016 10:17U2F не решает проблему универсальной аутентификации, а только универсальный второй фактор.
herrjemand
13.07.2016 10:20В этом и проблема.Я же думаю о системе body-as-device.То есть скан отпечатка пальцев или скан днк является таким же устройством как сейчас телефон в otp.Blockchain это позволяет.Такая мечта о мировой системе аутентификации.
Это так же просто ужасно для приватности.
Мне гораздо больше нравится подход UAF протокола. Аутентификация с помощью устройство зависимых пар ключей. То есть на основе ваших биометрических данных, на устройстве генерируется пара ключей, и помощью этого вы уже и проходите аутентификацию.
В будущем я напишу обзор UAF протокола.
kalterfive
13.07.2016 03:21Если тема будет интересна, то в будущем я могу написать статью по UAF.
Поддерживаю инициативу.
emate
13.07.2016 10:04немного не по теме вопрос: у кого-нибудь получилось прокинуть JaCarta U2F в virtualbox?
herrjemand
13.07.2016 10:06U2F токены это USB HID. Если проброс других USB устройств не вызывает проблем, то и токен должен нормально работать.
emate
13.07.2016 10:31не работает, я думаю что проблема как раз в том, что он usb hid.
В ВМ при аутентификации ни чего не происходит(хотя в диспетчере устройств токен появляется).herrjemand
13.07.2016 10:34Какая OS в виртуалке?
emate
13.07.2016 10:35пробовал на centos и winxp
herrjemand
13.07.2016 10:39Попробуйте https://demo.yubico.com/u2f
emate
13.07.2016 10:43на хосте без проблем, в ВМ отвал по тайм-ауту
herrjemand
13.07.2016 10:48А какая ОС хоста?
emate
13.07.2016 10:50win7 и centos
herrjemand
13.07.2016 10:53То есть у вас Win7 на котором виртуалка с CentOS?
emate
13.07.2016 10:58нет, у меня есть хост с win7 и ещё один пк с линуксом
herrjemand
13.07.2016 11:22Попробуйте добавить 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"
herrjemand
13.07.2016 10:11Удивлен тем что в РФ есть производитель U2F устройств, и огорчен что они не сертифицированы FIDO.
В добавок высокая цена, 1500 руб. Тот же Yubico U2F токен — 1200 рублей, и он мало того что сертифицирован, так и при этом использует безопасный элемент для криптографических операция.
d_ilyich
13.07.2016 11:33Вот что мне ответила СП Аладдин'а:
«мы входим в альянс FIDO, но, к сожалению, о сроках получения сертификата пока нет информации»
Повод для оптимизма естьherrjemand
13.07.2016 11:44Я вот читаю http://www.aladdin-rd.ru/company/pressroom/news/43846/, но при этом их нету в списке на сайте FIDO альянса https://fidoalliance.org/membership/members/
EminH
13.07.2016 10:25Хорошо бы универсальное устройство, с поддержкой и u2F и TOTP, с USB/BLE и с экраном для OTP, перепрошиваемое и дешевле 10$
demp
13.07.2016 20:23+2Открытая реализация U2F для тех кто дружит с паяльником: https://github.com/conorpp/u2f-zero
Loki3000
Не повторит ли эта штука судьбу OpenID? Тоже, вроде, все было здорово… И поддерживали прям все-все… И как все бесславно закончилось…
Кроме самой технологии, надо чтобы пользователь ее еще захотел использовать, а пока что я вижу только потенциальные проблемы от ее использования.
Что будет если пользователь потеряет свой токен? Надо восстанавливать доступ — привет социальная инженерия!
А как авторизоваться с чужого устройства? А если нет USB порта?
herrjemand
FIDO U2F не предназначен для универсальной аутентификации, а только протокол для универсального второго фактора. В связи с тем что для каждой регистрации генерируется уникальная пара ключей, связать разные аккаунты с помощью регистрационных дынных токена, не представляется возможным.
Для того чтобы обезопасить себя от проблем при потере токена, имеет смысл иметь более чем один токен при регистрации, или же восстановительные коды, как сейчас делается с TOTP.
На данный момент готовы спецификации для USB, NFC и Bluetooth LE. Готовые решения вы можете видеть на картинке выше в секции спецификации.