Google Pay 和 Mastercard 已开始在印度推出基于生物识别的支付功能,使用的是消费者设备持卡人验证方法 (CDCVM)。购物者通过指纹或面部扫描确认购买,而生物识别数据则始终锁定在手机内部。
为什么 CDCVM 现在如此重要
CDCVM 将“你是谁”的身份验证转移到了设备端。只有经过加密签名的、一次性使用的支付令牌 (token) 会离开手机,因此生物识别数据永远不会在互联网上传输。
底层工作流程解析
- 特征提取 – 传感器(指纹阅读器或摄像头)将原始数据输入到 Secure Enclave 或可信执行环境 (TEE) 中。这些隔离区域在处理输入时不会将其暴露给操作系统。
- 本地比对 – 设备存储用户生物识别信息的加密模板。Secure Enclave 将实时采集的数据与该模板进行比对,绝不会将原始图像或特征向量发送到其他地方。
- 硬件证明 (Hardware attestation) – 比对成功后,隔离区会使用一个永不离开硬件的私钥对交易进行签名。该证明过程可以在不泄露生物识别信息本身的情况下,证明已使用了经过验证的生物识别数据。
- 令牌生成 – 签名的证明与令牌服务 (token-service) 结合,生成一个一次性令牌。传输到商户并随后发送至发卡行进行结算的是令牌,而非生物识别数据。
商户和银行只能看到签名的令牌。所有生物识别数据都保留在设备的受保护内存中。
开发者必须避免的陷阱
- 发送生物识别向量 – 传输原始指纹或面部数据会造成永久性的风险暴露。如果数据库遭到泄露,指纹是无法更改的。
- 重放攻击 – 如果生物识别数据的数值表示在网络上传输,它们可能会被截获并重新发送,从而伪造传感器。
- 监管难题 – 许多司法管辖区将生物识别数据视为高度敏感的个人信息,并实施严格的存储、知情同意和泄露通知规则。
请将生物识别信息视为解锁加密操作的本地密钥;切勿将其作为有效载荷 (payload) 进行传输。
具体实现清单
- 使用平台提供的生物识别 API,确保采集和处理过程保留在设备的 TEE 内部。
- 加密存储生物识别模板,并使用由 Secure Enclave 管理的密钥进行加密;切勿将其写入文件系统。
- 在比对成功后请求硬件证明。
- 与令牌化服务 (tokenization service) 集成,该服务负责接收证明并签发一次性令牌。在令牌请求中包含签名的证明,但不包含任何生物识别数据。
- 在服务端使用发行方的公钥验证令牌。拒绝任何缺少有效证明签名的令牌。
- 测试边缘情况,例如传感器故障、误拒 (false rejects) 和设备更换。流程应能回退到 PIN 码或密码,且不泄露生物识别数据。
核心总结
当生物识别验证保留在手机的安全硬件中,并仅对一次性令牌进行签名时,用户可以保护其指纹或面部数据的隐私,商户也能减少接触敏感个人信息的风险。对于开发者来说,规则很简单:让生物识别信息去解锁加密密钥,绝不要让它离开设备。
