Представьте себе футбольный матч, где одна команда играет с завязанными глазами. Именно так выглядит защита паролями в мире, где фишинговые атаки стали не редкостью, а промышленным потоком. По данным Рабочей группы по борьбе с фишингом, только в третьем квартале 2025 года было зафиксировано более 890 000 подобных атак. Восемьсот девяносто тысяч! Это не киберпреступники-одиночки в тёмных подвалах – это целая индустрия, которая каждый день охотится за вашими логинами и паролями.
Пароль – это как бумажный ключ от железной двери. Вроде бы что-то закрывает, но первый же дождь его погубит. Вы вводите пароль на фишинговом сайте, который выглядит как ваш банк, – и всё, игра окончена. Именно поэтому индустрия кибербезопасности уже несколько лет активно продвигает альтернативу: технологию под названием FIDO2, а точнее – её пользовательское воплощение, ключи доступа (или passkeys).
Что это такое, как оно работает, действительно ли ключи доступа неуязвимы – и где у этой брони всё-таки есть щели? Давайте разберёмся вместе.
FIDO2 – это открытый стандарт, разработанный альянсом FIDO (Fast IDentity Online) совместно с организацией W3C. Его цель – сделать вход в интернет-сервисы безопасным и удобным без использования паролей. Стандарт состоит из двух ключевых компонентов:
- WebAuthn – это интерфейс для браузеров, который позволяет сайтам общаться с устройствами пользователя для подтверждения личности.
- CTAP (протокол взаимодействия клиента с аутентификатором) – протокол, благодаря которому внешние устройства, например USB-токены или смартфоны, могут участвовать в процессе аутентификации.
Ключи доступа – это конкретная реализация FIDO2, которую уже поддерживают Apple, Google, Microsoft и большинство крупных браузеров. Когда вы видите на сайте кнопку «Войти с помощью ключа доступа» и подтверждаете вход отпечатком пальца или PIN-кодом – это и есть FIDO2 в действии.
Как это работает: криптография без скуки
Попробую объяснить через аналогию. Представьте, что у вас есть два замка: один вы раздаёте всем желающим – это открытый ключ, второй вы храните у себя дома и никому не показываете – это закрытый ключ. Любой может прислать вам запертый на вашем замке конверт, но открыть его сможете только вы – потому что только у вас есть нужный ключ.
В мире FIDO2 это работает следующим образом. Когда вы регистрируетесь на каком-то сайте с помощью ключа доступа:
- Сайт генерирует случайный код – так называемый вызов (challenge).
- Ваше устройство (смартфон, ноутбук, USB-токен – всё это называется аутентификатором) создаёт уникальную пару криптографических ключей: открытый и закрытый.
- Закрытый ключ остаётся на вашем устройстве и никогда его не покидает. Никогда. Это принципиально важно.
- Открытый ключ передаётся на сервер сайта и сохраняется там.
- Аутентификатор подписывает вызов закрытым ключом и отправляет эту подпись обратно. Сервер проверяет подпись с помощью открытого ключа и убеждается: да, это действительно тот пользователь.
Когда вы входите в систему в следующий раз:
- Сервер снова генерирует случайный вызов.
- Ваш браузер просит аутентификатор подписать его закрытым ключом, который привязан именно к этому домену.
- Вы подтверждаете операцию – отпечатком пальца, лицом или PIN-кодом.
- Подписанный вызов уходит на сервер, сервер проверяет подпись – и вход выполнен.
Красота этой схемы – в том, что злоумышленнику нечего перехватывать. Пароля не существует. Секрет хранится на вашем устройстве и никуда не передаётся. Даже если кто-то подсмотрит подписанный вызов, он не сможет его использовать повторно – каждый раз генерируется новый.
Почему ключи доступа так сильны против фишинга
Фишинг работает по простой схеме: создаётся сайт-двойник, жертва вводит туда свои данные – и злоумышленник их получает. С паролями это элементарно. Но с ключами доступа эта схема разваливается сразу в нескольких местах.
Во-первых, привязка к домену. Когда вы создаёте ключ доступа для сайта bank.com, он привязан именно к этому адресу на уровне протокола. Если злоумышленник создаст фишинговый сайт b4nk.com или bank-login.com, ваш браузер просто не предложит использовать ключ – потому что домен другой. Это не предупреждение, которое можно проигнорировать. Это жёсткое техническое ограничение.
Во-вторых, закрытый ключ не передаётся. Даже если злоумышленник каким-то образом перехватит весь трафик между вами и сервером, он не получит ничего, с чем можно было бы войти в систему позже. Каждая подпись одноразовая.
В-третьих, нет пароля – нет утечки пароля. Базы данных паролей утекают регулярно. С ключами доступа на сервере хранится только открытый ключ – бесполезный без своей закрытой половины, которая у злоумышленника отсутствует.
Это как если бы вместо того чтобы говорить охраннику пароль (который можно подслушать), вы предъявляли уникальный биометрический паттерн, который нельзя скопировать и который работает только у конкретной двери.
Но не всё так радужно: уязвимости существуют
Я не был бы честным, если бы сказал, что FIDO2 – это абсолютная броня. Любая технологическая система существует в реальном мире, а реальный мир полон людей, устройств и ошибок. Исследователи выявили несколько серьёзных векторов атак – и два из них были реализованы на практике в рамках анализа безопасности этой технологии.
🔬 Атака первая: «Заражённый аутентификатор»
Вся магия ключей доступа строится на одном допущении: аутентификатор честен. То есть устройство, которое хранит ваш закрытый ключ и создаёт подписи, работает именно так, как заявлено. Но что если оно заражено вредоносным программным обеспечением?
Представьте, что вы купили замок у поддельного производителя, который тайно сделал дубликат ключа для себя. Внешне замок выглядит нормально, открывает вашу дверь – но у мошенника есть точная копия.
Именно так работает атака «Заражённый аутентификатор». Схема выглядит следующим образом:
- На устройство пользователя попадает вредоносный программный аутентификатор – например, через установку сомнительного приложения или использование заражённого USB-токена с изменённой прошивкой.
- Когда пользователь регистрируется на легитимном сайте, скажем, bank.com, этот поддельный аутентификатор генерирует пару ключей – но особую: закрытый ключ из этой пары уже известен злоумышленнику.
- Сервер bank.com принимает открытый ключ и сохраняет его – он ничего не знает о подвохе.
- Теперь злоумышленник, у которого есть закрытый ключ, может самостоятельно подписывать любые вызовы от bank.com и входить в систему как жертва – без физического доступа к устройству пользователя и без каких-либо дополнительных манипуляций.
Эта атака фактически уничтожает всю защитную модель FIDO2 – но только при одном условии: злоумышленник должен заранее скомпрометировать аутентификатор. Это требует либо физического доступа к устройству, либо установки вредоносного ПО. Само по себе это уже серьёзный барьер.
Как защититься? Использовать только сертифицированные аппаратные аутентификаторы с защитой от вмешательства в прошивку. Такие устройства проходят проверку в рамках программы сертификации FIDO и содержат специальные защищённые элементы – аппаратные модули, из которых физически невозможно извлечь ключ. Никогда не устанавливайте аутентификационные приложения из непроверенных источников.
🎭 Атака вторая: «Обман аутентификатора»
Эта атака хитрее и технически изощрённее. Она напоминает карнавальный маскарад, где злоумышленник надевает маску настоящего сайта – и эта маска настолько убедительна, что даже браузер не замечает подмены.
Разберём механику по шагам.
Браузер доверяет сайтам через цифровые сертификаты – электронные документы, которые подтверждают: «да, этот сайт действительно является тем, за кого себя выдаёт». Эти сертификаты выдаются специальными организациями – центрами сертификации. Список доверенных центров хранится в браузере и операционной системе.
Если злоумышленник сможет добавить в этот список свой собственный центр сертификации, он получит возможность выпускать сертификаты для любых сайтов – в том числе для bank.com. Браузер жертвы будет считать их подлинными, потому что они подписаны «доверенным» (с точки зрения заражённой системы) источником.
Дальше атака развивается так:
- Злоумышленник устанавливает на компьютер жертвы свой корневой сертификат – через вредоносное ПО или социальную инженерию.
- Он поднимает собственный сервер, который выдаёт себя за bank.com, и выпускает для него сертификат с помощью своего центра.
- Трафик жертвы перенаправляется на этот поддельный сервер – например, через подмену DNS-записей на стороне клиента или с помощью прокси.
- Когда жертва открывает bank.com, она видит знакомый сайт с зелёным замочком в адресной строке и ничего не подозревает.
- Сервер злоумышленника тайно соединяется с настоящим bank.com и получает от него настоящий криптографический вызов.
- Этот вызов передаётся жертве. Жертва подтверждает вход – своим настоящим закрытым ключом, который хранится на её аутентификаторе.
- Подписанный ответ возвращается злоумышленнику, который немедленно передаёт его на настоящий bank.com.
- Банковский сервер получает корректную подпись, проверяет её – и впускает злоумышленника в аккаунт жертвы.
Это так называемая релейная атака. Жертва реально подписала реальный вызов от реального сервера. Злоумышленник просто оказался посередине и воспользовался подписью в нужный момент. Никакого взлома криптографии – только обман контекста.
Важный нюанс: эта атака требует предварительной компрометации устройства жертвы. Злоумышленник должен установить корневой сертификат, что невозможно сделать удалённо без уязвимости в системе или без согласия (пусть и обманного) самого пользователя. Это очень высокий порог входа по сравнению с обычным фишингом, где достаточно просто купить похожее доменное имя.
Защита здесь многоуровневая. Операционные системы должны строго контролировать установку корневых сертификатов и предупреждать пользователя о подобных действиях. Технология HSTS (принудительное использование защищённого соединения) добавляет ещё один барьер. Механизм Certificate Pinning (привязка сертификата) позволяет приложению заранее «запомнить», какой именно сертификат должен быть у конкретного сайта, и отклонять любые другие – но реализовать его технически сложнее.
Помимо двух атак, описанных выше, исследователи выделяют целый ряд теоретически возможных векторов компрометации.
Компрометация сервера
Если злоумышленник взламывает серверную базу данных и похищает открытые ключи пользователей – это почти ничего ему не даёт. Открытый ключ по определению является публичным и сам по себе бесполезен для входа в систему. Сравните это с утечкой базы паролей, после которой миллионы пользователей мгновенно оказываются под угрозой. Разница колоссальная.
Тем не менее взломанный сервер может использоваться для атак типа «отказ в обслуживании» или для подмены вызовов – но это не позволяет похитить учётные данные.
Вредоносные расширения браузера
Расширения браузера работают в привилегированном контексте и теоретически могут перехватывать или подменять запросы WebAuthn. Если расширение способно показать пользователю поддельное всплывающее окно с запросом на подтверждение – пользователь может случайно авторизовать нежелательную операцию. Это требует установленного вредоносного расширения – снова высокий порог входа.
Социальная инженерия
Самое старое оружие в арсенале мошенников. Никакая криптография не защитит, если пользователя убедят нажать «Подтвердить» на нужный запрос в нужный момент. Например, злоумышленник звонит жертве, представляется сотрудником банка и просит «подтвердить личность» – в этот момент он сам пытается войти в аккаунт жертвы и добивается того, чтобы жертва подтвердила запрос на своём устройстве.
Большая картина: насколько FIDO2 безопаснее паролей?
Если оценивать честно, FIDO2 действительно делает то, что обещает: существенно поднимает планку для злоумышленников.
Классический фишинг работает потому, что его легко масштабировать. Разослать миллион писем со ссылкой на поддельный сайт стоит копейки. Кто-нибудь обязательно введёт свой пароль – и злоумышленник это получит немедленно, без каких-либо дополнительных действий.
С ключами доступа этот сценарий не работает. Чтобы скомпрометировать аккаунт, защищённый FIDO2, злоумышленнику нужно:
- Получить физический или программный доступ к устройству жертвы, или
- Убедить жертву установить вредоносный сертификат или аутентификатор, и при этом
- Провести сложную техническую операцию по перенаправлению трафика и ретрансляции вызовов.
Это совсем не то же самое, что отправить фишинговое письмо. Это целенаправленная, дорогостоящая операция против конкретной жертвы. Для массового мошенничества – нерентабельно. Именно поэтому утверждение об устойчивости ключей доступа к фишингу в целом верно – с оговоркой, что абсолютной защиты не существует.
Что нужно, чтобы защита работала надёжно
Технология – это только часть уравнения. Чтобы FIDO2 работал так, как задумано, нужно соблюдать несколько условий.
Используйте сертифицированные аутентификаторы. Аппаратные ключи безопасности (например, YubiKey или аналоги) с сертификацией FIDO содержат защищённые элементы, из которых физически невозможно извлечь закрытый ключ. Встроенные аутентификаторы в современных смартфонах и ноутбуках (Face ID, Touch ID, Windows Hello) также используют аппаратно защищённые хранилища ключей.
Следите за здоровьем своей операционной системы. Обе описанные атаки начинаются с компрометации устройства. Обновляйте операционную систему, не устанавливайте ПО из непроверенных источников, следите за тем, какие расширения установлены в вашем браузере.
Будьте внимательны к нестандартным запросам на подтверждение. Если вас просят «подтвердить вход» в тот момент, когда вы сами ничего не инициировали – это красный флаг. Настоящий банк или сервис не будет звонить вам и просить нажать кнопку.
Организациям стоит обратить внимание на механизм аттестации. FIDO2 включает в себя возможность проверки подлинности аутентификатора на стороне сервера – так называемую аттестацию. Это позволяет серверу убедиться, что пользователь использует именно сертифицированное устройство, а не самодельный или заражённый аутентификатор. Развитие и внедрение этого механизма – одно из ключевых направлений повышения надёжности FIDO2.
Итог: шаг вперёд, но не финишная черта
FIDO2 и ключи доступа – это не просто очередное обновление к паролям. Это принципиально другой подход к аутентификации, который устраняет целый класс угроз, с которыми пароли просто не справляются. Привязка к домену, хранение секрета только на устройстве пользователя, отсутствие передаваемого секрета – всё это делает классический фишинг практически бесполезным против этой технологии.
Вместе с тем исследования 2025 года подтверждают: уязвимости существуют. Они требуют значительно больших ресурсов и предварительного доступа к системе жертвы, чем обычная фишинговая кампания, – но они реальны. «Заражённый аутентификатор» и «Обман аутентификатора» – это не теоретические страшилки, а реализованные и проверенные сценарии.
Алгоритмы не лучше нас – они просто другие. И FIDO2 в этом смысле честен: он не обещает победить всех злоумышленников навсегда. Он обещает сделать атаку на ваш аккаунт настолько дорогостоящей и сложной, что большинству мошенников это просто невыгодно. А для цифровой безопасности – это уже очень много.