Revolut незаметно внедряет Passkeys. В нашем подробном анализе мы расскажем о влиянии этого нововведения на безопасность в банкинге, пользовательский опыт и о том, что еще можно улучшить.
Vincent
Created: July 15, 2025
Updated: July 16, 2025
See the original blog version in English here.
Want to learn how top banks deploy passkeys? Get our 80-page Banking Passkeys Report (incl. ROI insights). Trusted by JPMC, UBS & QNB.
Get ReportВ цифровом банкинге потребность в надежной защите без ущерба для пользовательского опыта приводит к появлению инновационных решений. Среди них выделяются Passkeys как новый стандарт аутентификации пользователей. Revolut, ведущий необанк из Лондона, недавно и без громких анонсов начал внедрять Passkeys как для личных, так и для бизнес-аккаунтов. Этот стратегический шаг не только соответствует растущему спросу на более безопасные и удобные цифровые сервисы, но и делает Revolut пионером во внедрении Passkeys в банковском секторе.
С запуском Passkeys Revolut следует тренду технологических гигантов: волну внедрения Passkeys возглавляют Coinbase, WhatsApp, Nintendo и Uber. В финансовом секторе Revolut — один из первых, если не самый крупный на сегодняшний день банк, внедривший Passkeys.
Recent Articles
♟️
Mastercard Identity Check: все, что нужно знать эмитентам и мерчантам
♟️
Ключи доступа для платежных провайдеров: как создать сторонний SDK
♟️
Сервер контроля доступа EMV 3DS: Passkeys, FIDO и SPC
♟️
Динамическое связывание с Passkeys: Secure Payment Confirmation (SPC)
♟️
Ландшафт платежных Passkeys: 4 основные модели интеграции
Отказ от ответственности: мы ожидаем, что в ближайшие недели Passkeys будут внедряться более широко, а ошибки — исправляться. Мы будем обновлять статью по мере поступления новой информации. Текущая версия от 7 февраля 2024 года.
Passkeys — это следующий этап развития беспарольной аутентификации, предлагающий пользователям простой и в то же время безопасный способ доступа к своим аккаунтам. В отличие от традиционных паролей, Passkeys избавляют от необходимости запоминать сложные комбинации. Вместо этого они используют асимметричную криптографию с ключами, уникальными для каждого пользователя и устройства. Этот метод не только повышает безопасность, снижая риск фишинговых атак и утечек данных, но и упрощает процесс входа. Пользователям достаточно использовать Face ID, Touch ID или Windows Hello, что улучшает общий пользовательский опыт.
Revolut придерживается поэтапного внедрения Passkeys, а также развертывает функции для бизнес- и личных аккаунтов не одновременно. Основные различия, которые мы заметили в ходе нашего исследования, приведены в таблице ниже:
Функция | Revolut Personal | Revolut Business |
---|---|---|
Кнопка входа с помощью Passkey на странице входа | Нет | Да |
Всплывающее окно с предложением создать Passkey после успешного входа на новом устройстве | Да, но создание не удалось ни на одном устройстве | Да, на всех устройствах, но создание Passkey успешно только на Windows 11 |
Настройки Passkeys в разделе безопасности аккаунта | Да, но нет кнопки для создания Passkey | Нет |
Поддержка Passkeys в нативных приложениях для iOS / Android | Нет | Нет |
Следующие аспекты интеграции Passkeys в Revolut заслуживают положительной оценки:
Хотя смелый шаг Revolut к интеграции Passkeys заслуживает похвалы, внедрение не обошлось без недостатков.
Далее мы подробнее рассмотрим личные и бизнес-аккаунты Revolut и то, как Passkeys внедряются на отдельных устройствах и платформах.
Начнем анализ Passkeys в Revolut Business с веб-приложения, а затем перейдем к нативным приложениям.
Чтобы изложение было кратким, далее мы рассмотрим только определенные комбинации платформ, устройств и браузеров.
Обратите внимание, что всплывающее окно с предложением создать Passkey от Revolut появляется только один раз, после успешного входа с использованием существующих методов аутентификации. Чтобы снова вызвать это окно, нужно либо удалить cookie-файлы Revolut, либо зайти на сайт в режиме инкогнито / приватного просмотра.
Когда вы заходите на страницу входа в Revolut Business, вы сразу заметите новую заметную опцию входа, расположенную под полем для ввода email и над кнопками входа через Google / Apple, с надписью: «Продолжить с помощью Passkey».
Всплывающее окно с предложением создать Passkey выглядит следующим образом:
Интересно, что для Revolut Business, хотя основным идентификатором пользователя является адрес электронной почты, Passkeys привязываются к номеру телефона. Вероятно, это связано с тем, что личные аккаунты Revolut изначально создаются с использованием номера телефона.
Теперь, когда вы успешно создали Passkey на Windows 11 в Chrome, вы можете выйти из системы и нажать «Продолжить с помощью Passkey» на странице входа. После этого появится интерфейс браузера для обработки аутентификации с помощью Passkey:
В отличие от текущей процедуры входа в Revolut Business, где нужно вводить пароль и подтверждать свою личность через push-уведомление в нативном приложении или по магической ссылке в письме в качестве второго фактора, для входа с помощью Passkey не требуется дополнительный метод аутентификации, поскольку Passkeys по своей сути уже являются двухфакторной аутентификацией (2FA). Это значительное улучшение пользовательского опыта, особенно на десктопных устройствах, так как избавляет от необходимости переключать контекст или использовать второе устройство.
На Android 14 в Chrome 121 кнопка входа «Продолжить с помощью Passkey» очень заметна.
На iOS 17.3 в Safari кнопка входа «Продолжить с помощью Passkey» также очень заметна.
Нативные приложения для iOS и Android для Revolut Business пока не поддерживают Passkeys. Поэтому в разделе «Безопасность и конфиденциальность» приложения для iOS (см. скриншот) или Android нет опции Passkey:
Одно из первых отличий, которое стоит отметить, — Revolut Personal использует номер телефона в качестве основного идентификатора пользователя. Вместо пароля аутентификация осуществляется с помощью 6-12-значного пин-кода, в то время как Revolut Business использует 4-значный пин-код и пароль в стандартном процессе входа.
Чтобы изложение было кратким, далее мы рассмотрим только определенные комбинации платформ, устройств и браузеров.
Следующее всплывающее окно с предложением создать Passkey отображается при первом входе (или после удаления cookie-файлов / в режиме приватного просмотра):
По какой-то причине после нажатия «Добавить Passkey» на предыдущем экране нас сразу перенаправило на страницу входа в аккаунт, не дав возможности инициировать процедуру создания Passkey с помощью Touch ID. Изучив проблему, мы нашли соответствующий вызов API (https://sso.revolut.com/api/challenges/webauthn) во вкладке сети инструментов разработчика Safari. Однако этот вызов API вернул код состояния HTTP 403, что, по-видимому, указывает на то, что функция еще не полностью развернута.
В отличие от бизнес-аккаунта Revolut, в настройках личного аккаунта Revolut есть раздел для Passkeys:
Следующее всплывающее окно с предложением создать Passkey отображается при первом входе (или после удаления cookie-файлов / в режиме приватного просмотра):
Нативные приложения для iOS и Android для Revolut Personal пока не поддерживают Passkeys. Однако и в приложении для iOS, и в приложении для Android (см. скриншоты ниже) есть раздел настроек безопасности для Passkeys:
Ниже мы углубимся в некоторые технические аспекты.
Мы изучили особенности технической реализации. В основном, каждый раз при загрузке страницы входа на бэкенд отправляется client_id, который затем возвращает различные варианты аутентификации в зависимости от типа аккаунта:
Интересно, что опция Passkey для личных аккаунтов Revolut уже подготовлена, но еще не активирована (см. скриншот ниже). Это указывает на то, что внедрение может быть не за горами и будет реализовано быстро, добавив кнопку «Продолжить с помощью Passkey» и для личных аккаунтов.
Решение о том, какие опции входа отображать, принимается на основе client_id. Например: https://sso.revolut.com/signin?client_id=o3r08ao16zvdlf2y5fde. В экспериментальных целях мы изменили client_id на случайное значение, что на Windows 11 в Chrome показало все опции входа (включая возможность переключения между номером телефона и email в качестве идентификатора для входа).
Во время процедуры входа мы проанализировали PublicKeyCredentialRequestOptions. Примечательно, что allowCredentials не были установлены, в то время как relying party ID был установлен как «sso.revolut.com». Установка userVerification в значение «preferred» является разумным выбором с точки зрения безопасности.
publicKeyCredentialRequestOptions.json{ "allowCredentials": [], "challenge": "WHAxZnJDaDB1VnNXMmlOQW1hVndqdTYzSzF3emR3b3gtRFRCWHVxRjJYRQ", "rpId": "sso.revolut.com", "userVerification": "preferred" }
Мы также проанализировали, как может выглядеть внедрение в нативных приложениях для iOS и Android. Для этого мы использовали relying party ID «sso.revolut.com» и добавили пути к файлам assetlinks.json (Android) и apple-app-site-association (iOS), чтобы увидеть, какую информацию эти файлы, возможно, уже содержат относительно внедрения Passkeys.
Попытка доступа к https://sso.revolut.com/.well-known/assetlinks.json приводит к ошибке 404 от nginx, что предполагает использование обратного прокси для управления файлами. Используя домен https://app.revolut.com, мы нашли assetlinks.json по адресу https://app.revolut.com/.well-known/assetlinks.json, который предоставил полезную информацию для Revolut Personal:
assetlinks.json[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.revolut.revolut", "sha256_cert_fingerprints": [ "9C:9B:E0:71:35:E9:72:78:02:82:C2:E5:D2:7D:A0:6E:CB:8E:E3:AD:FC:75:30:39:17:DD:F6:6D:6F:AA:EF:A4", "11:F2:5B:D6:30:60:CE:B4:EF:EC:48:7C:C8:1F:6D:3D:D0:3A:75:C3:E9:D2:C5:32:3D:69:55:9D:C1:7F:6A:23" ] } }, { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.revolut.revolut.test", "sha256_cert_fingerprints": [ "90:EC:5D:75:11:4E:67:B7:F1:3F:C0:D0:57:85:9B:78:0D:A0:BA:49:E2:22:4C:60:42:7E:D2:EA:00:84:D1:B7" ] } } ]
Через https://well-known.dev мы также обнаружили файл ассоциации для Revolut Business по адресу https://business.revolut.com/.well-known/assetlinks.json:
assetlinks.json[ { "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.revolut.business", "sha256_cert_fingerprints": [ "9C:9B:E0:71:35:E9:72:78:02:82:C2:E5:D2:7D:A0:6E:CB:8E:E3:AD:FC:75:30:39:17:DD:F6:6D:6F:AA:EF:A4", "9F:07:80:54:0F:3A:C9:6F:D7:26:02:8A:37:C5:CD:48:DB:A3:67:EE:2D:93:B3:9D:DE:51:BC:F2:2E:7F:B1:88", "F8:F5:95:3A:C3:85:DB:0D:85:C3:56:E9:9B:37:BD:CA:4D:EE:B0:D2:52:C6:2A:36:4F:BA:C8:3B:C6:AF:3A:C2" ] } } ]
Поскольку ни файл assetlinks.json для Revolut Personal, ни для Revolut Business не находится по пути, указанному relying party ID для связывания нативного Android-приложения с веб-приложением, интересно, какие изменения необходимы, чтобы Passkeys работали как в веб-версии, так и в нативных приложениях для Android.
Файл apple-app-site-association для Revolut Personal доступен по адресу https://revolut.com/.well-known/apple-app-site-association, и в нем пока нет информации о web credentials:
apple-app-site-association{ "applinks": { "apps": [], "details": [ { "appID": "QUZEZSEARC.com.revolut.revolut", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.test", "paths": ["/app/*"] } ] } }
В отличие от этого, файл apple-app-site-association для Revolut Business содержит более полную информацию, в частности, о web credentials. Это указывает на то, что приложение для iOS QUZEZSEARC.com.revolut.business настроено для обмена учетными данными с веб-приложением Revolut Business. Он доступен по адресу https://business.revolut.com/.well-known/apple-app-site-association.
{ "applinks": { "apps": [], "details": [ { "appID": "QUZEZSEARC.com.revolut.business", "paths": [ "/", "/accept-payments/in-person", "/accept-payments/online-requests", "/accept-payments/web-integrations", "/accounts", "/accounts/connect-external", "/accounts/connect-external/*", "/accounts/new", "/accounts/transactions", "/account-transactions/*", "/action/confirm", "/add-card-to-wallet", "/advances", "/advances/manual-repayment", "/app/*", "/application", "/approvals/requests", "/article/*", "/articles/*", "/bug-report", "/card-reader/order", "/cards", "/cards/*", "/cards/*/sca-counters-exceed", "/cards/*/sca-counters-warn", "/cards/*/security", "/cards/*/settings", "/cards/*/transactions", "/cashback", "/catalogue/manage", "/challenges/*", "/consumer-tickets/*", "/crypto", "/e-commerce", "/exchange", "/expense-documents/*", "/expenses", "/expenses/*", "/faq", "/faq/*", "/favourites", "/form", "/form/*", "/help-centre", "/help-centre/topic/*", "/hub/integrations", "/insurance", "/invoices", "/invoices/*", "/marketplace", "/merchant", "/merchant/*", "/new-card-acceptance-pricing", "/offboarding", "/open-onboarding-application-next-step", "/orders", "/pay-in-store/order/*", "/payments", "/payments/scheduled", "/payments/transfers", "/plan/subscriptions", "/points", "/pricing-plans", "/qr-code-sign-in/*", "/referrals", "/referrals/invite-contacts", "/referrals/invitee-details/*", "/request-info", "/request-info/merchant", "/requests", "/requests/request", "/reset-password", "/rewards", "/sales/revolut-me", "/statements", "/savings", "/send", "/settings/accounts-and-documents", "/settings/business-profile", "/settings/manage-devices", "/settings/merchant-profile", "/settings/merchant-profile/branding", "/settings/notifications", "/settings/personal-profile", "/settings/trusted-merchants", "/settings/vat-number", "/signup/invite", "/stories/*", "/story/*", "/subscriptions", "/team", "/team/approvals", "/team/member/add", "/team/roles", "/tip/settings", "/topup", "/transactions", "/transactions/*/add-expense-info", "/transactions/*/add-info-flow", "/transactions/*/chargeback-status", "/transfers", "/treasury", "/upgrade", "/vouchers" ] } ] }, "webcredentials": { "apps": ["QUZEZSEARC.com.revolut.business"] } }
Как и в случае с Android, остается интригующим вопрос, как можно реализовать кроссплатформенный обмен Passkeys между нативным и веб-приложением, учитывая, что relying party ID для веб-приложения (sso.revolut.com) не имеет файлов ассоциации в ожидаемых местах.
В заключение, внедрение Passkeys в Revolut — это значительный шаг к революции в аутентификации пользователей в банковском секторе. Приняв Passkeys, Revolut не только повышает безопасность, отказываясь от традиционных паролей, но и значительно улучшает UX за счет более простого процесса входа. Несмотря на проблемы на начальном этапе внедрения, включая несоответствия на разных устройствах и отсутствие поддержки в нативных приложениях, усилия Revolut подчеркивают приверженность цифровым инновациям и ориентированному на пользователя дизайну.
Технический анализ показывает, что, хотя основа для бесшовной интеграции Passkeys заложена, есть области, требующие улучшения. Улучшение коммуникации, обеспечение согласованности на всех платформах и расширение поддержки на нативные мобильные приложения — это критически важные следующие шаги. Решение этих вопросов не только усовершенствует реализацию Revolut, но и установит ориентир для отрасли, побуждая другие финансовые учреждения в ближайшее время внедрить Passkeys (см. также нашу статью о соответствии Passkeys директиве PSD2).
Next Step: Ready to implement passkeys at your bank? Our 80-page Banking Passkeys Report is available. Book a 15-minute briefing and get the report for free.
Get the Report
Enjoyed this read?
🤝 Join our Passkeys Community
Share passkeys implementation tips and get support to free the world from passwords.
🚀 Subscribe to Substack
Get the latest news, strategies, and insights about passkeys sent straight to your inbox.
Related Articles
Table of Contents