W3C и FIDO Alliance объявили о завершении разработки стандарта беспарольной аутентификации WebAuthn, которая велась с 2015 года. Подробнее о нем рассказываем далее.


/ Flickr / Mark Burnett / CC BY (фото изменено)

Зачем нужен стандарт


Наиболее частой причиной утечек данных в компаниях остаются слабые пароли. Они являются виновниками большинства атак — 81% случаев, по данным Verizon. Те организации, которые действительно работают над парольной политикой, тратят на это большое количество ресурсов. В Ponemon Institute утверждают, что суммарно процедуры сброса и обновления данных аутентификации обходятся компаниям в 5,2 млн долларов ежегодно.

Если говорить об общей ситуации в области аутентификации, то можно сослаться на данные специалистов из Кембриджского университета. Еще в 2010 году они провели анализ политик безопасности 150 крупных сайтов и установили, что 57% из них не использует TLS. При этом 84% сайтов позволяет бесконечно подбирать данные аутентификации.

Спустя девять лет ситуация с распространением шифрования улучшилась, но по-прежнему вызывает определённые опасения — по статистике WatchGuard за третий квартал 2018 года почти 21% из 100 тыс. сайтов топа Alexa не использует HTTPS.

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

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


В процессе аутентификации принимают участие три сущности. Первая — это WebAuthn Relying Party. Она представляет собой сайт, на который хочет зайти пользователь.

Вторая сущность — WebAuth API. В его основе лежат два базовых метода, отвечающих за регистрацию и вход в систему: navigator.credentials.create() и navigator.credentials.get(). Один создает реквизиты доступа при регистрации нового аккаунта и связывает пару ключей с уже существующим. Другой — использует известные данные для авторизации на сайте. Оба метода применяют защищённое соединение для передачи информации (например, HTTPS).

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

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

  • Пользователь заходит на сайт и выбирает опцию беспарольной аутентификации (например, с помощью телефона).
  • Сайт направляет клиенту WebAuthn (браузеру) соответствующий JavaScript-запрос.
  • Браузер обращается к аутентификатору (смартфону), чтобы тот сгенерировал ключи и направил их проверяющей стороне.
  • Сервер проверяет данные для входа.
  • Если все в порядке, то пользователь авторизуется на сайте.



Для защиты от фишинга стандарт использует специальные транзакции, которые привязываются к конкретной сессии. Если сервер замечает, что идентификатор изменился, то понимает, что запрос исходит от мошенников и не подтвердит авторизацию.

Потенциал и недостатки


По словам создателей WebAuthn, реализация нового стандарта поможет избавиться от паролей, а значит и от уязвимостей, которые с ними связаны. Cтарший сертификационный инженер FIDO Alliance Юрий Аккерманн говорит, что беспарольный вход защитит пользователей от фишинга, упростит взаимодействие с сайтами и сделает биометрические технологии более доступными.

В нашем блоге мы публиковали интервью с Юрием, в котором поговорили на тему веб-безопасности и беспарольных решений.

«WebAuthn может изменить то, как мы взаимодействуем с интернет-ресурсами, — отмечает начальник отдела развития IaaS-провайдера 1cloud.ru Сергей Белкин. — Пользователям не придется придумывать и запоминать пароли. Однако до этого момента стандарт должны начать использовать владельцы веб-сайтов и разработчики приложений. Его уже внедряют Google, Dropbox, Bank of America. Но, прежде чем беспарольная аутентификация получит широкое распространение, пройдет еще какое-то время».

Ряд экспертов по ИБ, однако, беспокоит тот факт, что WebAuthn применяет асимметричную схему шифрования ECDAA. Она нужна для создания цифровых подписей. Инженеры из Paragon считают, что использовать методы криптографии на базе эллиптических кривых (которые задействует ECDAA) небезопасно из-за ряда потенциальных уязвимостей.

В Paragon также раскритиковали самих создателей стандарта. Якобы они не консультировались с ведущими криптографами ИТ-индустрии и вели разработку «скрытно», не предоставив стандарт для проведения широкомасштабных криптографических тестов.

Но несмотря на все вышесказанное представители Paragon Initiative все равно верят в перспективу беспарольной аутентификации и выступают за массовое внедрение WebAuthn.

