Get your free and exclusive 80-page Banking Passkey Report
revolut passkeys

Revolut Passkeys:大胆之举,但仍有改进空间

Revolut 已悄然推出 Passkeys。在我们的全面分析中,了解此举对银行安全、用户体验的影响以及有待改进之处。

Vincent Delitz

Vincent

Created: July 15, 2025

Updated: July 16, 2025


See the original blog version in English here.

WhitepaperBanking Icon

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

1. 引言#

在数字银行领域,既要保证强大的安全性,又不能牺牲用户体验,这种需求催生了许多创新解决方案。其中,作为用户认证新标准的 Passkeys 格外引人注目。总部位于伦敦的领先新型银行 Revolut,最近已悄然开始为其个人和企业账户推出 Passkeys。这一战略举措不仅顺应了市场对更安全、更便捷数字体验日益增长的需求,也让 Revolut 成为了**银行界采用 Passkeys 的先驱**。

PasskeyAssessment Icon

Get a free passkey assessment in 15 minutes.

Book free consultation

随着 Passkeys 的推出,Revolut 紧随科技巨头的步伐,加入了由 CoinbaseWhatsApp任天堂Uber 引领的 Passkeys 浪潮。在金融领域,Revolut 是首批(如果不是迄今为止规模最大的)推出 Passkeys 的银行之一。

免责声明:我们预计在未来几周内,Passkeys 将会更大规模地逐步推出,并且其中的错误也将得到修复。我们将相应地更新这篇文章。当前版本截至 2024 年 2 月 7 日。

2. Passkeys 的本质及其重要性#

Passkeys 代表了无密码认证的下一个阶段,为用户提供了一种无缝且安全的账户访问方式。与传统密码不同,Passkeys 无需用户记住复杂的密码,而是依赖于非对称加密技术,为每个用户和设备生成唯一的密钥。这种方法不仅通过降低网络钓鱼攻击和数据泄露的风险来增强安全性,还简化了登录流程,用户只需使用 Face ID、Touch ID 或 Windows Hello 即可,从而改善了整体用户体验。

3. Revolut 的 Passkey 推出:创新与挑战并存#

Revolut 采取了分阶段引入 Passkeys 的策略,并且没有同时为企业账户和个人账户推出所有功能。我们在研究中发现的主要差异如下表所示:

功能Revolut 个人账户Revolut 企业账户
登录页面显示 Passkey 登录按钮
在新设备上成功登录后弹出 Passkey 推广窗口是,但在所有设备上均未成功是,在所有设备上均显示,但仅在 Windows 11 上成功创建 Passkey
账户安全设置中提供 Passkey 设置是,但没有创建 Passkey 的按钮
原生 iOS / Android 应用支持 Passkeys

3.1 Revolut Passkey 集成的优势#

在 Revolut 的 Passkey 集成中,以下几个方面值得肯定:

  • 在银行领域确保数字领导地位: 通过引领 Passkey 的采用,Revolut 不仅巩固了其在银行领域的数字领导者地位,还鼓励了其他金融机构效仿。
  • 改善用户体验: Passkeys 是最简单的用户认证形式,因为用户不需要第二台设备进行 MFA,也无需记住复杂的密码。
  • 节省 SMS OTP 成本: 在企业级项目中,推动 Passkey 计划的动力通常不仅是用户体验的提升和安全性的好处,还包括为过时且安全性较低的 SMS OTP(在银行中仍广泛使用)节省巨额成本

3.2 有待改进之处#

虽然 Revolut 迈向 Passkey 集成的大胆一步值得称赞,但这次推出并非没有瑕疵。

  • 缺乏信息丰富的 Passkey 资源: 尽管已经向用户提供了相关功能,但官方却没有任何 Passkey 常见问题解答或用户指南(我们没有找到任何相关资料),这表明在推广沟通上存在差距。提供详细的文档可以帮助揭开 Passkeys 的神秘面纱,促进所有用户更平稳地过渡。
  • Passkey 用户体验不一致: 观察发现,Passkey 功能的可用性和功能性在不同设备和平台上有所不同。确保一致的用户体验,即 Passkey 设置能够可靠显示,并且 Passkey 推广弹窗能够真正引导至创建 Passkey 的流程(在我们的测试中,只有在 Windows 11 上才成功),这将提升用户的信心。
  • 缺少 Conditional UI 引入 Conditional UI 可能会改变游戏规则。通过提供不仅无密码而且无用户名的登录方式来提升用户体验,将进一步简化登录过程,使其更加直观。
  • 没有原生应用集成: 目前,Revolut 的“移动优先”策略并未扩展到其原生 iOSAndroid 应用中的 Passkey 支持。将 Passkeys 与原生应用集成将能充分利用 iOS 和 Android 设备对 Passkey 的高度准备就绪状态
  • 跨平台认证不统一: 弥合网页和原生应用之间 Passkey 认证的鸿沟是一个复杂的挑战(有关示例设置的更多技术细节,请阅读这篇博文)。然而,创建一个允许在网页应用、iOS 应用和 Android 应用之间共享 Passkeys 的统一认证机制,可以增强安全性和用户便利性。
