/ 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)
aleki
27.03.2019 13:01Я правильно понимаю, что с помощью этой технологии я не смогу сделать вход в приложение по отпечатку пальцев, если это приложение работает оффлайн? Например, менеджер паролей, который хранит данные локально и ему не нужен доступ в интернет?
dartraiden
27.03.2019 16:40The goal of the project is to standardize an interface for public-key authentication of users to web-based applications and services.
Если вы делаете оффлайновый менеджер паролей в виде веб-приложения (господи...), думаю, что браузеру ничто не мешает общаться со встроенным сканером отпечатков пальца/USB-токеном/чем-то ещё, даже при отсутствии сети.aleki
27.03.2019 17:57Т.е. WebAuthn может работать без Relying Party Server?
dartraiden
27.03.2019 20:08Microsoft утверждает, что оффлайн-сценарии допускаются.
Кроме того, см. тут.
vdem
27.03.2019 13:05А если мне подбили глаз и на морде лица повязка, а палец болгаркой отрезало, я что, не смогу например почту прочитать? :D
maslyaev
27.03.2019 14:08И даже вызвать скорую.
Amihailov
27.03.2019 14:23Возможность экстренных вызовов без разблокировки устройства есть даже у самых ссаных китайских поделок за 30 баксов :)
tandzan
27.03.2019 16:00Номер спасения «112» полностью работает лишь в 12 регионах России
Не набрасываю, у меня тоже есть отрицательный опыт попыток вызова скорой через 112.
DesertFlow
27.03.2019 13:33+2Насколько я понял из схемы, там нет жесткой привязки именно к биометрии (просто она заявляется как плюс). Идея иметь внешний аутентификатор, который логинится за вас. Это может быть телефон, на котором один раз прошли идентификацию по биометрии, или просто один раз ввели на телефоне пароль. А дальше браузер и телефон прозрачно друг с другом связываются и логинятся. Отличие от простой автозаполнялки на самом компьютере в том, что телефон все же внешняя система, к которой вирусом на компе так просто доступ не получишь. Да и авторизация на нем может быть сложнее, чем простой пароль (биометрия, например, или привязка по симке).
Если пока рядом находится телефон (с пройденной на нем авторизацией), сайты будут логиниться автоматически — то это будет круто. А вот если им нужно будет фотографировать какие-нибудь QR-коды на сайтах, то удобство сомнительное. Ввести пароль кажется проще.
force
27.03.2019 13:45+1Наверное, чтобы было меньше непоняток, стоило бы вставить ссылку на сайт https://webauthn.org/, где можно проверить, как это всё работает.
kahi4
27.03.2019 15:52Error: 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.Точнее проверить как оно не работает?
force
27.03.2019 18:23И это тоже, как показатель «крутости» технологии :)
Но в целом, у меня через Хром на андроиде работает, с кучей вариантов авторизации. На компьютере просит специальную флешку.
legolegs
27.03.2019 14:11Они изобрели невидимый менеджер паролей?
snuk182
27.03.2019 17:22Они изобрели Microsoft Authenticator.
xander27
27.03.2019 19:52Тут вопрос не в "изобрели", а в "стандартизовали".
snuk182
27.03.2019 20:06Я замечал, что банковские клиент-программы тоже переходят в двухфакторке с отсылки СМС на вот такой собственный аутентификатор. Вследствие чего возникает вопрос безопасности этих аутентификаторов. Ладно у банковских прог есть/должен быть аудит. А общественный аутентификатор спасет, наверное, только опенсорсность.
И да, прощай в очередной рази без того мнимаяанонимность.
Bonio
27.03.2019 16:22Они провели анализ политик безопасности 150 крупных сайтов и установили, что 57% из них не используют TLS при передаче паролей.
Исследование 2010 года! На сегодня все совсем иначе, за почти десять лет TLS приобрел широкое распространение и крупных сайтов на голом http я вот так с ходу вообще ни одного не вспомню.Revertis
28.03.2019 00:54Мало того, с 2010-го года и список 150 крупных сайтов претерпел серьёзные изменения! :))
Rober
30.03.2019 18:35В статье как-то не очень понятно объяснено, для чего нужен стандарт. Говорится о 57% крупных сайтах, не использующих HTTPS, затем в следующей главе упоминается, что методы WebAuthn используют защищённое соединение. Ну так применять HTTPS для повышения безопасности при авторизации можно и без WebAuthn, зачем создавать лишние звенья в цепи?
Стандарт, по моему скромному мнению, лишь навредит безопасности, потому что склоняет использовать для авторизации сущности, которые ну никак не запрятать в голове. Произойдёт отрыв личности от объекта, идентифицирующего эту личность, в угоду удобству.
В наше время, когда считается усилением безопасности привязка аккаунтов к телефонному номеру или, упаси Боже, подтверждение входа кодом из СМС (при том, что постоянно всплывают новости, как очередной сотрудник оператора сотовой связи отдал мошенникам симкарту или получил доступ сам корысти ради), можно ли внедрять на сайты, сервисы и устройства такую однобокую в плане реализации фишку — авторизацию по какому-то внешнему признаку? По-моему, нужно сначала определиться с тем, что такое настоящая безопасность при авторизации, а только затем внедрять новые фичи, однозначно положительно влияющие на эту безопасность.
Телефон, пальцы, глаза, отпечаток уха, да даже ДНК — всё это можно сымитировать или отобрать. Само устройство внешней аутентификации может быть уязвимо. Таким образом кража личности станет более простым делом.
Я не утверждаю, что WebAuthn зло и нельзя им пользоваться. Просто то, как оно работает, не соотносится с тем, как это хотят использовать.
Klenov_s
Можно сказать, что тот же пароль, только написан у тебя на лбу. Ради аутентификации по лицу и глазу будут утаскивать фотки из соцсетей или фоткать на улице. Это не сложно, вопрос времени. Отпечатки тоже собирать массово.
tretyakovpe
Да ладно. Система будет просить тебя покачать головой, моргнуть, улыбнуться, открыть рот и т.п.
2фа тоже никто не отменял
Klenov_s
Это все будет собирать и оцифровывать ваше устройство. А его можно научить разным трюкам, взять несколько фото, построить 3д модель… Я же не говорил, что надо подсунуть фотку камере, я говорил, что на основе фоток можно генерить правильный набор цифр для сервиса.
Этот механизм заведомо слабее хорошего пароля: пароль можно держать в тайне, а биометрию — нет.
tretyakovpe
Скажу сразу, что считаю бредом аутентификацию по биометрии.
Но чисто поспорить — на важные сервисы нужно вешать 2FA, это радикально уменьшит проблему (с созданием соответствующих неудобств, разумеется)
kahi4
Вообще реализация подразумевает, что она не имеет доступа к вашей биометрии. Она запрашивает у системы некий айди/ключ. Ключ генерируется и хранится внутри отдельного чипа (яблоки его называют T2 если я не ошибаюсь). Собственно этот отдельный чип и определяет лицо, по нему отдает ключ. Софтварно или на улице сфортографировать и достать этот ключ не получится. При правильной реализации.
maslyaev
Вангую, что получится как с капчей. Появятся программки, которые будут уметь по снятой на улице фотке покачивать головой, моргать, улыбаться и открывать рот.
В результате лет через десять для того, чтобы авторизоваться, придётся проделывать серии упражнений, больше подходящие для поступления в театр пантомимы. Будем ещё спасибо говорить, что не будут заставлять раздеваться на камеру.
Tenebrius
«Изобразите ярость. Теперь страсть. Теперь шиншилу»