PIN Block 是金融系统中加密和传输个人识别号码 (PIN) 的标准格式。本指南涵盖所有 ISO 9564 格式。
什么是 PIN Block?
PIN Block 是一种格式化的数据块,以特定格式包含 PIN,设计用于安全加密和传输。该格式组合了:
- PIN 本身
- "填充"模式(随机或固定数据)
- 通常包含主账号 (PAN)
ISO 9564 PIN Block 格式
格式 0 (ISO-0)
使用最广泛的格式,需要 PAN 进行编码:
PIN Block = PIN 字段 XOR PAN 字段
PIN 字段结构:
- 字节 0:
0x0(格式标识符)| PIN 长度(4位) - 字节 1-7:PIN 数字后跟
0xF填充
PAN 字段结构:
- 前 4 个半字节:
0x0000 - 后 12 个半字节:PAN 最右边的 12 位数字(不包括校验位)
格式 1 (ISO-1)
不需要 PAN,使用随机填充:
- 字节 0:
0x1| PIN 长度 - PIN 数字后跟随机填充
优点:无需 PAN 即可工作,随机填充更安全 缺点:不解密无法验证 PIN Block 完整性
格式 2 (ISO-2)
ICC(芯片卡)格式,从不传输:
- 字节 0:
0x2| PIN 长度 - PIN 数字后跟
0xF填充 - 仅用于芯片卡内部的 PIN 验证
格式 3 (ISO-3)
类似格式 0,但使用随机填充:
- 字节 0:
0x3| PIN 长度 - PIN 数字后跟随机填充(0xA-0xE 范围)
- 与 PAN 字段进行 XOR 运算
由于随机性,比格式 0 更安全。
格式 4 (ISO-4)
最新且最安全的格式,专为 AES 设计:
- 16 字节(128 位)而非 8 字节
- 使用 AES-128 加密
- 包含额外的安全特性
结构:
- 带格式标识的控制字段
- PIN 长度
- PIN 数字
- 随机填充
- PAN 哈希
安全性比较
| 格式 | 需要 PAN | 填充类型 | 块大小 | 推荐度 |
|---|---|---|---|---|
| 0 | 是 | 固定 (0xF) | 8 字节 | 遗留系统 |
| 1 | 否 | 随机 | 8 字节 | 良好 |
| 2 | 不适用 | 固定 | 8 字节 | 仅芯片卡 |
| 3 | 是 | 随机 | 8 字节 | 较好 |
| 4 | 是 | 随机 | 16 字节 | 最佳 |
何时使用各种格式
- 格式 0:遗留系统,ATM 网络
- 格式 1:无法访问 PAN 的系统
- 格式 3:现代基于 TDES 的系统
- 格式 4:新的基于 AES 的实现
自己动手试试
使用我们的 PIN Blocks 工具,以所有格式编码和解码 PIN Block,并逐步可视化整个过程。