发布日期:2025-03-18 浏览次数:
Thales Key Blocks(密钥块)是一种重要的加密密钥包装格式。与其他密钥块格式相比,它们是专有的,并且仅适用于 Thales payShield HSM。接下来,我们将详细介绍这种密钥块格式。
Thales Key Blocks 与 X9.TR-31 格式兼容。它们通过提供附加功能来进一步实现和扩展该格式。
支付卡行业安全标准委员会 (PCI SSC) 要求零售银行业实施符合ANSI X9.24/TR-31的密钥块,但是,TR-31 是一份技术报告,而不是规范。
ANSI 标准将“通用”密钥块定义为具有标头字段、包含加密敏感数据(包括密钥本身)的有效负载字段以及用于检查标头的完整性和数据的额外字段的结构。
图示:通用 TR-31 密钥块
基于这个非常通用的方案,可以改进 TR-31 密钥块以添加更多功能和子组件。
Thales 块结构定义了四个块,而不是 TR-31 定义的三个块:
插图:Thales Key Block 格式
主要区别在于增加了可选的标头块,从而允许在密钥管理方面更加灵活。标头包含一个字段,用于注册用于加密的 Thales HSM 本地主密钥 (LMK) 的值。因此,理论上,只有 Thales 密钥块才能与 Thales 机器一起使用。
标头包含一个字段,用于告知是否存在可选标头,如果有,则告知有多少个可选标头。可选标头使用 TLV(标签长度值)编码,用于包含性质可能不同的附加信息。
以下是 Thales Key Block 中通常允许的可选标题列表。
Optional Header Blog Tag | Usage |
KS | Key set identifier |
KV | Key block version values |
00 | Status (T=Test, L=Live, etc.) |
01 | Algorithm and mode used to encrypt the data block |
02 | Algorithm and mode used to authenticate the data block |
03 | Validity start date |
04 | Validity end date |
05 | Free usage (for information, etc.) |
PB | Padding block |
Thales Key Block 提供两种类型的密钥加密:3DES和 AES Keyblock LMK(例如,通过 LMK 加密)。在这两种情况下,都使用从标头中获取字节的初始化向量 (IV),从而直接绑定标头和加密密钥数据。
例如,Atalla 密钥块使用其头字段的全部八个字节,而 Thales 密钥块仅使用其头字段的一部分进行 IV 计算。
标头中指定的任何类型的密钥都可以通过这种方式加密。加密完全以CBC 模式进行,这可能是一个问题,因为 CBC 模式对某些填充预言攻击的抵抗力不强。
加密密钥源自 HSM LMK(AES 或 3DES)。
身份验证器部分通过从加密数据、报头的连接和可选报头计算 3DES CBC-MAC 或 AES CMAC 来使用。使用的密钥也来自 LMK。
由于 Thales Key Blocks 仅适用于 payShields HSM(payShield 8000、9000、10,000 等),因此我们必须解释如何在这种环境中使用它们。
仅使用本地密钥来加密密钥块。从理论上讲,这提供了更高的安全性。
Thales payShield 支持多个 LMK。这意味着 HSM 可以通过加密方式分成多个组来管理密钥块。
可以使用 Thales HSM 创建和维护的 Thales 密钥块通常包括 ZMK(用于将密钥从一个 HSM 导出到另一个 HSM)、PMK(PIN 主密钥到密码 PIN 块)等。
想了解更多关于Thales payShield HSM信息,请联系揽阁信息。
揽阁信息 · 值得您信赖的信息安全顾问!