使用 AWS CloudHSM KMU 导入私有密钥 - AWS CloudHSM

使用 AWS CloudHSM KMU 导入私有密钥

使用 AWS CloudHSM key_mgmt_util 中的 importPrivateKey 命令将非对称私有密钥从文件导入到硬件安全模块(HSM)。HSM 不允许以明文形式直接导入密钥。该命令使用您指定的 AES 包装密钥对私有密钥进行加密,并在 HSM 中解包密钥。如果您正在尝试将 AWS CloudHSM 密钥与证书关联,请参阅此主题

注意

您不能使用对称密钥或私有密钥导入受密码保护的 PEM 密钥。

必须指定具有 OBJ_ATTR_UNWRAPOBJ_ATTR_ENCRYPT 属性值 1 的 AES 包装密钥。要查找密钥的属性,请使用 getAttribute 命令。

注意

此命令不提供将导入的密钥标记为不可导出的选项。

在运行任何 key_mgmt_util 命令之前,您必须启动 key_mgmt_util 并以加密用户(CU)身份登录到 HSM。

语法

importPrivateKey -h importPrivateKey -l <label> -f <key-file> -w <wrapping-key-handle> [-sess] [-id <key-id>] [-m_value <0...8>] [min_srv <minimum-number-of-servers>] [-timeout <number-of-seconds>] [-u <user-ids>] [-wk <wrapping-key-file>] [-attest]

示例

此示例显示了如何使用 importPrivateKey 将私有密钥导入到 HSM。

例 :导入私有密钥

此命令从名为 rsa2048.key 的文件导入私有密钥,标签为 rsa2048-imported,包含句柄为 524299 的包装密钥。如果命令成功,importPrivateKey 将返回导入密钥的密钥句柄和成功消息。

Command: importPrivateKey -f rsa2048.key -l rsa2048-imported -w 524299 BER encoded key length is 1216 Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS Private Key Unwrapped. Key Handle: 524301 Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

参数

此命令采用以下参数。

-h

显示该命令的命令行帮助。

必需:是

-l

指定用户定义的私有密钥标签。

必需:是

-f

指定要导入的密钥的文件名。

必需:是

-w

指定包装密钥的密钥句柄。此参数为必需参数。要查找密钥句柄,请使用 findKey 命令。

要确定密钥是否可用作包装密钥,请使用 getAttribute 获取 OBJ_ATTR_WRAP 属性 (262) 的值。要创建包装密钥,请使用 genSymKey 创建 AES 密钥(类型 31)。

如果您使用 -wk 参数指定外部解开包装密钥,则 -w 包装密钥用于在导入过程中包装密钥而不是将其解开包装。

必需:是

-sess

指定导入的密钥作为会话密钥。

默认值:导入密钥保存为集群中的持久(令牌)密钥。

必需:否

-id

指定要导入的密钥的 ID。

默认值:无 ID 值。

必需:否

-m_value

指定必须批准使用导入密钥的任何加密操作的用户数量。输入一个 08 之间的值。

只有当命令中的 -u 参数与足够多的用户共享密钥以满足 m_value 要求时,此参数才有效。

默认:0

必需:否

-min_srv

指定在 -timeout 参数的值到期之前导入密钥在其上同步的 HSM 数量的最小值。如果密钥在分配的时间内未同步到指定数量的服务器,则不会创建它。

AWS CloudHSM 自动将每个密钥与集群中的每个 HSM 同步。要加快此过程,请将 min_srv 的值设置为小于集群中的 HSM 数,并设置一个较低的超时值。但请注意,一些请求可能无法生成密钥。

默认值:1

必需:否

-timout

指定在包含 min-serv 参数时,等待密钥在 HSM 间同步的秒数。如果没有指定数字,轮询永远继续。

默认值:无限制

必需:否

-u

指定要与之共享导入的私有密钥的用户列表。此参数向其他 HSM 加密用户 (CU) 授予在加密操作中使用导入密钥的权限。

输入一个逗号分隔的 HSM 用户 ID 列表,例如 -u 5,6。请勿包括当前用户的 HSM 用户 ID。要查找 HSM 上的 CU 的 HSM 用户 ID,请使用 listUsers

默认值:只有当前用户可使用导入密钥。

必需:否

-wk

指定用于包装正在导入密钥的密钥。输入包含明文 AES 密钥的文件的路径和名称。

当您包含此参数时,importPrivateKey 将使用 -wk 文件中的密钥包装正在导入的密钥。它还使用 -w 参数指定的密钥解开包装。

默认值:使用 -w 参数中指定的包装密钥包装和解开包装。

必需:否

-attest

对固件响应执行证明检查,以确保运行集群的固件未受损。

必需:否

相关 主题