Thales Key Blocks是一种必不可少的加密密钥包装格式。与其他Key Block(密钥块)格式相比,它们是专有的,仅适用于 Thales payShield HSM。在下文中,我们将深入研究这种Key Block格式的细节。
Thales Key Blocks 与X9.TR-31格式兼容。他们通过提供附加功能来进一步实现和扩展它。
支付卡行业安全标准委员会 (PCI SSC) 要求零售银行业实施符合 ANSI X9.24/TR-31的Key Block,但是,TR-31 是一份技术报告,而不是规范。
ANSI 标准将“通用”Key Block定义为具有标头字段、包含加密敏感数据(包括密钥本身)的有效载荷字段以及用于检查标头完整性和数据的额外字段的结构。
插图:通用 TR-31 键块
基于这个非常通用的方案,可以改进 TR-31 Key Block以添加更多功能和子组件。
Thales Block结构定义了四个区块,而不是 TR-31 定义的三个区块:
Header (标头,16 bytes)
Optional header(可选标题)
Encrypted key data(加密密钥数据)
Authenticator(身份验证器)
插图:Thales 密钥块格式
主要区别在于添加了一个可选的标题块,它允许在密钥管理方面有更多的余地。标头包含一个字段,用于注册用于加密的 Thales HSM本地主密钥 (LMK)的值 。因此,理论上,只有 Thales Key Blocks才能与 Thales HSM配合使用。
标题包含一个字段,用于通知是否有可选标题,如果有,有多少。可选报头使用 TLV(标签长度值)编码,用于提供性质可能不同的附加信息。
以下是 Thales 密钥块中通常允许的可选标头列表。
可选的标签 | 用法 |
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 Key Block 使用其头域的全部 8 个字节,而 Thales Key Block 仅使用其头域的一部分进行 IV 计算。
标头中指定的任何类型的密钥都可以通过这种方式加密。加密仅在CBC 模式下完成,这可能是一个问题,因为 CBC 模式对某些填充预言机攻击的抵抗力不是很强。
加密密钥源自 HSM LMK(AES 或3DES)。
通过从加密数据、报头的串联和可选报头计算 3DES CBC-MAC 或 AES CMAC 来使用身份验证器部分。使用的密钥也是从 LMK 派生的。
由于 Thales Key Blocks 仅适用于 payShields HSM(payShield 8000、9000 和 payShield 10K 等),因此我们需要提及如何在这样的环境中使用它们。
只有本地密钥用于加密密钥块。理论上,这提供了更高的安全性。
Thales payShield 支持多个 LMK。这意味着 HSM 可以通过加密方式分成几个组来管理密钥块。
可以使用 Thales HSM 创建和维护的 Thales 密钥块通常包括 ZMK(用于将密钥从一个 HSM 导出到另一个 HSM)、PMK(用于加密 pin 块的 PIN 主密钥)等。
联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:
数据库访问控制:揽阁LGPAC系统
通用HSM:Luna HSM、ProtectServer HSM
支付HSM:payShield 10K
您还可以得到揽阁信息所提供的优质服务。
揽阁信息 · 值得您信赖的信息安全顾问!