Revolut-logo

Revolut has introduced passkeys

Join them

接下来,我们将更深入地探讨 Revolut 个人和企业账户,以及 Passkeys 在特定设备和平台上的推出情况。

4. Revolut 企业账户 Passkeys 分析#

我们首先仔细研究 Revolut 企业账户的网页应用,然后再分析其原生应用。

4.1 Revolut 企业网页应用#

为保持下文简洁,我们仅重点介绍特定的平台、设备和浏览器组合。

请注意,您只有在首次使用现有认证方法成功登录后,才会收到一次来自 Revolut 的 Passkey 弹窗。要再次触发该弹窗,您需要删除 Revolut 的 Cookie 或在无痕/隐私浏览器模式下访问该网站。

当您访问 Revolut 企业版的登录页面时,您会立刻注意到一个醒目的新登录选项,位于电子邮件输入框下方、Google / Apple 社交登录之上,标签为:Continue with passkey(使用 Passkey 继续)

4.1.1 Windows 11 + Chrome#

Passkeys 推广弹窗如下所示:

有趣的是,对于 Revolut 企业账户,尽管主要用户标识符是电子邮件地址,但 Passkeys 却与电话号码绑定,这可能是因为 Revolut 个人账户首先是使用电话号码创建的。

现在您已在 Windows 11 和 Chrome 上成功创建了 Passkey,您可以登出并在登录页面上点击 Continue with passkey。随后,浏览器将弹出处理 Passkey 认证的用户界面:

与 Revolut 企业账户当前的登录流程(需要提供密码并通过原生应用中的推送通知或电子邮件魔法链接作为第二因素来确认身份)相比,Passkey 登录不需要额外的认证方法,因为 Passkeys 本身就具备双因素认证(2FA)的功能。这代表了用户体验的显著提升,尤其是在桌面设备上,因为它消除了切换上下文或使用第二台设备的需要。

4.1.2 Android + Chrome#

Android 14 和 Chrome 121 中,Continue with passkey 登录按钮非常显眼。

4.1.3 iOS + Safari#

iOS 17.3 和 Safari 中,Continue with passkey 登录按钮同样非常显眼。

4.2 Revolut 企业原生应用#

Revolut 企业版的原生 iOS 和 Android 应用目前尚不支持 Passkeys。因此,在 iOS(见截图)或 Android 应用的“安全与隐私”部分没有 Passkey 选项:

5. Revolut 个人账户#

首先需要注意的一个区别是,Revolut 个人账户使用电话号码作为主要用户标识符。认证方式是通过一个 6 到 12 位的密码,而不是传统密码;而 Revolut 企业账户则使用一个 4 位密码,并在默认登录流程中使用密码。

5.1 Revolut 个人网页应用#

为保持下文简洁,我们仅重点介绍特定的平台、设备和浏览器组合。

Substack Icon

Subscribe to our Passkeys Substack for the latest news.

Subscribe

5.1.1 macOS + Safari#

首次登录时(或在删除 Cookie / 使用隐私浏览器模式后),会显示以下 Passkey 推广弹窗:

