编辑

马克·芬登,Nok Nok Labs
Jonathan Grossar,万事达卡
Frank-Michael Kamm,捷捷克+开发
海娜·卡普尔,签证
Sue Koomen,美国运通
Gregoire Leleux,《世界线》
Alain Martin,泰雷兹
Stian Svedenborg,BankID BankAxept

1. 引言

全球电子商务蓬勃发展,预计到 2024 年底将达到 $6T以上 1。拥有在线销售产品的能力为商家提供了在当地市场之外销售商品和服务的绝佳机会;然而,它伴随着欺诈的增加。事实上,据估计,到 2023 年,全球电子商务欺诈大约达到 $48B1,其中美国占 42%,欧盟占 26%。

1.1 远程商务的当前挑战

电子商务欺诈有多种类型,但最普遍的类型是交易欺诈。当使用被盗的卡和/或被盗的凭证在商家网站上进行交易时,就会发生交易欺诈。知道如何访问和使用被盗凭据的人在暗网上很容易获得它们。

为了解决这些问题,已经采取了措施来提高远程商务交易的整体安全性,包括支付凭证的令牌化和持卡人身份验证。在一些国家/地区,法规强制要求采取其中一种或两种措施,例如印度或欧洲(第二项支付服务指令 PSD2)。这些法规旨在确保安全的远程交易;但是,它们增加了结账流程的复杂性,因为它们可能需要在商家和其他界面(例如银行的界面)之间切换。

遗憾的是,额外的身份验证可能会增加摩擦,从而导致购物车被放弃。放弃购物车的主要原因包括对商家网站的不信任或复杂的结帐流程。客户更喜欢简单的支付流程,不会增加摩擦,例如由于支付失败、需要在单独的设备上响应一次性密码 (OTP) 或需要登录银行应用程序而导致的摩擦。

1.2 FIDO 如何提供帮助

使用通过 Fast Identity Online (FIDO) 联盟标准启用的生物识别身份验证是一个机会,可以在身份验证过程中提供更好的用户体验,从而降低交易放弃的风险。

FIDO 已经建立了支持防网络钓鱼身份验证机制的标准,并且可以从本机应用程序和最流行的浏览器访问,从而在消费者使用的渠道中实现安全和一致的体验。FIDO 将“密钥”称为基于 FIDO 标准的 FIDO 凭证,供消费者用于无密码身份验证。

万维网联盟 (W3C) 开发了安全付款确认 (SPC)。SPC 是一个 Web API,旨在增强使用 FIDO 身份验证对支付交易进行身份验证时的消费者体验,并简化对当地法规(例如欧洲的 PSD2 和动态链接)的遵守。

1.3 范围

本白皮书旨在:

  • 定义安全付款确认 (SPC) 及其在使用 FIDO 验证付款交易时带来的好处

1 https://www.forbes.com/advisor/business/ecommerce 统计/#:~:text=%20global%20e%2Dcommerce%20market,显示%20companies%%20taking%20 优势。

  • 列出可以提供这些好处的当前 SPC 支付用例并说明消费者旅程 • 提供 SPC 支持的状态以及可以添加到 Web 标准中以进一步提高安全性和用户体验的增强功能列表

2. 安全付款确认 (SPC) 的好处

安全付款确认 (SPC) 是 WebAuthn 标准的扩展,旨在提供以下优势:

  • 在所有商户和银行之间保持一致的浏览器原生用户体验
  • 身份验证的加密证据(FIDO 断言),包括由 FIDO 身份验证器签名的交易详细信息
  • 跨域身份验证 – 例如,即使创建密钥时银行作为 Relying Party,商家也可以使用从银行收到的输入参数在其环境中使用密钥调用持卡人身份验证,因此无需将消费者重定向到银行以使用密钥进行身份验证。

2.1 浏览器原生用户体验

SPC 引入了一个标准化的支付上下文屏幕,其中显示商家标识符、卡标志、卡号的最后 4 位数字和交易金额等详细信息。邀请使用者明确同意显示的交易信息,然后进行身份验证。因此,SPC 可以被视为一种收集消费者对交易细节的同意的机制。

与标准 WebAuthn 一样,支付上下文屏幕由用户的浏览器控制,这使得常见的 JavaScript 演示攻击无效。该屏幕提供了更高的安全性,因为它确保恶意 Web 内容无法更改或掩盖向用户呈现的交易详细信息 – 浏览器显示始终呈现在触发网站的 Web 内容之上。图 1 描述了 chrome 中的 SPC 体验示例。

图 1 chrome 中的 SPC 体验示例

2.2 生成 FIDO 断言

