Утверждение, что пароль не самый надежный способ защиты, вряд ли кто-то подвергнет сомнению. Кто же спорит: пароль — это не всегда удобно. И небезопасно. Их трудно запомнить, из-за чего люди порой выбирают самые неудачные и используют их снова и снова. Пароли также легко поддаются фишингу, причем злоумышленники постоянно придумывают всё более изощренные виды атак. Альтернативы паролям есть, и наиболее перспективную из них мы рассмотрим. И это WebAuthn.   WebAuthn — сетевой стандарт, который обеспечивает быструю и беспарольную аутентификацию пользователя. Основан на технологии FIDO (от англ. Fast Identity Online) — технология онлайн-аутентификации личности пользователя.   Важное условие: устройство должно поддерживать этот сетевой стандарт.  Изначально WebAuthn разрабатывался с прицелом на абсолютное исключение паролей из системы аутентификации. Однако на практике речь до определенного времени шла об его использовании только в качестве второго компонента двухэтапной (двухфакторной) аутентификации, то есть в дополнение к паролю.  В целом же, это решение уже довольно давно используется рядом IT-гигантов и в настоящее время встроено в большинство современных браузеров.   По сути, WebAuthn представляет собой API управления учетными данными. Он позволяет веб-приложениям аутентифицировать пользователей без использования паролей — например, с помощью биометрии или флешки. Всю работу делает криптография с открытым ключом.  С WebAuthn вы можете использовать один аутентификатор (например, Yubikey) на любом сайте, поддерживающем стандарт. Таким образом, вам не нужно иметь пароли для каждого сайта, который вы посещаете, а только надежный аутентификатор, который работает с WebAuthn (о том, как это устроено, чуть ниже). В дополнение к удобству, WebAuthn обеспечивает конфиденциальность, поскольку ни один сайт не может определить по аутентификатору, для каких других сайтов вы его использовали. Злоумышленники также не могут перехватить и успешно воспроизвести запрос аутентификации, поэтому вредоносные сайты не могут использовать ключ для атак на подлинные сайты, что исключает атаки типа «человек посередине». WebAuthn также позволяет вам выбрать собственный аутентификатор на свое устройство (смартфон, компьютер) или внешний аутентификатор (например, USB-ключ безопасности). Аутентификация посредством WebAuthn выполняется посредством трех компонентов: сайта (верификатора), браузера пользователя и собственно аутентификатора, в роли которого может выступать, например, биометрия или ключ безопасности на флешке. В упрощенном виде это выглядит так: при попытке авторизации с помощью отпечатка пальца или ключа встроенный скрипт WebAuthn сигнализирует верификатору, что у пользователя есть корректный аутентификатор, то есть необходимые данные для подтверждения того, что он (пользователь) — это он. В результате успешной аутентификации пользователь авторизуется в системе верификатора.   Изучая документацию по WebAuthn, вы увидите, что там полно аббревиатур. Давайте посмотрим, что они означают: FIDO — это сокращение от Fast IDentity Online. Альянс FIDO – это открытая ассоциация, в которую входят сотни компаний. FIDO работает над созданием стандартов аутентификации, которые помогут сократить (а в перспективе и вообще исключить) использование паролей в мире. FIDO2 — это общий термин для спецификаций консорциума World Wide Web (W3C) и Альянса FIDO. Он включает в себя как WebAuthentication (беспарольный веб-API для аутентификации в браузерах, который уже является стандартом консорциума W3C), так и протокол CTAP. CTAP расшифровывается как Client To Authenticator Protocol. В нем описывается, как аутентификаторы могут реализовать двухфакторную и беспарольную аутентификацию. Эти ключи могут быть встроенными в такие устройства, как телефоны и ноутбуки (аутентификаторы на устройстве или платформе), или они могут быть внешними (роуминговые или ключи безопасности), то есть подключаться через NFC, USB и/или BLE. CTAP2 — это новый протокол, который позволяет использовать аутентификаторы нового типа, то есть не только для двухфакторной, но и для беспарольной или многофакторной аутентификации. CTAP1, который раньше назывался FIDO U2F. Он позволяет использовать более старые средства аутентификации, такие как ключи безопасности, для второго фактора, то есть в качестве дополнительной защиты после ввода пароля. С сокращениями разобрались, идем дальше. Старые протоколы FIDO U2F и ключи безопасности обеспечивают надежный и устойчивый к фишингу второй фактор (то есть дополнительное подтверждение, помимо пароля), но мы же говорим о беспарольном доступе. Только представьте, насколько плавной и бесшовной должна стать работа с многочисленными сервисами, когда на любой из них можно будет зайти по отпечатку пальца или подключив флешку с ключом безопасности. И эти новые протоколы будут требовать еще более строгую аутентификацию, чем по протоколу U2F, когда вы вводите ключ безопасности для аутентификации. С FIDO2 сайты могут требовать проверки пользователя на разных уровнях, что обеспечивает многофакторную аутентификацию на одном устройстве. Типичный пример многофакторной аутентификации: сочетание фактора обладания (у вас есть аутентификатор) с фактором знания (вы знаете PIN-код) и внутренними факторами (кто вы, то есть биометрические данные: совпадения отпечатков пальцев, черт лица). Разумеется, для пользователей всё упростится, и им нужно будет вводить только PIN-код, привязанный к ключу безопасности. А биометрические данные на устройстве будут просто считываться (например, сканерами отпечатков пальцев или Face ID).   Всё это красиво и замечательно, но… самая большая проблема с отказом от паролей заключается в том, что пароль — это до сих пор наиболее простая и доступная вещь для реализации. Пароли, какими мы их знаем, известны уже более 60 лет: всё началось в Массачусетском технологическом институте с операционной системой CTSS в 1961 году. Именно в этой системе впервые стали использоваться пароли. А появлявшиеся с тех пор технологии, разработчики которых обещали пароли устранить, раз за разом терпели неудачу. И понятно, почему: всегда есть платформы, службы или системы, которые не поддерживают технологию беспарольного доступа. Очень немногие компании готовы платить за замену серверов, операционных систем, приложений и всего остального, просто чтобы получить что-то иное. В двух словах: пароли дешевые, а всё остальное дорого. Еще одна проблема на пути к беспарольной аутентификации заключается в том, что, хотя технически WebAuthn работает, у каждого веб-ресурса свой способ настройки. То, как называются параметры безопасности и где они находятся, сильно отличается от одного сайта к другому. В каждом новом браузере или операционной системе пользователю приходится заново разбираться с нужными для аутентификации параметрами. Даже те немногие сайты, которые уже поддерживают полноценную работу WebAuthn без пароля, не имеют общих стандартов для их предоставления, поэтому нам нужно «щелкать» отдельные ссылки для такой авторизации. Тем не менее говорят, что мы на пороге универсальной поддержки WebAuthn. Причем все основные операционные системы и браузеры его поддерживают уже давно: по данным на первую половину 2020 года этот показатель уже равнялся 83%, а сейчас приближается к 95%. Существуют десятки различных ключей безопасности, совместимых с FIDO2, от таких компаний, как Yubico, Feitian, Google, Kensington. Разработчики даже встроили поддержку этих ключей в операционные системы (iOS, Android, Windows, macOS). Еще чуть-чуть и останется просто пойти и получить ключ безопасности FIDO2, который мы могли бы использовать везде, но… Начав использовать ключи WebAuthn, вы обнаружите, что большинство крупных веб-приложений не использует их… в качестве замены пароля. Приложения довольно активно поддерживают WebAuthn в качестве второго фактора, обратно совместимого с FIDO U2F, но даже эта поддержка остается далеко не универсальной. Вот несколько примеров: Gmail: поддерживает, но, увы, только как ключ безопасности U2F после пароля. Правда, как говорили советские деятели, есть определенные подвижки: появились новости, что в Google наконец-то начали тестировать WebAuthn так, как он был задуман. Провайдеры сотовой связи: нет, только PIN-коды и SMS. Финансовые организации: нет, некоторые поддерживают общий TOTP (Time-based One-time Password Algorithm), многие же до сих пор используют аппаратные токены TOTP. Онлайн-кошельки для криптовалюты: да, но, увы, только как ключ безопасности U2F после пароля. Кроме того, они могут блокировать аутентификатор платформы FIDO2 и разрешают использовать только ключи безопасности USB. DNS/хостинг-провайдеры: да, но только как второй фактор в режиме U2F. Соцсети: да, но только как второй фактор в режиме U2F. К тому же настройки бывают спрятаны довольно глубоко (например, в Twitter). Zoom: нет, можно добавить только второй фактор TOTP, правда, настройки снова не очевидны. Dropbox: да, но как второй фактор в режиме U2F. Apple iCloud: собственная многофакторная аутентификация, но это совсем другая технология. Итак, что мы имеем с гуся? С обычного — жир и шкварки. С нашего — ровно один случай беспарольной аутентификации, да и то пока лишь в тестовом режиме. А в большинстве случаев WebAuthn — это по-прежнему второй фактор. И возникает логичный вопрос: а что, разве тем же банкам не нужна безопасная аутентификация? О безопасности банки, безусловно, заботятся, но вот в чём дело: они не продвигают инструменты, управляемые конечным пользователем, поскольку эти инструменты могут стать источником потенциальных проблем. А любые проблемы в этой сфере приводят к гневу клиентов, что влечет за собой многомиллионные затраты на колл-центры и, конечно, является причиной оттока тех самых клиентов. Даже у маленьких банков десятки тысяч пользователей, у крупных — десятки миллионов. Вот почему специалисты по банковской безопасности так много внимания уделяют невидимым внутренним инструментам обнаружения мошенничества и управления рисками. А не слишком удобную, но зато исправно работающую авторизацию, клиенты потерпят. Так что не стоит ждать, что финансовый сектор быстро примет беспарольный WebAuthn. Этого не произойдет до тех пор, пока браузеры и операционные системы не будут поддерживать его повсеместно, а также до тех пор, пока взаимодействие с пользователем не станет последовательным и безупречным. На самом деле протоколы WebAuthn работают, базовая технология великолепна, и вы можете и должны использовать WebAuthn в качестве аутентификатора везде, где это важно для вас. Но в подавляющем большинстве случаев пока только в качестве аутентификатора второго фактора.  Тем не менее начало гугловских тестов в Хроме и Андроиде настраивает на оптимистический лад: значит, там верят в технологию и всё-таки собираются сделать ее универсальной заменой пресловутой «двухфакторке». Но придется подождать.   НЛО прилетело и оставило здесь промокод для читателей нашего блога: — 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.  Маркетолог