3

方案有以下要求

  • 客户端应用程序应使用组件 1、组件 2 和 ZPK(区域 PIN 密钥。客户端应以加密形式从主机获取此密钥)执行加密/解密。
  • 主机应用程序应使用密钥 MK(由组件 1 和组件 2 形成的主密钥)和 ZPK 执行加密/解密。

这是我生成组件的方式

Online-AUTH>GC
Enter LMK id [0-2]: 0
Enter key length [1,2,3]: 2
Enter key type: 002
Enter key scheme: u
Clear component: **** **** **** **** **** **** **** **** 
Encrypted component: UXXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
Key check value: xxxxxx

Online-AUTH>GC
Enter LMK id [0-2]: 0
Enter key length [1,2,3]: 2
Enter key type: 002
Enter key scheme: u
Clear component: **** **** **** **** **** **** **** ****
Encrypted component: UYYYY YYYY YYYY YYYY YYYY YYYY YYYY YYYY 
Key check value: yyyyyy

Online-AUTH>FK
Enter LMK id [0-2]: 0
Enter key length [1,2,3]: 2
Enter key type: 002
Enter key scheme: u
Enter component type [X,H,T,E,S]: e
Enter number of components [1-9]: 2
Enter component 1: UXXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX 
Component 1 check value: xxxxxx
Continue? [Y/N]: y
Enter component 2: UYYYY YYYY YYYY YYYY YYYY YYYY YYYY YYYY
Component 2 check value: yyyyyy
Continue? [Y/N]: y
Encrypted key: UZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ 
Key check value: zzzzzz

我不明白的是

  • 使用加密组件创建 MK 有什么好处 如何使用组件 1 和组件 2 解密加密的 ZPK。
  • 组件1,组件2与FK命令输出之间的关系是什么
  • 在 ZPK 下加密 PIN 块就足够了/无处不在

任何帮助表示赞赏。PS我想坚持无处不在的实现。

4

1 回答 1

2

你不是第一个:)

我会尽力解释(但我的英语不太清楚,不够清楚:()。

HSM 从不使用普通密钥,它处理的所有密钥都在其他密钥下加密,称为密钥加密密钥 (KEK)。LMK 是安全存储在安全环境 HSM 中的 KEK。HSM 的主要思想是,你不能得到真正的 LMK 密钥值,你不能得到真正的工作密钥明文值。您与 HSM 一起使用的所有密钥都是密码。LMK 是您的个人 KEK,其他方无法访问(这意味着它是安全的 KEK)。您应该将这些密钥保存在数据库中以与您自己的 HSM 一起使用。

有时,您需要将密钥传输给其他方,例如 Visa 或 MasterCard,以交换一些加密数据,如 PIN 块。在这种情况下,您应该使用另一个名为 ZMK 的 KEK。它是传输密钥,仅用于其他密钥交换。您无法将 ZMK 加密密钥与 HSM 一起使用。首先,您必须在 LMK 下导入密钥以使其成为 managanbe。

结论:

1)您应该保留在 LMK 下的 DB 密钥中

2) ZMK 下的密钥仅用于传输给其他方。

如果我不够清楚,请不要犹豫,会尝试找到另一种解释。

于 2015-10-15T10:08:01.863 回答