使用 SPC,向消费者显示的交易相关信息(例如商家标识符和交易金额)将安全地发送到 FIDO 身份验证器,并由同一身份验证器签名(交易数据签名)。

身份验证器生成的 FIDO 断言加强了对某些法规的合规性,就像它对欧洲 PSD2 下的动态链接要求一样,因为商家标识符和交易金额将由身份验证器本身签名。当与第 2.1 节中描述的浏览器本机用户体验相结合时,依赖方可以确信向用户显示并同意交易详细信息。

2.3 跨域身份验证

在没有 SPC 的情况下使用 FIDO 时,使用信赖方创建密钥的使用者将始终需要位于信赖方的域中,才能使用该密钥进行身份验证。在远程商务支付用例中,这意味着消费者通常需要离开商家域并被重定向到银行的域进行身份验证。

使用 SPC,信赖方授权的任何实体都可以使用为该信赖方创建的密钥启动用户身份验证。例如,银行可能授权商家使用银行的 passkey 对持卡人进行身份验证。

请注意,依赖方授权实体调用 SPC 的机制可能会有所不同。例如,银行可以在 EMV 3DS 交互期间或通过与支付方案的其他集成与商家共享 FIDO 凭证。然后,商家将能够使用 SPC 通过密钥启动付款确认和身份验证流程,即使该密钥是通过银行创建的。最终,银行负责验证身份验证。

2.4 与其他标准的互操作性

SPC 可以与其他行业标准结合使用,例如 EMV 3-D Secure 和 Secure Remote Commerce (SRC),这两者都是 EMVCo 的全球性和可互操作标准。

3. SPC 用例

SPC 可用于简化各种远程商务结账场景中的付款,例如访客结账或使用存储在商家处的付款方式进行结账。

在每种支付方案中,依赖方可以是支付工具的发卡机构(银行)或代表银行的支付网络。

本章中提供的流程仅用于说明目的,可能需要遵守适用的法律和法规。

3.1 以银行为Relying Party的 SPC

密钥的创建可以在结帐过程之外或期间启动:

  • Within the banking interface: 
    • 例如,当消费者在银行应用程序中并向其银行注册密钥时,在这种情况下,密钥将与一张或多张支付卡以及消费者设备相关联
  • Within the merchant interface: 
    • 例如,当消费者在 EMV 3DS 流程期间由银行进行身份验证,并被提示在银行创建密钥以加快未来的结账速度时 – 在这种情况下,密钥将与用于交易的支付卡相关联(以及取决于银行实施的其他支付卡), 以及消费者使用的设备

图 2 描述了商家结账期间创建密钥的顺序(七个步骤),其中商家使用 EMV 3DS,消费者由其银行进行身份验证:

图 2:结账时创建通行密钥

密钥创建完成后,任何通过与银行或支付计划商定的机制从银行收到密钥信息(包括 FIDO 标识符和公钥)的商家都将能够使用 SPC。这种机制可能包括 EMV 3DS 或与支付计划的其他集成。例如,实施 EMV 3DS(即 2.32 版)的商家将能够通过以下步骤从 SPC 中受益:

1. 当商家启动 EMV 3DS 对消费者进行身份验证时,银行将决定是否需要对持卡人进行主动身份验证。如果决定对持卡人执行主动身份验证,银行可以首先检索与用于交易的卡关联的一个或多个通行密钥,验证消费者是否在同一注册设备上,然后将通行密钥信息返回给商家。

2. 商户将 SPC Web API 调用到支持 SPC 的浏览器,包括请求中的一些参数,例如密钥信息、卡/银行/网络徽标、商户标识符和交易金额。

3. 如果浏览器可以在消费者使用的设备上找到其中一个密钥的匹配项,则浏览器会向消费者显示徽标、商户标识符和交易金额,并提示使用密钥进行身份验证。

4. 认证结果将返回给商户,商户将与 EMV 3DS 协议共享这些结果以进行验证。

图 3 描述了使用 SPC 和 EMV 3DS 的身份验证流程示例,其中包含之前注册的密钥:

图 3:使用 SPC 和 EMV 3DS 的认证序列

3.2 以 Payment Scheme 作为Relying Party的 SPC

在某些支付场景中,支付方案可以是代表银行的依赖方,以消除银行部署 FIDO 基础设施的需要,从而更快地扩大通行密钥的采用范围。

