使用 CMU 列出 AWS CloudHSM 加密用户拥有的密钥
使用 AWS CloudHSM cloudhsm_mgmt_util(CMU)中的 findAllKeys 命令获取 AWS CloudHSM 的指定加密用户(CU)拥有或共享的密钥。该命名还会返回每个 HSM 上的用户数据的哈希。您可以使用哈希来大致确定用户、密钥所有权和密钥共享数据在集群中的所有 HSM 上是否相同。在输出中,用户拥有的密钥由 (o)
进行注释,而共享密钥由 (s)
进行注释。
仅当指定 CU 拥有公有密钥时,findAllKeys 才会返回该密钥,即使 HSM 上的所有 CU 都可以使用任何公有密钥也是如此。此行为不同于 key_mgmt_util 中的 findKey,前者将为所有 CU 用户返回公有密钥。
只有加密管理者(CO 和 PCO)和设备用户 (AU) 才能运行此命令。加密用户 (CU) 可以运行以下命令:
-
listUsers,用于查找所有用户
-
通过 key_mgmt_util 中的 findKey 可以找到其可以使用的密钥
-
通过 key_mgmt_util 中的 getKeyInfo 可以找到拥有或共享的特定密钥的所有者和共享用户
在运行任何 CMU 命令之前,必须启动 CMU 并登录 HSM。请确保使用可运行您计划使用的命令的用户类型登录。
如果您要添加或删除 HSM,请更新 CMU 的配置文件。否则,您所做的更改可能不会对集群中的所有 HSM 生效。
用户类型
以下用户均可运行此命令。
-
加密员 (CO、PCO)
-
设备用户 (AU)
语法
由于此命令没有命名参数,因此您必须按语法图中指定的顺序输入参数。
findAllKeys
<user id>
<key hash (0/1)>
[<output file>
]
示例
以下示例演示如何使用 findAllKeys
来查找某个用户的所有密钥并获取每个 HSM 上的密钥用户信息的哈希。
例 :查找 CU 的密钥
本示例使用 findAllKeys 来查找 HSM 中由用户 4 拥有和共享的密钥。该命令使用第二个参数的值 0
来隐藏哈希值。由于本示例忽略了可选的文件名,因此该命令将写入到 stdout(标准输出)。
输出表明用户 4 可使用 6 个密钥:8、9、17、262162、19 和 31。输出使用 (s)
指示用户显式共享的密钥。用户拥有的密钥由 (o)
表示,包含用户未共享的对称密钥和私有密钥,以及对所有加密用户可用的公有密钥。
aws-cloudhsm>
findAllKeys 4 0
Keys on server 0(10.0.0.1): Number of keys found 6 number of keys matched from start index 0::6 8(s),9(s),17,262162(s),19(o),31(o) findAllKeys success on server 0(10.0.0.1) Keys on server 1(10.0.0.2): Number of keys found 6 number of keys matched from start index 0::6 8(s),9(s),17,262162(s),19(o),31(o) findAllKeys success on server 1(10.0.0.2) Keys on server 1(10.0.0.3): Number of keys found 6 number of keys matched from start index 0::6 8(s),9(s),17,262162(s),19(o),31(o) findAllKeys success on server 1(10.0.0.3)
例 :验证用户数据是否已同步
本示例使用 findAllKeys 来确认集群中的所有 HSM 都包含相同的用户、密钥所有权和密钥共享值。为了执行此操作,它获取了每个 HSM 上的密钥用户数据的哈希并比较了哈希值。
为了获取密钥哈希,该命令在第二个参数中使用了值 1
。由于可选文件名已忽略,因此该命令将密钥哈希写入到 stdout。
本示例指定了用户 6
,但哈希值对于拥有或共享 HSM 上的任一密钥的任何用户都是相同的。如果指定的用户不拥有或共享任何密钥 (如 CO),则该命令不会返回哈希值。
输出表明集群中的两个 HSM 的密钥哈希是相同的。如果其中一个 HSM 具有不同的用户、不同的密钥所有者或不同的共享用户,密钥哈希值将不相等。
aws-cloudhsm>
findAllKeys 6 1
Keys on server 0(10.0.0.1): Number of keys found 3 number of keys matched from start index 0::3 8(s),9(s),11,17(s) Key Hash: 55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49 findAllKeys success on server 0(10.0.0.1) Keys on server 1(10.0.0.2): Number of keys found 3 number of keys matched from start index 0::3 8(s),9(s),11(o),17(s) Key Hash: 55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49 findAllKeys success on server 1(10.0.0.2)
此命令演示了哈希值表示 HSM 上的所有密钥的用户数据。此命令对用户 3 使用了 findAllKeys。与仅拥有或共享 3 个密钥的用户 6 不同,用户 3 拥有或共享 17 个密钥,但它们的密钥哈希值是相同的。
aws-cloudhsm>
findAllKeys 3 1
Keys on server 0(10.0.0.1): Number of keys found 17 number of keys matched from start index 0::17 6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o) Key Hash: 55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49 findAllKeys success on server 0(10.0.0.1) Keys on server 1(10.0.0.2): Number of keys found 17 number of keys matched from start index 0::17 6(o),7(o),8(s),11(o),12(o),14(o),262159(o),262160(o),17(s),262162(s),19(s),20(o),21(o),262177(o),262179(o),262180(o),262181(o) Key Hash: 55655676c95547fd4e82189a072ee1100eccfca6f10509077a0d6936a976bd49 findAllKeys success on server 1(10.0.0.2)
参数
由于此命令没有命名参数,因此您必须按语法图中指定的顺序输入参数。
findAllKeys
<user id>
<key hash (0/1)>
[<output file>
]
- <user id>
-
获取指定用户拥有或共享的所有密钥。输入 HSM 上的用户的用户 ID。要查找所有用户的用户 ID,请使用 listUsers。
所有用户 ID 都有效,但
findAllKeys
仅为加密用户 (CU) 返回密钥。必需:是
- <key hash>
-
包含 (
1
) 或排除 (0
) 用户所有权以及每个 HSM 中的所有密钥的共享数据的哈希。当
user id
参数表示拥有或共享密钥的用户时,系统将填充密钥哈希。密钥哈希值对拥有或共享 HSM 上的密钥的所有用户都是相同的,即使它们拥有和共享不同的密钥。但是,当user id
表示不拥有或共享任何密钥的用户 (如 CO) 时,将不会填充哈希值。必需:是
- <output file>
-
将输出写入到指定文件。
必需:否
默认值:Stdout
相关 主题
-
key_mgmt_util 中的 findKey
-
key_mgmt_util 中的 getKeyInfo