Стандарт Web Authentication API: беспарольная аутентификация в вебе



    В марте 2018 года Альянс FIDO (Fast IDentity Online) и Консорциум W3C достигли важного рубежа: после двух лет разработки стандарт Web Authentication (WebAuthn) получил статус кандидата в рекомендации (CR) — это стабильная версия документа, в которую больше не планируется вносить принципиальных изменений. Обсуждение CR завершилось 1 мая.

    Что дальше? Теперь очередь Google, Mozilla и Microsoft. Когда поддержку Web Authentication API независимо и совместимо реализуют в двух браузерах, стандарт получит статус предложения в рекомендации. К этому моменту будут рассмотрены все предложения от сообщества — и документ представят Консультативному Совету W3C для окончательного утверждения.

    Заметим, что кроме Web Authentication API нужна также независимая и совместимая реализация в двух браузерах поддержка FIDO AppID для валидации фреймворка расширений. Остальные расширения могут быть исключены из стандарта на последнем этапе перед утверждением, если не будут совместимо и независимо реализованы в двух браузерах.

    Итак, стандарт практически принят. Представители Альянса FIDO уверены, что Google, Mozilla и Microsoft оперативно внедрят поддержку соответствующих API в браузеры на платформах Windows, Mac, Linux, Chrome OS и Android, работа уже идёт. В рабочую группу Web Authentication Working Group входят представители более 30 организаций, в том числе разработчики всех ведущих браузеров — поэтому поддержка с их стороны не заставит себя долго ждать. На данном этапе рабочая группа предлагает разработчикам веб-сервисов и приложений внедрять WebAuthn.

    Что даст новый стандарт разработчикам и обычным пользователям?

    WebAuthn устанавливает стандартный API, который поддерживается в браузерами и соответствующими веб-платформами.

    Преимущества для пользователей


    • Повышение удобства
      • Встроенные аутентификаторы: сканеры отпечатка пальцев или биометрии лица в компьютерах, ноутбуках и/или мобильных телефонах.
      • Удобные внешние аутентификаторы: криптографические токены и мобильные устройства для аутентификации между устройствами по протоколу CTAP.
    • Повышение защиты
      • Аутентификация FIDO надёжнее, чем простая парольная защита.
      • Аккаунты защищены от фишинга, атак MiTM и утечки паролей.


    Три способа беспарольной аутентификации в облаке Azure по токену YubiKey: одна из первых практических реализаций нового стандарта Web Authentication API

    WebAuthn разработан совместно с альянсом FIDO (Fast IDentity Online) и становится ключевым компонентом проекта FIDO2, вместе со спецификациями Client to Authenticator Protocol (CTAP) для аутентификации между устройствами, device-to-device.

    Универсальный аутентификатор


    По протоколу CTAP внешний аутентификатор (например, криптографический токен) передаёт зашифрованные учётные данные на локальное устройство, подключённое к интернету (компьютер или мобильный телефон) по USB, Bluetooth или NFC.



    Таким образом, спецификации FIDO2 обеспечивают простую и надёжную аутентификацию в онлайновых сервисах через стационарный компьютер или мобильное устройство. Самое главное, что это унифицированная аутентификация, которая не зависит от платформы, браузера, сервиса и т. д. Единственный аутентификатор должен работать везде, где поддерживается стандарт Web Authentication API и соответствующие протоколы. Это серьёзная заявка в борьбе с утечками паролей, фишингом, MiTM-атаками и другими серьёзными проблемаами информационной безопасности. Что говорить, если даже Twitter недавно нашёл баг, из-за которого все пароли пользователей записывались в логи открытым текстом. Ситуация с безопасностью в интернете оставляет желать лучшего, а обычной парольной защите нельзя доверять.

    «Безопасность давно стала проблемой, которая мешает многим позитивным эффектам, которые интернет несёт для общества. Хотя есть много проблем веб-безопасности, и всё не исправить, но зависимость от паролей является одним из самых слабых звеньев. С помощью многофакторных решений WebAuthn мы устраняем это слабое звено», — заявил генеральный директор консорциума W3C Джефф Джаффе (Jeff Jaffe). — WebAuthn изменит то, как люди работают в вебе».

    Фактически, мы стоим на пороге новой эры повсеместной аппаратной аутентификации для защиты каждого пользователя интернета.

    Конечно, до всеобщего распространения аутентификаторов пока далеко. Прямо сейчас мы видим лишь первые примеры, как внедряется поддержка Web Authentication API и как она работает на практике.

    Одну из первых демонстраций Web Authentication API в действии организовали компания Microsoft и производитель токенов Yubico в проекте по беспарольной аутентификации в облаке Azure по токену YubiKey. Этот недавно выпущенный токен по стандарту аутентификации FIDO2, который поддерживается в Windows 10 и Microsoft Azure Active Directory (Azure AD). На момент релиза в апреле 2018 года фича была доступна только для подписчиков Microsoft Technology Adoption Program. А этот токен YubiKey стал первым на рынке с поддержкой FIDO2.


    Принятие FIDO2 в составе всеобщего стандарта Web Authentication API расширит использование аутентификаторов FIDO, которые уже несколько лет применяются в отдельных решениях. Браузеры и веб-сервисы с поддержкой FIDO2 будут обратно совместимы с ранее сертифицированными ключами FIDO для беспарольной аутентификации UAF, и двухфакторной аутентификации U2F.



    FIDO2 — это продвинутая версия первоначального стандарта FIDO Universal 2nd Factor (U2F), созданного Yubico и Google. В то время как U2F требовал обязательного использования логина и пароля, FIDO2 поддерживает больше вариантов использования, в том числе и беспарольные схемы.

    Беспарольная аутентификация по FIDO2 может быть и однофакторной, и двухфакторной: те же токены YubiKey поддерживают аппаратные пинкоды, которые неизвестны серверу, в отличие от обычных смарт-карт. Таким образом, токен представляет собой два фактора аутентификации: фактор «то, что у тебя есть» (само устройство) и «то, что ты знаешь» (пинкод).

    К сожалению, у беспарольной аутентификации есть свои недостатки. Например, в случае потери токена YubiKey поможет только резервный ключ (если пользователь сделал его). Но в этом случае нужно заранее зарегистрировать резервный ключ на всех сервисах, чтобы потом иметь возможность отозвать предыдущий (потерянный). Впрочем, платформа Web Authentication поддерживает различные аутентификаторы, так что у пользователя останется возможность авторизоваться в сервисе иным способом.

    Итак, теперь остаётся ждать, когда Google, Mozilla и Microsoft внедрят полноценную поддержку Web Authentication и FIDO2 на всех платформах. Все три компании анонсировали полную поддержку Web Authentication API для Firefox, Chrome и Edge, соответственно. Представитель Opera Software тоже состоит в рабочей группе Web Authentication Working Group.

    Затем к процессу подключатся разработчики веб-сайтов и различных сервисов. Каждый пользователь сможет выбирать, какой способ беспарольной аутентификации ему удобнее использовать для авторизации на сайтах: сканер пальца, токен вроде YubiKey или что-то другое.

    Альянс FIDO в ближайшее время начнёт сертификацию серверов, клиентов и аутентификаторов согласно спецификации FIDO2. Соответствующий инструментарий для тестирования доступен на официальном сайте. Справочные ресурсы для разработчиков здесь. Компания Yubico выложила бета-версию серверного кода для образца серверной поддержки CTAP2/WebAuthn: библиотеки на C, Python и Java.



    Объявляем акцию «Больше киберзащиты спорту»!
    image

    GlobalSign присоединяется к празднованию самого грандиозного события всех спортсменов и футбольных болельщиков – ЧЕМПИОНАТУ МИРА ПО ФУТБОЛУ 2018 и ДАРИТ 1 ГОД SSL ЗАЩИТЫ!*


    Условия акции:
    * При покупке любого однолетнего SSL-сертификата DV, OV или EV уровня, второй год вы получаете в подарок.
    • Акция распространяется на все сайты спортивной тематики.
    • Акция действует только на новые заказы и не распространяется на партнеров.
    • Чтобы воспользоваться предложением, отправьте запрос на сайте с указанием промо-кода: SL003HBFR.

    Акция продлится до 15 июля 2018 г.

    Получить дополнительную информацию по акции вы можете у менеджеров GlobalSign Russia по телефону: +7 (499) 678 2210.

    БОЛЬШЕ ЗАЩИТЫ c GlobalSign!
    GlobalSign 112,85
    Компания
    Поделиться публикацией
    Комментарии 26
      0

      Жаль, не скоро аппаратные токены с поддержкой FIDO2 станут популярны у народа. В своё время смотрел на U2F токены от Yubico — цены на них кусаются, особенно с учётом того, что брать нужно сразу несколько токенов, так как имея всего один и потеряв его можно круто так обломаться, потеряв доступ к куче важных учёток. Пока токены не будут стоить пару баксов — физические лица их юзать не будут(за редким исключением). Модели тех же ноутов(в отличии от сматрфонов) с биометрическим сканером в той же средней ценовой категории днём с огнём искать нужно. И даже в топ-сегменте далеко не каждая модель имеет биометрический датчик. Получается, что новый стандарт первое время будет юзать только узкий круг энтузиастов. Производителям нужно сточно думать об удешевлении производства токенов, или распространять альтернативные варианты вроде канера отпечатков/лица в каждом ПК/ноуте/планшете. Иначе стандарт не взлетит.

        0
        Сканер лица — это очень дорого, что бы он работал хоть как-то безопасно — нужна схема как в Microsoft Kinect / iPhone X т.е с проекцией множества точек, а не только обычная камера. Таким образом дешёвая техника сразу не подойдет. А дорогая техника сейчас и так имеет биометрические датчики — сканеры отпечатков пальцев есть в каждом телефоне, я догадываюсь, что используя данный стандарт можно использовать эти датчики.
          0

          Самый дешёвый аналог yubikey видел за 7 баксов, но в отзывах писали, что он хлипкий. Я тоже купил пару ключей, но зря. Так как есть альтернативные способы восстановления (у гугла: смс, otp, доверенное устройство, и спец коды). Во всех сервисах нельзя просто юзать юбикей, обязательно нужно подключить смс или otp. На данный момент не вижу причин покупать второй ключ (как резерв)

            0

            Понятно, значит можно юзать один ключ + otp. С одной стороны — печально, что нужно юзать несколько способов — всё удобство от использования токета пропадает. С другой стороны, надёжность повышается. а резервные способы восстановления — это хорошо. Спасибо, что просветили на этот счёт. Может и разорюсь на один ключик(из тех, что самые дешёвые, дешевле 30 баксов за ключ).

              0
              Это не так, в случае Google, Вы можете воспользоваться Advanced Protection landing.google.com/advancedprotection привязать два ключа и отменить все остальные методы восстановления пароля и альтернативного входа.
                0
                У меня и так привязано 2 ключа, Когда перешел по ссылке. Он пишет, что привязано 0.
                Когда попробывал добавить, то пишет: «Ваш браузер не поддерживает эту функцию. Попробуйте ещё раз в Chrome.» Зачем оно мне надо, если оно работает только в хроме (я пользуюсь только лисой)
                  0
                  Все таки решил попробывать в хроме, действительно дало удалить номер телефона. Из минусов, все таки хотелось оставить google authenticator. + через OTG только с 3 попытки дало войти на телефоне
            0
            В чем революция? Что мешало повсеместно использовать для всех пользователей Гугл Аутентикатор?
              0
              Принципиально отличие очень большое. В случае с Google Authenticator на сервере хранится так называемый seed, на основании которого происходит генерация одноразового кода. А значит, что теоретически все учетные записи пользователей могут быть централизованно скомпрометированы. В случае с U2F вы используете асимметричную криптографию — на сервер отдается ваш открытый ключ и потом вы просто подписываете запросы аутентификации своим закрытым ключом. Любая компрометация сервера не приведет к утечке вашего закрытого ключа. Таким образом удается избежать такой неприятности как массовая утечка.
              Еще токен Google Authenticator может быть скопирован, а криптографические чипы скопировать гораздо сложнее (обычно считается, что закрытый ключ неизвлекаем).
                0

                Ничего не хнанится там. Он работает без интернета вообще

                  0

                  Тут я не прав. Хранится. Ну по поводу ключец я ещё три года назад делел аутентификацию натоснове сертификата в браузере. Опять в чем тут революция?

                    0
                    Обычная аутентификация по сертификатам не стала популярной из-за ее неудобств и обычно она основана на том, что каждый сервис выпускает свой сертификат. За каждым сертификатом надо следить, перевыпускать, отзывать. А тут у вас будет одна пара ключей, которую примут все сервисы, поддерживающие стандарт, и привяжут к вашей учетной записи.
                    Революция в том, что теперь использовать асимметричную криптографию для аутентификации станет намного проще обеим сторонам: пользователям и сервисам.
                      0
                      Звучит красиво. Боюсь только что основная цель собрать как можно больше биометрических данных и усиление контроля над обществом.
                        0
                        При чем тут сбор биометрических данных? Биометрия вообще не входит в стандарт, а скорее частный пример реализации. Даже если вы решили использовать отпечаток для подтверждения аутентификации, обычно он проверяется локально на устройстве и никто его не «собирает». Централизованные системы биометрической аутентификации — почти всегда не очень хорошая идея.
                          0

                          Но по факиу будут телефоны м отпечптком и сканером глаза и ноутбуки с теми же датчиками. И что выберет рчдовой пользователь? Какой-то там токен на флешке или биометрию?

                            0
                            Повторю только то, что уже написал: биометрия в подобных решениях проверяется локально на аутентификаторе, а не собирается централизованно. Поэтому нелогично говорить про сбор биометрических данных как цель описанных стандартов аутентификации.
                              0
                              Не знаю как вы но я не верю ни производителям электроники ни крупным айти компаниям. Надеяются что биометрия не утечет довольно наивно.
                  0
                  Чтобы сгенерировать OTP токен интернет не нужен, вот можно здесь порыться для примера github.com/hectorm/otpauth
                    0
                    Почему вы мне это написали?
                      0
                      В случае с Google Authenticator на сервере хранится так называемый seed, на основании которого происходит генерация одноразового кода.

                        0
                        Понял, что вы имеете в виду. Спасибо. Дело в том, что одно и то же значение секрета (seed) хранится и в генераторе и на сервере. При аутентификации сервер просто генерирует OTP аналогично тому, как это происходит в генераторе OTP. И сравнивает с полученным. Интернет тут не требуется. Но я про это и не пишу. А пишу про то, что есть центральная база с общими секретами. В случае с асимметричной криптографией такой базы нет.
                          0
                          Я тоже не совсем верно понял сообщение. Да, очевидно на сервере сервиса на который происходит аутентификация тоже хранится сид чтобы таким же образом как на стороне клиента сгенерировать токен и потом сравнить с полученным от клиента.
                0

                В windows 10 ещё не работает (нельзя добавить в windows hello новый yubico security key)

                  0
                  те же токены YubiKey поддерживают аппаратные пинкоды, которые неизвестны серверу, в отличие от обычных смарт-карт

                  Не могли бы вы пояснить? Разве PIN коды от смарт-карт надо хранить на сервере?
                    0
                    Теперь очередь Google, Mozilla и Microsoft
                    А что, Apple уже списали со счетов? Webkit, допустим, не поспевает за лидерами браузерного рынка, но не то чтобы сильно…
                      0
                      Никто не пробовал открытую альтернативу YubiKey (на амазоан по 8$ продается)? Вот обсуждают обновление контроллера для поддержки FIDO2 github.com/conorpp/u2f-zero/issues/76

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

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