安全付款确认

安全付款确认 (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) 搭配使用。

UVPA 示例包括 Apple 触控 ID 和手机摄像头
许多设备都集成了生物识别传感器。这些身份验证器称为可验证用户身份的平台内置身份验证器 (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。

典型场景可能如下所示:

  1. 客户使用用户名、密码和额外的验证步骤(通常是动态密码或 OTP)登录您的银行网站。
  2. 成功验证身份后,显示权限请求,要求用户注册设备 (UVPA)。
  3. 授予权限后,浏览器会显示 WebAuthn 注册对话框。
  4. 客户同意通过生物识别身份验证来注册设备。
  5. 客户现在可以使用其设备安全登录并付款。

重新验证:用户已登录,但系统会要求用户重新进行身份验证,以确保仍是同一用户。这种设计通常用于安全至关重要的操作,例如请求更改密码或进行付款。与使用密码相比,使用 WebAuthn UVPA 进行重新身份验证的速度更快,安全性更高。

如需了解如何构建 WebAuthn 注册和身份验证流程以进行重新身份验证,请参阅构建您的首个 WebAuthn 应用

在付款期间在商家网站上注册

如果您的客户未在付款发卡机构的网站上注册其设备,则可以直接在商家网站上注册。界面看起来一样,但用户的注册是由 RP 的代码发起的。

如果客户不经常访问 RP 网站,但 RP 仍希望提供身份验证选项,这种方式非常适合。

身份验证(付款确认)

如果付款人在付款交易期间提供付款凭据,则必须进行身份验证。

  1. 付款人提供付款凭据(例如信用卡信息)。
  2. 商家检查浏览器是否支持安全付款确认。
  3. 如果浏览器支持 SPC,请调用 Payment Request API,并将 SPC 作为付款方式。否则,回退到现有身份验证方法。
  4. 付款人确认交易详情并完成身份验证(例如通过触摸其生物识别平台身份验证器)。

支持的平台

目前,macOS 和 Windows 上的 Google Chrome 支持安全付款确认。自 2022 年 5 月起,不支持其他平台,包括 Android、iOS 和 ChromeOS。

后续步骤