WebAuthn уже поддерживается в самых популярных браузерах и ОС. Завершение работы над стандартом стало лишь первым шагом к распространению беспарольных систем.

О чем мы пишем в корпоративном блоге:

Комментарии (30)


  1. Klenov_s
    27.03.2019 12:55

    Можно сказать, что тот же пароль, только написан у тебя на лбу. Ради аутентификации по лицу и глазу будут утаскивать фотки из соцсетей или фоткать на улице. Это не сложно, вопрос времени. Отпечатки тоже собирать массово.


    1. tretyakovpe
      27.03.2019 13:09

      Да ладно. Система будет просить тебя покачать головой, моргнуть, улыбнуться, открыть рот и т.п.
      2фа тоже никто не отменял


      1. Klenov_s
        27.03.2019 13:40
        +1

        Это все будет собирать и оцифровывать ваше устройство. А его можно научить разным трюкам, взять несколько фото, построить 3д модель… Я же не говорил, что надо подсунуть фотку камере, я говорил, что на основе фоток можно генерить правильный набор цифр для сервиса.
        Этот механизм заведомо слабее хорошего пароля: пароль можно держать в тайне, а биометрию — нет.


        1. tretyakovpe
          27.03.2019 14:56

          Скажу сразу, что считаю бредом аутентификацию по биометрии.
          Но чисто поспорить — на важные сервисы нужно вешать 2FA, это радикально уменьшит проблему (с созданием соответствующих неудобств, разумеется)


        1. kahi4
          27.03.2019 15:50

          Вообще реализация подразумевает, что она не имеет доступа к вашей биометрии. Она запрашивает у системы некий айди/ключ. Ключ генерируется и хранится внутри отдельного чипа (яблоки его называют T2 если я не ошибаюсь). Собственно этот отдельный чип и определяет лицо, по нему отдает ключ. Софтварно или на улице сфортографировать и достать этот ключ не получится. При правильной реализации.


      1. maslyaev
        27.03.2019 14:07

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


        1. Tenebrius
          27.03.2019 15:08

          «Изобразите ярость. Теперь страсть. Теперь шиншилу»


  1. aleki
    27.03.2019 13:01

    Я правильно понимаю, что с помощью этой технологии я не смогу сделать вход в приложение по отпечатку пальцев, если это приложение работает оффлайн? Например, менеджер паролей, который хранит данные локально и ему не нужен доступ в интернет?


    1. dartraiden
      27.03.2019 16:40

      The goal of the project is to standardize an interface for public-key authentication of users to web-based applications and services.
      Если вы делаете оффлайновый менеджер паролей в виде веб-приложения (господи...), думаю, что браузеру ничто не мешает общаться со встроенным сканером отпечатков пальца/USB-токеном/чем-то ещё, даже при отсутствии сети.


      1. aleki
        27.03.2019 17:57

        Т.е. WebAuthn может работать без Relying Party Server?


        1. dartraiden
          27.03.2019 20:08

          Microsoft утверждает, что оффлайн-сценарии допускаются.

          Кроме того, см. тут.


  1. vdem
    27.03.2019 13:05

    А если мне подбили глаз и на морде лица повязка, а палец болгаркой отрезало, я что, не смогу например почту прочитать? :D


    1. gto
      27.03.2019 13:28

      Почитает тот, кому достался отрезанный палец.


    1. maslyaev
      27.03.2019 14:08

      И даже вызвать скорую.


      1. Amihailov
        27.03.2019 14:23

        Возможность экстренных вызовов без разблокировки устройства есть даже у самых ссаных китайских поделок за 30 баксов :)


        1. maslyaev
          27.03.2019 15:08

          Безобразие


        1. tandzan
          27.03.2019 16:00

          Номер спасения «112» полностью работает лишь в 12 регионах России
          Не набрасываю, у меня тоже есть отрицательный опыт попыток вызова скорой через 112.


    1. KodyWiremane
      27.03.2019 18:09

      Поэтому пальцев так много. Но если вы исчерпали все попытки…


  1. gto
    27.03.2019 13:30

    Зачем такие сложности, достаточно было бы простого анализа крови.


  1. DesertFlow
    27.03.2019 13:33
    +2

    Насколько я понял из схемы, там нет жесткой привязки именно к биометрии (просто она заявляется как плюс). Идея иметь внешний аутентификатор, который логинится за вас. Это может быть телефон, на котором один раз прошли идентификацию по биометрии, или просто один раз ввели на телефоне пароль. А дальше браузер и телефон прозрачно друг с другом связываются и логинятся. Отличие от простой автозаполнялки на самом компьютере в том, что телефон все же внешняя система, к которой вирусом на компе так просто доступ не получишь. Да и авторизация на нем может быть сложнее, чем простой пароль (биометрия, например, или привязка по симке).

    Если пока рядом находится телефон (с пройденной на нем авторизацией), сайты будут логиниться автоматически — то это будет круто. А вот если им нужно будет фотографировать какие-нибудь QR-коды на сайтах, то удобство сомнительное. Ввести пароль кажется проще.


  1. force
    27.03.2019 13:45
    +1

    Наверное, чтобы было меньше непоняток, стоило бы вставить ссылку на сайт https://webauthn.org/, где можно проверить, как это всё работает.


    1. kahi4
      27.03.2019 15:52

      Error: registration failed: packed attestation: self attestation not implemented, please open a GitHub issue.

      Registration error: Error: registration failed: packed attestation: self attestation not implemented, please open a GitHub issue.

      Точнее проверить как оно не работает?


      1. force
        27.03.2019 18:23

        И это тоже, как показатель «крутости» технологии :)
        Но в целом, у меня через Хром на андроиде работает, с кучей вариантов авторизации. На компьютере просит специальную флешку.


  1. legolegs
    27.03.2019 14:11

    Они изобрели невидимый менеджер паролей?


    1. snuk182
      27.03.2019 17:22

      Они изобрели Microsoft Authenticator.


      1. xander27
        27.03.2019 19:52

        Тут вопрос не в "изобрели", а в "стандартизовали".


        1. snuk182
          27.03.2019 20:06

          Я замечал, что банковские клиент-программы тоже переходят в двухфакторке с отсылки СМС на вот такой собственный аутентификатор. Вследствие чего возникает вопрос безопасности этих аутентификаторов. Ладно у банковских прог есть/должен быть аудит. А общественный аутентификатор спасет, наверное, только опенсорсность.

          И да, прощай в очередной раз и без того мнимая анонимность.


  1. Bonio
    27.03.2019 16:22

    Они провели анализ политик безопасности 150 крупных сайтов и установили, что 57% из них не используют TLS при передаче паролей.

    Исследование 2010 года! На сегодня все совсем иначе, за почти десять лет TLS приобрел широкое распространение и крупных сайтов на голом http я вот так с ходу вообще ни одного не вспомню.


    1. Revertis
      28.03.2019 00:54

      Мало того, с 2010-го года и список 150 крупных сайтов претерпел серьёзные изменения! :))


  1. Rober
    30.03.2019 18:35

    В статье как-то не очень понятно объяснено, для чего нужен стандарт. Говорится о 57% крупных сайтах, не использующих HTTPS, затем в следующей главе упоминается, что методы WebAuthn используют защищённое соединение. Ну так применять HTTPS для повышения безопасности при авторизации можно и без WebAuthn, зачем создавать лишние звенья в цепи?
    Стандарт, по моему скромному мнению, лишь навредит безопасности, потому что склоняет использовать для авторизации сущности, которые ну никак не запрятать в голове. Произойдёт отрыв личности от объекта, идентифицирующего эту личность, в угоду удобству.
    В наше время, когда считается усилением безопасности привязка аккаунтов к телефонному номеру или, упаси Боже, подтверждение входа кодом из СМС (при том, что постоянно всплывают новости, как очередной сотрудник оператора сотовой связи отдал мошенникам симкарту или получил доступ сам корысти ради), можно ли внедрять на сайты, сервисы и устройства такую однобокую в плане реализации фишку — авторизацию по какому-то внешнему признаку? По-моему, нужно сначала определиться с тем, что такое настоящая безопасность при авторизации, а только затем внедрять новые фичи, однозначно положительно влияющие на эту безопасность.
    Телефон, пальцы, глаза, отпечаток уха, да даже ДНК — всё это можно сымитировать или отобрать. Само устройство внешней аутентификации может быть уязвимо. Таким образом кража личности станет более простым делом.
    Я не утверждаю, что WebAuthn зло и нельзя им пользоваться. Просто то, как оно работает, не соотносится с тем, как это хотят использовать.