使用 KMU 加密和解密 AWS CloudHSM 文件
使用 AWS CloudHSM key_mgmt_util 中的 aesWrapUnwrap 命令加密或解密磁盘上文件的内容。此命令可用于对加密密钥进行包装和解开包装,但您可对包含小于 4 KB (4096 字节) 数据的任何文件使用它。
aesWrapUnwrap 使用 AES 密钥包装
在运行任何 key_mgmt_util 命令之前,您必须启动 key_mgmt_util 并以加密用户(CU)身份登录到 HSM。
语法
aesWrapUnwrap -h aesWrapUnwrap -m
<wrap-unwrap mode>
-f<file-to-wrap-unwrap>
-w<wrapping-key-handle>
[-i<wrapping-IV>
] [-out<output-file>
]
示例
这些示例演示如何使用 aesWrapUnwrap 加密和解密文件中的加密密钥。
例 :包装加密密钥
此命令使用 aesWrapUnwrap 包装三重 DES 对称密钥(以明文形式从 HSM 导出至 3DES.key
文件)。您可以使用类似命令包装保存在文件中的任何密钥。
此命令使用值为 1
的 -m
参数来指示包装模式。它使用 -w
参数指定 HSM 中的 AES 密钥 (密钥句柄 6
) 作为包装密钥。它将生成的包装密钥写入到 3DES.key.wrapped
文件。
输出显示,此命令已成功运行并且操作使用了默认 IV (首选设置)。
Command:
aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped
Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IV result data: 49 49 E2 D0 11 C1 97 22 17 43 BD E3 4E F4 12 75 8D C1 34 CF 26 10 3A 8D 6D 0A 7B D5 D3 E8 4D C2 79 09 08 61 94 68 51 B7 result written to file 3DES.key.wrapped Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
例 :将加密密钥解开包装
此示例演示如何使用 aesWrapUnwrap 将文件中的已包装(已加密)密钥解开包装(解密)。在将密钥导入到 HSM 中之前,您可能需要执行与此类似的操作。例如,如果您尝试使用 imSymKey 命令导入已加密密钥,它将返回错误,因为已加密密钥没有该类型的明文密钥所需的格式。
此命令将 3DES.key.wrapped
文件中的密钥解开包装并将明文写入到 3DES.key.unwrapped
文件。此命令使用值为 0
的 -m
参数指示解开包装模式。它使用 -w
参数指定 HSM 中的 AES 密钥 (密钥句柄 6
) 作为包装密钥。它将生成的包装密钥写入到 3DES.key.unwrapped
文件。
Command:
aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped
Warning: IV (-i) is missing. 0xA6A6A6A6A6A6A6A6 is considered as default IV result data: 14 90 D7 AD D6 E4 F5 FA A1 95 6F 24 89 79 F3 EE 37 21 E6 54 1F 3B 8D 62 result written to file 3DES.key.unwrapped Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS
参数
- -h
-
显示该命令的帮助信息。
必需:是
- -m
-
指定模式。要包装 (加密) 文件内容,键入
1
;要将文件内容进行解开包装 (解密),键入0
。必需:是
- -f
-
指定要包装的文件。输入一个包含小于 4 KB (4096 字节) 数据的文件。此操作可用于将加密密钥进行包装和解开包装。
必需:是
- -w
-
指定包装密钥。在 HSM 上输入 AES 密钥的密钥句柄。此参数为必需参数。要查找密钥句柄,请使用 findKey 命令。
要创建包装密钥,请使用 genSymKey 生成 AES 密钥 (类型 31)。
必需:是
- -i
-
指定算法的备用初始值 (IV)。除非您有需要备用值的特殊条件,否则请使用默认值。
默认值:
0xA6A6A6A6A6A6A6A6
。默认值是在 AES 密钥包装算法规范中定义的。 必需:否
- -out
-
为包含已包装或已解开包装密钥的输出文件指定备用名称。本地目录中的默认名称为
wrapped_key
(对于包装操作) 和unwrapped_key
(对于解开包装操作)。如果该文件存在,则 aesWrapUnwrap 将覆盖该文件而不发出警告。如果此命令失败,则 aesWrapUnwrap 将创建一个无内容的输出文件。
默认名称:
wrapped_key
(对于包装)。unwrapped_key
(对于解开包装)。必需:否