安全付款确认 (SPC) 是一种提议的 Web 标准,允许客户使用平台身份验证器向信用卡发卡机构、银行或其他付款服务提供商进行身份验证:
- 在 macOS 设备上使用解锁功能(包括触控 ID)
- Windows 设备上的 Windows Hello
借助 SPC,商家可以让客户快速顺畅地对其购买交易进行身份验证,而发卡银行则可以保护其客户免遭欺诈。

SPC 分为两个阶段:注册和身份验证。
- 注册:付款人将其设备与依赖方 (RP) 相关联。依赖方可以是信用卡发卡机构、银行或其他付款服务提供商。
- 身份验证:付款人在确认付款之前,使用已注册的设备直接通过商家的平台向 RP 确认其身份。
进行身份验证以防范欺诈
身份验证在防范支付欺诈方面发挥着重要作用。不过,此验证流程通常依赖于薄弱的机制,例如信用卡号和持卡人姓名的组合,或卡背面写有的额外 CVV 码。如果卡信息因数据安全漏洞(例如账号盗用或钓鱼式攻击)而泄露,这些机制很容易被破解和冒充。
我们还引入了其他防范欺诈机制,例如 EMV® 3-D Secure,系统可能会要求付款人向发卡机构或银行进行身份验证。如需进行身份验证,用户可以使用用户名和密码登录,也可以使用通过短信发送到付款人手机的动态密码 (OTP) 登录。这有助于保护客户免遭欺诈,但可能会阻碍一些合法客户完成付款。SPC 旨在减少身份验证摩擦,从而减少购物车放弃情况。
与此同时,一种名为 WebAuthn 的新身份验证标准正在兴起。
什么是 WebAuthn?
Web 身份验证(简称 WebAuthn)是一种网络标准,允许依赖方 (RP) 服务器使用公钥加密(而不是密码)在浏览器中注册用户并对用户进行身份验证。
RP 依赖于实体身份验证器,例如安全密钥。RP 请求安全密钥生成私钥-公钥对,然后将公钥存储在服务器上(注册)。这些生成的密钥是设备专有的,可防止攻击者冒充用户。由于密钥对绑定到来源,因此此标准可防范钓鱼式攻击。
FIDO 联盟对身份验证器行为进行了标准化。某些身份验证器支持使用生物识别因素(例如指纹或人脸识别)或知识因素(例如 PIN 码)进行本地用户验证。许多身份验证器都集成到计算设备(例如笔记本电脑或智能手机)中,称为平台身份验证器。所有主流浏览器(桌面版和移动版)都支持 WebAuthn,数十亿部设备都支持身份验证器。用户可以在平台本地验证自己的身份,从而注册并进行身份验证。
SPC 旨在与可验证用户身份的平台内置身份验证器 (UVPA) 搭配使用。

安全付款确认功能如何运作?
安全付款确认 (SPC) 基于 WebAuthn 构建,专为付款用途而设计。由于 WebAuthn 凭据是针对特定网域注册的,因此这些凭据无法用于在可能冒充商家的未注册网站上进行身份验证。正是这一点使 WebAuthn 能够有效防范钓鱼式攻击。
SPC 在 WebAuthn 之上添加了付款信息层,以便发卡机构或银行提供一致的付款体验。付款人在依赖方处注册身份验证器后,便可在不同的商家网站上使用该身份验证器进行身份验证。依赖方还可以选择将付款凭据用作常规 WebAuthn 凭据。
Stripe 在其生产环境中开展了 SPC 实验,这是 Chrome 源试用的一部分。在这项实验中,Stripe 的转化率提高了 8%,结账速度提高了三倍。如需了解相关结果,请参阅 W3C Web 付款工作组的 SPC 报告。
用户如何体验 SPC?
SPC 前端包含两个阶段:注册和身份验证。
客户必须先使用用户验证平台身份验证器 (UVPA) 注册其设备。设备注册后,每当在商家网站上进行 SPC 时,都可以使用该设备来对用户进行身份验证并确认付款。
注册
用户可以通过以下两种方式注册 SPC:
- 直接在 RP 网站上注册。
- 在商家网站上间接注册。
在 RP 网站上注册
在 RP 的网站上,SPC 注册与 WebAuthn 注册没有区别。我们建议 RP 在登录流程中要求客户注册 UVPA。
典型场景可能如下所示:
- 客户使用用户名、密码和额外的验证步骤(通常是动态密码或 OTP)登录您的银行网站。
- 成功完成身份验证后,显示权限请求,要求客户注册其设备 (UVPA)。
- 授予权限后,浏览器会显示 WebAuthn 注册对话框。
- 客户同意通过进行生物识别身份验证来注册设备。
- 客户现在可以使用自己的设备安全地登录和付款。
重新验证:用户已登录,但系统会要求用户重新进行身份验证,以确保仍是同一用户。这种设计通常用于安全至关重要的操作,例如请求更改密码或进行付款。与使用密码相比,使用 WebAuthn UVPA 进行重新身份验证的速度更快,安全性更高。
如需了解如何构建用于重新身份验证的 WebAuthn 注册和身份验证流程,请参阅构建您的首个 WebAuthn 应用。
在付款期间在商家网站上注册
如果您的客户未在付款发卡机构的网站上注册其设备,则可以直接在商家网站上注册。界面看起来相同,但用户的注册是由 RP 的代码发起的。
如果客户不经常访问 RP 网站,但 RP 仍希望提供身份验证选项,这种方式非常适合。
身份验证(付款确认)
当付款人在付款交易期间提供付款凭据时,需要进行身份验证。
- 付款方提供付款凭据(例如信用卡信息)。
- 商家检查浏览器是否支持安全付款确认。
- 如果浏览器支持 SPC,请调用 Payment Request API,并将 SPC 作为付款方式。否则,回退到现有身份验证方法。
- 付款人确认交易详情并完成身份验证(例如通过轻触其生物识别平台身份验证器)。
支持的平台
目前,macOS 和 Windows 上的 Google Chrome 支持安全付款确认。自 2022 年 5 月起,不支持其他平台,包括 Android、iOS 和 ChromeOS。