Стандарт WebAuthn официально завершен

    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 уже поддерживается в самых популярных браузерах и ОС. Завершение работы над стандартом стало лишь первым шагом к распространению беспарольных систем.

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

    1cloud.ru
    235,00
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

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

      +1
      Можно сказать, что тот же пароль, только написан у тебя на лбу. Ради аутентификации по лицу и глазу будут утаскивать фотки из соцсетей или фоткать на улице. Это не сложно, вопрос времени. Отпечатки тоже собирать массово.
        0
        Да ладно. Система будет просить тебя покачать головой, моргнуть, улыбнуться, открыть рот и т.п.
        2фа тоже никто не отменял
          +5
          Это все будет собирать и оцифровывать ваше устройство. А его можно научить разным трюкам, взять несколько фото, построить 3д модель… Я же не говорил, что надо подсунуть фотку камере, я говорил, что на основе фоток можно генерить правильный набор цифр для сервиса.
          Этот механизм заведомо слабее хорошего пароля: пароль можно держать в тайне, а биометрию — нет.
            0
            Скажу сразу, что считаю бредом аутентификацию по биометрии.
            Но чисто поспорить — на важные сервисы нужно вешать 2FA, это радикально уменьшит проблему (с созданием соответствующих неудобств, разумеется)
              0

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

              +1
              Вангую, что получится как с капчей. Появятся программки, которые будут уметь по снятой на улице фотке покачивать головой, моргать, улыбаться и открывать рот.
              В результате лет через десять для того, чтобы авторизоваться, придётся проделывать серии упражнений, больше подходящие для поступления в театр пантомимы. Будем ещё спасибо говорить, что не будут заставлять раздеваться на камеру.
                +4
                «Изобразите ярость. Теперь страсть. Теперь шиншилу»
            0
            Я правильно понимаю, что с помощью этой технологии я не смогу сделать вход в приложение по отпечатку пальцев, если это приложение работает оффлайн? Например, менеджер паролей, который хранит данные локально и ему не нужен доступ в интернет?
              0
              The goal of the project is to standardize an interface for public-key authentication of users to web-based applications and services.
              Если вы делаете оффлайновый менеджер паролей в виде веб-приложения (господи...), думаю, что браузеру ничто не мешает общаться со встроенным сканером отпечатков пальца/USB-токеном/чем-то ещё, даже при отсутствии сети.
            0
            А если мне подбили глаз и на морде лица повязка, а палец болгаркой отрезало, я что, не смогу например почту прочитать? :D
              +1
              Почитает тот, кому достался отрезанный палец.
                +1
                И даже вызвать скорую.
                0
                Поэтому пальцев так много. Но если вы исчерпали все попытки…
                0
                Зачем такие сложности, достаточно было бы простого анализа крови.
                  +2
                  Насколько я понял из схемы, там нет жесткой привязки именно к биометрии (просто она заявляется как плюс). Идея иметь внешний аутентификатор, который логинится за вас. Это может быть телефон, на котором один раз прошли идентификацию по биометрии, или просто один раз ввели на телефоне пароль. А дальше браузер и телефон прозрачно друг с другом связываются и логинятся. Отличие от простой автозаполнялки на самом компьютере в том, что телефон все же внешняя система, к которой вирусом на компе так просто доступ не получишь. Да и авторизация на нем может быть сложнее, чем простой пароль (биометрия, например, или привязка по симке).

                  Если пока рядом находится телефон (с пройденной на нем авторизацией), сайты будут логиниться автоматически — то это будет круто. А вот если им нужно будет фотографировать какие-нибудь QR-коды на сайтах, то удобство сомнительное. Ввести пароль кажется проще.
                    +1
                    Наверное, чтобы было меньше непоняток, стоило бы вставить ссылку на сайт https://webauthn.org/, где можно проверить, как это всё работает.
                      0
                      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.

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

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

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

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

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

                        Исследование 2010 года! На сегодня все совсем иначе, за почти десять лет TLS приобрел широкое распространение и крупных сайтов на голом http я вот так с ходу вообще ни одного не вспомню.
                          0
                          Мало того, с 2010-го года и список 150 крупных сайтов претерпел серьёзные изменения! :))
                          0
                          В статье как-то не очень понятно объяснено, для чего нужен стандарт. Говорится о 57% крупных сайтах, не использующих HTTPS, затем в следующей главе упоминается, что методы WebAuthn используют защищённое соединение. Ну так применять HTTPS для повышения безопасности при авторизации можно и без WebAuthn, зачем создавать лишние звенья в цепи?
                          Стандарт, по моему скромному мнению, лишь навредит безопасности, потому что склоняет использовать для авторизации сущности, которые ну никак не запрятать в голове. Произойдёт отрыв личности от объекта, идентифицирующего эту личность, в угоду удобству.
                          В наше время, когда считается усилением безопасности привязка аккаунтов к телефонному номеру или, упаси Боже, подтверждение входа кодом из СМС (при том, что постоянно всплывают новости, как очередной сотрудник оператора сотовой связи отдал мошенникам симкарту или получил доступ сам корысти ради), можно ли внедрять на сайты, сервисы и устройства такую однобокую в плане реализации фишку — авторизацию по какому-то внешнему признаку? По-моему, нужно сначала определиться с тем, что такое настоящая безопасность при авторизации, а только затем внедрять новые фичи, однозначно положительно влияющие на эту безопасность.
                          Телефон, пальцы, глаза, отпечаток уха, да даже ДНК — всё это можно сымитировать или отобрать. Само устройство внешней аутентификации может быть уязвимо. Таким образом кража личности станет более простым делом.
                          Я не утверждаю, что WebAuthn зло и нельзя им пользоваться. Просто то, как оно работает, не соотносится с тем, как это хотят использовать.
                            0
                            Вас ничего не смущает, когда кто-то входит в своё банковское приложение по отпечатку пальца? Вы же в курсе, как там всё устроено? А WebAuthn это лишь способ общения браузера и физических средств аутентификации (электронного ключа), работающих через: Bluetooth, NFC, USB, или отпечаток пальца. Это может быть ЭЦП на «свистке» ruToken, подключенной через USB, не обязательно в телефоне.
                            Как-то однобоко мыслите, товарищи.
                            +1
                            Вас же ни кто не просит не использовать дополнительные средства аутентификации, тот же пароль. Это доп защита, которую стандартизировали, и начинают внедрять в массы.
                            Зарегистрировать палец и любую биометрическую информацию — дело одноразовое, пускай и займет 1+ минут. Дело биометрической авторизации — 2 секунды — приложи палец, приложи глаз и тд) А далее по накатанной — введи пароль, введи 2фа. Итог — имеем доп защиту, которая поддерживается на всех устройствах.
                            В результате — даже пароль «Qwerty» получит доп защиту, и всякие боты уже его не взломают
                              0
                              Тут смотря кого называть«вас». Если пользователь будет вправе выбирать нужен ему дополнительный фактор или нет, то это одно дело. Совсем другое, если какой-то сайт будет требовать доступа к сторонним девайсам или какому-то локальному хранилищу.

                              В последнем случае одно из основных преимуществ веб-приложений и хранилищ а-ля «вам не нужно носить с собой ваши программы и данные» будет утрачено. Толку что не нужно хранить данные и программы на девайсе, если без девайса ты к ним доступа получить не можешь.
                                0
                                А Вы в курсе, что телефон в обязательном порядке начинает требовать поставить ПИН-код или отпечаток добавить (в общем, блокировку), в случаях, когда Вы начинаете хранить на нём важные данные? Яркий пример — ОС Android.
                                Так что у несознательных людей, просто не будет возможности раскрыть свои данные.
                              0
                              Не совсем понимаю, что будет если «аутентификатора» уже нет (вышел из строя/украли).
                              В случае с эцп, я имею возможность отозвать и перевыпустить ее, а что тут? На вскидку не нашел в стандарте.
                                0
                                В этом случае, как это реализовано в большинстве приложений (в т.ч. банковских), Вы используете метод «по старинке» — логин и пароль.
                                0
                                Коллеги, которые читают невнимательно. Написано — «беспарольный ВХОД», а не РЕГИСТРАЦИЯ. Регистрация остается старой, а привязка биометрии делается после регистрации в своём личном кабинете (абстрактно). Со всеми вытекающими выводами…

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