出于某种原因,在上一屏幕点击 Add passkey 后,我们被直接转到了已登录页面,而没有机会通过 Touch ID 启动 Passkey 创建流程。在调查此问题时,我们在 Safari 开发者工具的网络标签页中找到了相应的 API 调用 (https://sso.revolut.com/api/challenges /webauthn)。然而,此 API 调用返回了 HTTP 403 状态码,表明该功能显然尚未完全推出。

与 Revolut 企业账户不同,Revolut 个人账户的账户设置中有一个 Passkeys 部分:

5.1.2 iOS + Safari#

首次登录时(或在删除 Cookie / 使用隐私浏览器模式后),会显示以下 Passkey 推广弹窗:

5.2 Revolut 个人原生应用#

Revolut 个人账户的原生 iOS 和 Android 应用目前尚不支持 Passkeys。然而,iOS 应用和 Android 应用(见下方截图)的安全设置部分都有一个 Passkeys 的设置项:

6. 技术分析#

下面,我们将深入探讨一些技术方面的问题。

Slack Icon

Become part of our Passkeys Community for updates & support.

Join

6.1 Revolut SSO 中针对不同账户类型的登录选项#

我们研究了技术实现的具体细节。主要是,每次加载登录页面时,都会向后端发送一个 client_id,后端会根据账户类型返回不同的认证选项:

  • 企业账户: Apple、Google、Passkeys (WebAuthn) 登录
  • 个人账户: Apple、Google 登录

有趣的是,Revolut 个人账户的 Passkey 选项已经准备好但尚未激活(见下方截图),这表明推出可能迫在眉睫,并且可以迅速实施,从而也为个人账户启用一个 “Continue with passkey” 按钮。

显示登录选项的决定是基于 client_id 的。例如:https://sso.revolut.com/signin?client_id=o3r08ao16zvdlf2y5fde 出于实验目的,我们将 client_id 更改为一个随机值,这在 Windows 11 的 Chrome 浏览器上显示了所有登录选项(包括在电话号码和电子邮件作为登录标识符之间切换的可能性)。

6.2 PublicKeyCredential-RequestOptions 分析#

在登录流程中,我们分析了 PublicKeyCredentialRequestOptions。值得注意的是,allowCredentials 并未设置,而信赖方 ID (relying party ID) 被设置为“sso.revolut.com”。从安全角度来看,将 userVerification 设置为“preferred”是一个谨慎的选择。

publicKeyCredentialRequestOptions.json
{ "allowCredentials": [], "challenge": "WHAxZnJDaDB1VnNXMmlOQW1hVndqdTYzSzF3emR3b3gtRFRCWHVxRjJYRQ", "rpId": "sso.revolut.com", "userVerification": "preferred" }

6.3 关联文件分析#

我们还分析了向原生 iOS 和 Android 应用的推广可能会是什么样子,因此我们使用了 sso.revolut.com 的信赖方 ID,并附加了 assetlinks.json (Android) 和 apple-app-site-association (iOS) 文件的路径,以查看这些文件可能已经包含哪些关于 Passkey 推出的信息。

6.3.1 assetlinks.json#

尝试访问 https://sso.revolut.com/.well-known/assetlinks.json 会导致 nginx 返回 404 错误,这表明文件管理使用了反向代理。通过使用域名 https://app.revolut.com,我们在 https://app.revolut.com/.well-known/assetlinks.json 找到了 assetlinks.json,它为 Revolut 个人账户提供了有价值的信息:

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,我们还在 https://business.revolut.com/.well-known/assetlinks.json 发现了 Revolut 企业版的关联文件:

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" ] } } ]

由于 Revolut 个人账户和企业账户的 assetlinks.json 文件都不位于信赖方 (relying party) ID 指定的用于关联原生 Android 应用和网页应用的路径上,因此需要进行哪些更改才能使 Passkeys 在网页和原生 Android 应用之间工作,这一点非常有趣。

6.3.2 apple-app-site-association#

Revolut 个人账户的 apple-app-site-association 文件可在 https://revolut.com/.well-known/apple-app-site-association 访问,其中尚未添加有关 Web 凭证的详细信息:

apple-app-site-association
{ "applinks": { "apps": [], "details": [ { "appID": "QUZEZSEARC.com.revolut.revolut", "paths": ["/app/*"] }, { "appID": "QUZEZSEARC.com.revolut.test", "paths": ["/app/*"] } ] } }

相比之下,Revolut 企业版的 apple-app-site-association 文件包含更全面的信息,特别是在 Web 凭证方面。这表明 iOS 应用 QUZEZSEARC.com.revolut.business 已配置为与 Revolut 企业网页应用共享凭证。该文件可在 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 的情况一样,鉴于网页应用的信赖方 (relying party) ID (sso.revolut.com) 没有在预期位置找到关联文件,如何在原生应用和网页应用之间实现 Passkeys 的跨平台共享仍然是一个有趣的问题。

7. 结论#

总而言之,Revolut 推出 Passkey 是在银行领域革新用户认证的重要一步。通过采用 Passkeys,Revolut 不仅通过摆脱传统密码提高了安全性,还通过更简单的登录过程显著增强了用户体验。尽管在初步推出中面临挑战,包括跨设备的不一致性和缺乏原生应用支持,但 Revolut 的努力突显了其对数字创新和以用户为中心的设计的承诺。

技术分析表明,虽然无缝 Passkey 集成的基础已经奠定,但仍有待改进的领域。加强沟通、确保跨平台的一致性以及将支持扩展到原生移动应用是关键的后续步骤。解决这些问题不仅将完善 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

Share this article


LinkedInTwitterFacebook

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