密钥的创建可以在结帐过程之外或期间启动:

  • 在结账之外:例如,当消费者在银行应用程序中,并且银行邀请消费者创建密钥以实现更快、更安全的交易时,可以将支付方案作为依赖方创建密钥,并将由支付方案关联到一个或多个支付卡和消费者设备;或
  • 在结账之前、期间或之后:例如,系统可能会提示消费者创建密钥,以便在支持支付方案支付方式的商家处实现更快、更安全的交易。一旦银行验证了消费者的身份,该密钥将由支付方案与一张或多张支付卡和消费者设备相关联。图 4 描述了此序列。

图 4 结帐时创建通行密钥

密钥创建完成后,任何使用支付方案促进的身份验证的商家都将能够从 SPC 中受益:

  • 商家使用支付方案检查交易中使用的卡是否有可用的密钥,并从支付方案中检索密钥信息。
  • 商家使用商家标识符和交易金额调用 SPC Web API。
  • 如果浏览器可以在消费者使用的设备上找到其中一个密钥的匹配项,则浏览器会向消费者、卡/银行/网络徽标显示商户标识符和交易金额,然后提示使用密钥进行身份验证。
  • 身份验证结果将返回到验证结果的付款方案。付款方案在授权消息期间与银行共享这些结果,以便银行审查和批准交易。图 5 显示了此序列。

图 5:使用 SPC 的认证序列
(从左到右)
1. & 2.在商家的商店结账
3. 找到 通行密钥 ,显示交易详情并征得同意
4. 设备验证器提示持卡人输入手势
5. 手势确认
6. 商户完成交易

3.3 SPC 优势总结

SPC 提供的好处包括:

  • 跨域身份验证 – Relying Party 授权的任何商家都可以在交易期间请求生成 FIDO 断言,即使他们不是依赖方。这提供了更好的用户体验,因为执行使用者身份验证不需要重定向到依赖方。
  • Consistent user experience with increased trust – With SPC, the consumer has a consistent user  experience across all merchants and independently of who plays the role of relying party. In each  case, the consumer will see a window displayed by the browser, that includes payment details, the  logos of their card / bank / payment scheme, increasing the trust in using FIDO authentication for  their payments. 
    • 提高安全性 – 使用 SPC 时,FIDO 断言将在密码生成中包含付款详细信息,例如商家标识符和交易金额,因此很难在不被银行或支付计划检测到的情况下修改交易中的任何这些详细信息。这也简化了对当地法规的遵守,例如与动态链接相关的 PSD2 法规。

4. SPC 支持现状和未来增强

4.1 可用性

安全支付确认目前作为 W3C 候选推荐标准发布,并且正在努力将其作为身份验证方法包含在 EMVCo 规范中。

在撰写本文时,安全付款确认 API 的可用性仅限于:

  • Google Chrome 和 Microsoft Edge 浏览器
  • MacOS、Windows 和 Android 操作系统。

4.2 未来的增强功能

W3C Web 支付工作组继续致力于安全支付确认的开发工作和迭代,目标是提高消费者在 Web 上验证支付时的安全性和用户体验。

目前正在考虑的功能包括:

  • 在当前设备上没有可用凭证时改善用户和商家体验(即回退用户体验)
  • 通过向用户显示其他徽标(例如银行徽标和卡组织徽标)来提高消费者的信任度
  • 通过支持设备绑定来提高安全性,浏览器提供对浏览器/设备绑定密钥的访问
  • 考虑其他使用案例,例如定期付款或支持漫游和混合 FIDO 身份验证器

图 6 显示了一个正在审查的增强型 SPC 事务 UX 示例。

图 6:正在审查的 SPC 事务 UX

5. 总结

安全支付确认 (SPC) 是一种 Web 标准,旨在促进在支付交易期间使用强身份验证,并提供一流的用户体验,其中依赖方可以是银行或支付计划。

SPC 的主要好处是提供更好的用户体验,显示消费者通过 FIDO 身份验证批准的交易详细信息,并在商家对消费者进行身份验证时启用跨域身份验证,而无需重定向到依赖方(银行或支付计划)。

SPC 还有助于在 FIDO 签名中包含交易详细信息,这有助于提供更高的安全性和/或简化对当地法规的遵守。

6. 鸣谢

作者感谢以下人员(按字母顺序排列)的宝贵反馈和评论:

  • Boban Andjelkovic,BankID BankAxept
  • 约翰·布拉德利,Yubico
  • Karen Chang, Egis
  • Jeff Lee,英飞凌
  • 奥利维尔·马斯,Worldline

7. 参考资料

[1] “EMV 3-D 安全”, [Online].可用:https://www.emvco.com/emv-technologies/3-d-secure/。
[2] “安全付款确认”, [Online].可用:w3.org/TR/secure-payment-confirmation/。
[3] “安全远程商务”, [Online].可用:https://www.emvco.com/emv-technologies/secure remote-commerce/。