wrapKey - AWS CloudHSM

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

wrapKey

key_mgmt_util 中的 wrapKey 命令将对称密钥或私有密钥的加密副本从 HSM 导出到文件中。当您运行 wrapKey 时,指定要导出的密钥、HSM 上用于加密(包装)要导出的密钥的密钥和输出文件。

wrapKey 命令将已加密密钥写入您指定的文件,但它不会从 HSM 中删除此密钥,也不会阻止您将它用于加密操作。您可以多次导出相同的密钥。

只有密钥的拥有者(即创建该密钥的 CU 用户)才能导出它。共享密钥的用户可以在加密操作中使用密钥,但无法导出它。

要将加密密钥导回 HSM,请使用unWrapKey。要从 HSM 导出纯文本密钥,请根据需要使用exSymKeyexportPrivateKey。该aesWrapUnwrap命令无法解密(解包)加密的密钥。wrapKey

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

语法

wrapKey -h wrapKey -k <exported-key-handle> -w <wrapping-key-handle> -out <output-file> [-m <wrapping-mechanism>] [-aad <additional authenticated data filename>] [-t <hash-type>] [-noheader] [-i <wrapping IV>] [-iv_file <IV file>] [-tag_size <num_tag_bytes>>]

示例

此命令将导出 192 位三重 DES (3DES) 对称密钥 (密钥句柄 7)。它使用 HSM 中的 256 位 AES 密钥 (密钥句柄 14) 包装密钥 7。然后,它将加密的 3DES 密钥写入 3DES-encrypted.key 文件。

输出表明,密钥 7 (3DES 密钥) 已成功包装并写入指定文件。加密密钥的长度为 307 个字节。

Command: wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4 Key Wrapped. Wrapped Key written to file "3DES-encrypted.key length 307 Cfm2WrapKey returned: 0x00 : HSM Return: SUCCESS

参数

-h

显示该命令的帮助信息。

必需:是

-k

要导出的密钥的密钥句柄。输入您拥有的对称密钥或私有密钥的密钥句柄。要查找密钥句柄,请使用 findKey 命令。

要验证是否能导出密钥,请使用 getAttribute 命令获取由常量 354 表示的 OBJ_ATTR_EXTRACTABLE 属性的值。有关解释密钥属性的帮助,请参阅 密钥属性引用

您只能导出您拥有的那些密钥。要查找密钥的所有者,请使用getKeyInfo命令。

必需:是

-w

指定包装密钥。在 HSM 上输入 AES 密钥或 RSA 密钥的密钥句柄。此参数为必需参数。要查找密钥句柄,请使用 findKey 命令。

要创建包装密钥,请使用genSymKey生成 AES 密钥(类型 31)或使用 GenrSA KeyPair 生成 RSA 密钥对(类型 0)。如果您使用的是 RSA 密钥对,请确保用其中的一个密钥包装密钥,然后用另一个密钥解包。要验证某个密钥是否可以用作包装密钥,请使用 getAttribute 获取 OBJ_ATTR_WRAP 属性的值,该值由常量 262 表示。

必需:是

-out

输出文件的路径和名称。当此命令成功时,此文件将包含已导出密钥的加密副本。如果该文件已存在,则命令将覆盖该文件而不发出警告。

必需:是

-m

表示包装机制的值。CloudHSM 支持以下机制:

机制
AES_KEY_WRAP_PAD_PKCS5 4
NIST_AES_WRAP_NO_PAD 5
NIST_AES_WRAP_PAD 6
RSA_AES 7
RSA_OAEP(有关最大数据大小,请参阅本节后面的说明) 8
AES_GCM 10
CLOUDHSM_AES_GCM 11
RSA_PKCS(有关最大数据大小,请参阅本节后面的说明)。有关即将发生的更改,请参阅下面的注释 1 12

必需:是

注意

使用RSA_OAEP包装机制时,可以封装的最大密钥大小由 RSA 密钥的模数和指定哈希的长度决定,如下所示:最大密钥大小 = (modulusLengthInBytes-2* Bytes hashLengthIn -2)。

使用 RSA_PKCS 封装机制时,可以封装的最大密钥大小由 RSA 密钥的模数决定,如下所示:最大密钥大小 =(字节 -11)。modulusLengthIn

-t

表示哈希算法的值。CloudHSM 支持以下算法:

哈希算法
SHA1 2
SHA256 3
SHA384 4
SHA512 5
SHA224(对 RSA_AESRSA_OAEP 有效) 6

必需:否

-aad

包含 AAD 的文件名。

注意

仅对 AES_GCMCLOUDHSM_AES_GCM 机制有效。

必需:否

-noheader

忽略指定 CloudHSM 特定的密钥属性的标头。在您希望使用 key_mgmt_util 外的工具解开包装密钥时使用此参数。

必需:否

-i

初始化向量 (IV)(十六进制值)。

注意

仅当通过 CLOUDHSM_AES_KEY_WRAPNIST_AES_WRAP 机制的 -noheader 参数传递时有效。

必需:否

-iv_file

要写入在响应中获得的 IV 值的文件。

注意

仅当通过 AES_GCM 机制的 -noheader 参数传递时有效。

必需:否

-tag_size

要与包装的 Blob 一起保存的标签的大小。

注意

仅当通过 AES_GCMCLOUDHSM_AES_GCM 机制的 -noheader 参数传递时有效。最小标签大小为 8。

必需:否

[1] 根据 NIST 指南中对 FIPS 集群的要求,2023 年之后不再允许使用。有关详细信息,请参阅 FIPS 140 合规:2024 年机制弃用

相关 主题