HSM KitHSM Kit
中文

VISA 证书验证:CA 密钥、发卡行证书与 EMV

Payment Security# VISA# 证书# EMV# CA 密钥
Last Updated: 2026年5月21日6 min readBy HSM Kit Team
Need to calculate this now?
Use our free online VISA 证书验证器 tool.

VISA 证书验证是使用数字证书链验证 EMV 芯片卡真实性的过程。本指南解释 VISA 证书系统的工作原理,从 CA 公钥到发卡行证书验证。

什么是 VISA 证书验证?

VISA 证书验证是 EMV 芯片卡安全模型的一部分。当 VISA 卡(VSDC——VISA 智能借记/贷记卡)在终端使用时,终端必须验证卡片是真实的且未被篡改。这通过数字证书链完成。

证书链确保:

  • 卡片由合法的发卡行发行
  • 卡片的公钥是真实的
  • 卡片上的数据未被修改

EMV 证书链

EMV 证书链有三个层级:

证书颁发机构(CA)公钥
    └── 发卡行公钥证书
            └── ICC 公钥证书(在卡上)

层级 1:CA 公钥

  • 信任根
  • 由支付网络(VISA、Mastercard 等)拥有
  • 预加载在终端中
  • 用于验证发卡行证书

层级 2:发卡行公钥证书

  • 由 CA 颁发给发卡行(银行)
  • 包含发卡行的公钥
  • 由 CA 的私钥签名

层级 3:ICC 公钥证书

  • 由发卡行颁发给单张卡
  • 包含卡片(ICC)的公钥
  • 由发卡行的私钥签名

VSDC CA 公钥

VSDC(VISA 智能借记/贷记卡)CA 公钥是 VISA EMV 证书系统的根密钥。

密钥属性

  • 算法:RSA
  • 密钥大小:1408、1728、1976 或 2048 位
  • 指数:通常为 65537(0x010001)
  • RID:注册应用提供商标识符(VISA:A000000003

密钥分发

CA 公钥通过以下方式分发到终端:

  • 终端加载/密钥注入仪式
  • 用于安全传输的 TR-31 密钥块
  • 从支付网络直接加载

密钥索引(Index)

每个 CA 公钥都有一个索引(1-255)来标识它:

  • 卡片存储所使用的 CA 密钥的索引
  • 终端使用此索引选择正确的 CA 密钥
  • 这使得无需重新发行所有终端即可进行密钥轮换

发卡行公钥证书

发卡行公钥证书由 CA 颁发给发卡行。它包含:

证书内容

  • 发卡行公钥
  • 发卡行标识符
  • 证书过期日期
  • 证书序列号

证书格式

证书是 RSA 数字签名:

证书 = RSA_Sign(CA_私钥, 证书数据)

其中证书数据包括:

  • 证书头
  • 发卡行公钥(模数和指数)
  • 发卡行标识符
  • 过期日期

验证过程

  1. 终端从卡上提取证书
  2. 终端检索 CA 公钥(使用 RID 和索引)
  3. 终端使用 CA 公钥解密证书:
    解密结果 = RSA_Verify(CA_公钥, 证书)
    
  4. 终端从解密数据中提取发卡行公钥
  5. 终端验证证书未过期

签名数据验证

签名数据是卡上由发卡行签名的附加数据:

目的

签名数据为以下内容提供完整性保护:

  • 卡上的静态数据(PAN、有效期等)
  • 应用数据
  • 其他关键字段

验证过程

  1. 终端从卡上读取签名数据
  2. 终端使用发卡行的公钥(从证书中获取)进行验证:
    有效 = RSA_Verify(发卡行公钥, 签名数据, 签名)
    
  3. 如果验证成功,则数据是真实的

签名数据保护的内容

  • 防止修改卡片数据
  • 确保卡片未被克隆并使用不同数据
  • 防止某些类型的欺诈

完整验证流程

步骤 1:选择应用

  1. 终端向卡片发送 SELECT 命令
  2. 卡片返回应用数据,包括:
    • RID(VISA 为 A000000003
    • CA 公钥索引
    • 应用数据

步骤 2:检索 CA 公钥

  1. 终端使用 RID 和索引查找 CA 公钥
  2. 如果未找到密钥,交易可能以离线验证继续或被拒绝

步骤 3:读取发卡行证书

  1. 终端从卡上读取发卡行公钥证书
  2. 终端读取验证所需的附加数据

步骤 4:验证发卡行证书

  1. 终端使用 CA 公钥解密证书
  2. 终端提取发卡行公钥
  3. 终端验证证书过期日期

步骤 5:读取 ICC 证书

  1. 终端从卡上读取 ICC 公钥证书
  2. 终端读取 ICC PIN 加密公钥(如果存在)

步骤 6:验证 ICC 证书

  1. 终端使用发卡行公钥解密 ICC 证书
  2. 终端提取 ICC 公钥
  3. 终端验证证书过期日期

步骤 7:验证签名数据

  1. 终端从卡上读取签名数据和签名
  2. 终端使用发卡行公钥验证签名
  3. 如果所有验证成功,则卡片是真实的

证书验证中的 RSA 操作

证书验证涉及多个 RSA 操作:

RSA 验证

签名^e mod n = 哈希(数据)

其中:

  • e 是公钥指数
  • n 是模数
  • 哈希 通常是 SHA-1(传统)或 SHA-256

证书恢复

对于 EMV 证书,过程包括:

  1. 将证书提升到公钥指数的幂
  2. 应用解密算法
  3. 恢复签名数据
  4. 验证哈希

这在 HSM 中使用专门的 RSA 命令实现。

实际注意事项

终端实现

终端必须:

  • 存储所有相关的 CA 公钥
  • 实现完整的证书验证链
  • 处理密钥索引查找
  • 管理证书过期

HSM 支持

HSM 执行繁重的密码学操作:

  • 用于证书恢复的 RSA 解密
  • 哈希验证
  • 密钥存储和管理

错误处理

如果证书验证失败:

  • 交易应被拒绝
  • 错误记录供调查
  • 卡片可能被标记供审查

安全特性

信任链

证书链提供:

  • 信任根(CA 密钥)
  • 分层验证
  • 各层级之间的密钥分离

防克隆

证书验证防止:

  • 使用不同数据的卡片克隆
  • 修改卡片数据
  • 未授权的卡片发行

密钥轮换

系统支持密钥轮换:

  • 可以分发新的 CA 密钥
  • 可以逐步淘汰旧密钥
  • 卡片携带所使用密钥的索引

常见问题

如果 CA 密钥泄露会怎样?

如果 CA 密钥泄露,由该密钥颁发的所有证书都可能无效。支付网络将颁发新的 CA 密钥并重新发行受影响的卡。

没有 HSM 可以验证证书吗?

虽然算法是已知的,但 HSM 提供:

  • 安全的密钥存储
  • 性能优化
  • 符合支付网络要求

CA 密钥多久轮换一次?

CA 密钥是长期的(数年到数十年)。轮换提前计划并在整个支付生态系统中协调。

离线和在线验证有什么区别?

  • 离线:终端在本地验证完整的证书链
  • 在线:证书验证可能由发卡行的 HSM 在授权期间执行

亲自尝试

使用我们的 VISA 证书验证工具理解和练习 EMV 证书验证:

所有处理在您的浏览器本地完成——您的密钥不会离开您的设备。

Related Tool
VISA 证书验证器