安全付款确认 (SPC) 是建议的 Web 标准,允许客户使用平台身份验证器向信用卡发卡机构、银行或其他付款服务提供商进行身份验证:
- macOS 设备上的解锁功能(包括触控 ID)
- Windows 设备上的 Windows Hello
借助 SPC,商家可以让客户快速、无缝地验证其购买交易,同时发卡银行保护其客户免受欺诈行为的伤害。
![](https://developer.chrome.google.cn/static/docs/payments/secure-payment-confirmation/image/idZVP2qnYqcYVhmfElma.png?authuser=8&hl=nb)
SPC 分为两个阶段:注册和身份验证。
- 注册:付款人将其设备关联到依赖方 (RP)。依赖方可能是信用卡发卡机构、银行或其他付款服务提供商。
- 身份验证:在确认付款之前,付款人使用已注册的设备直接从商家的平台向 RP 确认其身份。
用于防范欺诈的身份验证
身份验证在防范付款欺诈方面发挥着重要作用。但是,此验证流程通常依赖于安全性较弱的机制,例如信用卡号码与持卡人姓名的组合,或者写在卡背面的额外银行卡验证码 (CVC)。如果银行卡信息因数据泄露(例如帐号盗用或钓鱼式攻击)而泄露,则很容易遭到入侵和冒充。
我们还引入了其他欺诈防范机制,例如 EMV® 3-D Secure,系统可能会要求付款人针对发卡机构或银行进行身份验证。为了进行身份验证,用户需要使用用户名和密码或通过短信发送到付款人手机上的动态密码 (OTP) 来登录。这样做可以保护客户免遭欺诈,但可能会成为一些有效客户完成付款的障碍。SPC 旨在减少身份验证过程中的麻烦,从而减少放弃购物车的情况。
与此同时,有一种名为 WebAuthn 的新身份验证标准正在兴起。
什么是 WebAuthn?
网络身份验证(简称 WebAuthn)是一种 Web 标准,允许依赖方 (RP) 服务器使用公钥加密(而不是密码)在浏览器中注册和验证用户。
RP 依赖于实体身份验证器,例如安全密钥。RP 请求安全密钥以生成私钥-公钥对,然后将公钥存储在服务器上(注册)。这些生成的密钥对于设备来说是唯一的,这样可以防止攻击者冒充用户。这种标准能够抵御钓鱼式攻击,因为密钥对已与源站绑定。
FIDO 联盟对身份验证器行为进行了标准化。某些身份验证器支持使用生物识别因素(例如指纹或人脸识别)或验证因素(例如 PIN 码)进行本地用户验证。其中许多已集成到计算设备(如笔记本电脑或智能手机)中,称为“平台身份验证器”。所有主流浏览器(桌面设备和移动设备)均支持 WebAuthn,而身份验证器可在数十亿设备上使用。用户可以通过在平台上本地验证身份来注册和身份验证。
SPC 旨在与用户验证平台身份验证器 (UVPA) 配合使用。
![UVPA 示例包括 Apple Touch ID 和手机摄像头](https://developer.chrome.google.cn/static/docs/payments/secure-payment-confirmation/image/example-uvpas-include-app-b479d56c1b596.png?authuser=8&hl=nb)
安全付款确认的工作原理是什么?
安全付款确认 (SPC) 基于 WebAuthn,专为付款目的而设计。WebAuthn 凭据是为特定网域注册的,这些凭据不能用于在可能冒充商家的未注册网站上进行身份验证。此功能使 WebAuthn 能够有效防范钓鱼式攻击。
SPC 在 WebAuthn 的基础上添加了付款信息层,以便发卡机构或银行能够提供一致的付款体验。付款人向依赖方注册身份验证器后,便可使用它在不同的商家网站上进行身份验证。依赖方也可以选择将付款凭据用作常规的 WebAuthn 凭据。
在 Chrome 源试用过程中,Stripe 在生产环境中运行了 SPC 实验。在这项实验中,Stripe 的转化率提高了 8%,结账率提高了三倍。如需了解相关结果,请参阅 W3C Web Payments 工作组的 SPC 报告。
用户使用 SPC 时的体验如何?
SPC 前端包括两个阶段:注册和身份验证。
客户必须先使用用户验证平台身份验证器 (UVPA) 注册设备。注册设备后,每当在商家网站上执行 SPC 时,都可以使用该设备对用户进行身份验证,并确认付款。
注册
用户可以通过以下两种方式注册 SPC:
- 直接在 RP 网站上注册。
- 在商家网站上间接注册。
在 RP 网站上注册
在 RP 的网站上,SPC 注册与 WebAuthn 注册没有什么不同。我们建议,RP 要求客户在登录流程中注册其 UVPA。
典型的情况可能如下所示:
- 客户使用用户名、密码和额外的验证步骤(通常是动态密码或动态密码)登录银行网站。
- 身份验证成功后,系统会显示权限请求,要求客户注册设备 (UVPA)。
- 授予权限后,浏览器就会显示 WebAuthn 注册对话框。
- 客户同意通过进行生物识别身份验证来注册设备。
- 客户现在可以使用自己的设备登录并安全地付款。
使用reauthentication时,用户已登录,但需要再次进行身份验证,以确保同一用户仍然存在。这种设计通常出现在对安全性至关重要的操作中,例如请求更改密码或付款时。与使用密码相比,使用 WebAuthn UVPA 重新进行身份验证的速度更快,而且安全系数更高。
如需了解如何构建 WebAuthn 注册和身份验证流程以重新进行身份验证,请参阅构建首个 WebAuthn 应用。
付款时在商家网站上注册
如果您的客户未在付款发卡机构的网站上注册其设备,可以直接在商家网站上注册。界面看起来一样,但用户注册是由 RP 的代码发起。
如果客户不经常访问 RP 网站,但 RP 仍希望提供身份验证选项,这种方案是理想之选。
身份验证(付款确认)
如果付款人在付款交易期间提供付款凭据,则必须进行身份验证。
- 付款人提供付款凭据(例如信用卡信息)。
- 商家会检查浏览器是否支持安全付款确认。
- 如果浏览器支持 SPC,请调用 Payment Request API,并将 SPC 作为付款方式。否则,请回退到现有的身份验证方法。
- 付款人确认交易详情并完成身份验证(例如通过轻触其生物识别平台身份验证器)。
支持的平台
目前,macOS 和 Windows 上的 Google Chrome 支持安全付款确认。自 2022 年 5 月起,Android、iOS 和 ChromeOS 等其他平台将不再受支持。