PIN 块格式 4 是最新的 ISO 9564 PIN 块格式,专为 AES 加密 设计。本指南解释格式 4 的工作原理以及为什么它代表了支付系统中 PIN 安全的未来。
什么是 PIN 块格式 4?
PIN 块格式 4(也称为 ISO-4)在 ISO 9564-1 中定义,提供了基于 AES 的现代 PIN 加密方法。它取代了为 3DES 加密设计的传统格式 0。
格式 4 是支付行业从 3DES 迁移到 AES 的更广泛计划的一部分,与 AES-DUKPT 和 TR-31 版本 D 密钥块一起。
格式 4 结构
格式 4 PIN 块为 16 字节(128 位)——是格式 0 的 8 字节的两倍。结构包括:
字节 0: 控制字段(0x44 = 格式 4 标识符)
字节 1: PIN 长度(0x04 到 0x0C)
字节 2-7:PIN 数字 + 随机填充
字节 8-13:PAN 哈希(从 PAN 派生)
字节 14-15:随机填充 + 补齐
控制字段
第一个字节标识格式:
0x44表示格式 4- 高半字节
4是格式标识符 - 低半字节包含标志位
PIN 数据
- PIN 长度占一个半字节(4 位)
- PIN 数字紧随其后
- 剩余位置用随机数据填充(0x0-0x9 或 0xA-0xF)
PAN 哈希
格式 4 包含 PAN 的哈希值,将 PIN 块绑定到特定卡片:
PAN_哈希 = AES-ECB(PAN_填充, PAN_哈希密钥)
这提供了完整性验证——如果解密时使用了错误的 PAN,哈希值将不匹配。
格式 4 与格式 0 对比
| 特性 | 格式 0 | 格式 4 |
|---|---|---|
| 块大小 | 8 字节 | 16 字节 |
| 加密 | 3DES ECB | AES-128 ECB |
| 需要 PAN | 是(XOR) | 是(哈希) |
| 随机填充 | 否(固定 0xF) | 是 |
| 完整性检查 | 否 | PAN 哈希 |
| 安全级别 | 传统 | 现代 |
| 标准 | ISO 9564 | ISO 9564-1 |
主要区别
- 随机填充:格式 4 使用随机数据而非固定填充,使相同的 PIN 产生不同的 PIN 块
- PAN 绑定:格式 4 中的 PAN 哈希比格式 0 中的 XOR 方法更安全
- 块大小:16 字节适应 AES-128 的块大小
- 完整性:PAN 哈希提供内置的完整性检查
加密过程
步骤 1:构造 PIN 块
- 以格式标识符
0x44开始 - 添加 PIN 长度
- 添加 PIN 数字
- 用随机数据填充剩余位置
- 计算 PAN 哈希并添加到块中
- 填充至 16 字节
步骤 2:使用 AES 加密
加密块 = AES-128-ECB(PEK, PIN_块)
PIN 加密密钥(PEK)是 128 位 AES 密钥,可以是:
- 静态密钥(传统)
- AES-DUKPT 派生密钥(推荐)
- 通过 TR-31 版本 D 密钥块传输
步骤 3:传输
16 字节的加密 PIN 块放入交易消息中。对于 ISO 8583 消息,通常放在字段 52(PIN 数据)中。
PAN 哈希计算
PAN 哈希将 PIN 块绑定到特定卡号:
PAN_填充 = 将 PAN 右对齐到 16 字节,用 0x00 填充
PAN_哈希 = AES-ECB(PAN_哈希密钥, PAN_填充)
在解密期间,HSM:
- 解密 PIN 块
- 使用已知 PAN 重新计算 PAN 哈希
- 验证哈希值是否匹配
- 如果不匹配,拒绝 PIN 块
这防止了攻击者操纵 PAN 以导致 PIN 翻译错误的某些攻击。
格式 4 的安全优势
随机填充
与格式 0 的固定 0xF 填充不同,格式 4 使用随机值。这意味着:
- 两个相同的 PIN 使用相同密钥加密会产生不同的 PIN 块
- 攻击者无法确定两笔交易是否使用相同的 PIN
- 减少信息泄露
PAN 哈希完整性
PAN 哈希提供:
- PIN 和卡号之间的绑定
- 检测 PAN 替换攻击
- 验证翻译期间使用了正确的 PAN
AES-128 安全性
AES-128 比 3DES 提供更强的安全性:
- 没有已知的实用攻击
- 128 位密钥 vs 3DES 的 112 位有效密钥
- NIST 批准的标准,有效期至 2030 年以后
实际交易流程
终端到收单方
收单方到发卡行
- 收单方接收包含加密 PIN 块的消息
- 收单方的 HSM 使用终端的 PEK 解密
- HSM 验证 PAN 哈希完整性
- HSM 使用交换密钥重新加密
- 翻译后的 PIN 块发送到发卡行
发卡行验证
迁移注意事项
HSM 支持
确保您的 HSM 支持格式 4:
- Thales payShield:支持格式 4 和 AES-DUKPT
- SafeNet Luna:支持格式 4
- Futurex:支持格式 4
终端支持
新终端应原生支持格式 4。旧终端可能需要固件更新。
密钥管理
格式 4 需要 AES 密钥:
- 使用 TR-31 版本 D 进行密钥传输
- 在 HSM 中生成 AES 密钥
- 考虑使用 AES-DUKPT 获取每笔交易的密钥
双格式支持
在迁移期间,系统可能需要同时支持格式 0 和格式 4:
- 从控制字段检测格式
- 相应处理
- 逐步淘汰格式 0
常见问题
为什么格式 4 是格式 0 的两倍大小?
AES-128 在 16 字节块上操作,而 3DES 在 8 字节块上操作。更大的块大小也容纳了 PAN 哈希和随机填充。
可以在 3DES 密钥上使用格式 4 吗?
不可以。格式 4 专为 AES 加密设计。对于基于 3DES 的系统,使用格式 0 或格式 3。
格式 4 向后兼容吗?
不兼容。格式 4 是一种新格式,需要终端、HSM 和处理系统的明确支持。没有格式检测的情况下,不能与格式 0 混合使用。
什么时候应该迁移到格式 4?
新部署应从一开始就使用格式 4。现有系统应作为更广泛的 3DES 到 AES 迁移的一部分进行规划,特别是因为 NIST 于 2023 年弃用了 3DES。
亲自尝试
使用我们的 PIN 块格式 4 工具理解和练习基于 AES 的 PIN 块格式:
- PIN 块 AES 工具 —— 使用 AES-128 加密编码和解码格式 4 的 PIN 块
所有处理在您的浏览器本地完成——您的密钥不会离开您的设备。