使用 KMU 获取 AWS CloudHSM 密钥属性
使用 AWS CloudHSM key_mgmt_util 中的 getAttribute 命令将 AWS CloudHSM 密钥的一个或所有属性值写入文件。如果密钥类型不存在您指定的属性(如 AES 密钥的模数),则 getAttribute 将返回错误。
密钥属性是密钥的属性。它们包括各种特征 (如密钥类型、类、标签和 ID) 以及表示您可使用密钥执行的操作 (如加密、解密、包装、签名和验证) 的值。
您只能对您拥有的密钥和与您共享的密钥使用 getAttribute。您可运行此命令或 cloudhsm_mgmt_util 中的 getAttribute 命令,以从集群的所有 HSM 中获取密钥的一个属性值并将其写入到 stdout 或文件。
要获取包含属性和表示属性的常量的列表,请使用 listAttributes 命令。要更改现有密钥的属性值,请使用 key_mgmt_util 中的 setAttribute 和 cloudhsm_mgmt_util 中的 setAttribute。有关解释密钥属性的帮助,请参阅 KMU 的 AWS CloudHSM 密钥属性参考。
在运行任何 key_mgmt_util 命令之前,您必须启动 key_mgmt_util 并以加密用户(CU)身份登录到 HSM。
语法
getAttribute -h getAttribute -o
<key handle>
-a<attribute constant>
-out<file>
示例
以下示例演示如何使用 getAttribute 获取 HSM 中的密钥的属性。
例 :获取密钥类型
此示例将获取密钥的类型 (如 AES、3DES、通用密钥、RSA 或椭圆曲线密钥对)。
第一个命令运行 listAttributes,以获取密钥属性和表示它们的常量。输出显示,密钥类型的常量为 256
。有关解释密钥属性的帮助,请参阅 KMU 的 AWS CloudHSM 密钥属性参考。
Command:
listAttributes
Description =========== The following are all of the possible attribute values for getAttributes. OBJ_ATTR_CLASS = 0 OBJ_ATTR_TOKEN = 1 OBJ_ATTR_PRIVATE = 2 OBJ_ATTR_LABEL = 3 OBJ_ATTR_KEY_TYPE = 256 OBJ_ATTR_ID = 258 OBJ_ATTR_SENSITIVE = 259 OBJ_ATTR_ENCRYPT = 260 OBJ_ATTR_DECRYPT = 261 OBJ_ATTR_WRAP = 262 OBJ_ATTR_UNWRAP = 263 OBJ_ATTR_SIGN = 264 OBJ_ATTR_VERIFY = 266 OBJ_ATTR_LOCAL = 355 OBJ_ATTR_MODULUS = 288 OBJ_ATTR_MODULUS_BITS = 289 OBJ_ATTR_PUBLIC_EXPONENT = 290 OBJ_ATTR_VALUE_LEN = 353 OBJ_ATTR_EXTRACTABLE = 354 OBJ_ATTR_KCV = 371
第二个命令运行 getAttribute。它请求密钥句柄 524296
的密钥类型 (属性 256
) 并将其写入到 attribute.txt
文件。
Command:
getAttribute -o 524296 -a 256 -out attribute.txt
Attributes dumped into attribute.txt file
最后一个命令获取密钥文件的内容。输出显示,密钥类型为 0x15
或 21
,这是一个三重 DES (3DES) 密钥。有关类和类型值的定义,请参阅密钥属性参考。
$
cat attribute.txt
OBJ_ATTR_KEY_TYPE 0x00000015
例 :获取密钥的所有属性
此命令将获取密钥句柄为 6
的密钥的所有属性并将这些属性写入到 attr_6
文件中。它使用表示所有属性的属性值 512
。
Command:
getAttribute -o 6 -a 512 -out attr_6
got all attributes of size 444 attr cnt 17 Attributes dumped into attribute.txt file Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS>
此命令将显示包含所有属性值的示例属性文件的内容。在这些值中,它报告密钥是一个具有 ID test_01
和标签 aes256
的 256 位 AES 密钥。此密钥是可提取的永久密钥 (也就是说,它不是仅会话密钥)。有关解释密钥属性的帮助,请参阅 KMU 的 AWS CloudHSM 密钥属性参考。
$
cat attribute.txt
OBJ_ATTR_CLASS 0x04 OBJ_ATTR_KEY_TYPE 0x15 OBJ_ATTR_TOKEN 0x01 OBJ_ATTR_PRIVATE 0x01 OBJ_ATTR_ENCRYPT 0x01 OBJ_ATTR_DECRYPT 0x01 OBJ_ATTR_WRAP 0x01 OBJ_ATTR_UNWRAP 0x01 OBJ_ATTR_SIGN 0x00 OBJ_ATTR_VERIFY 0x00 OBJ_ATTR_LOCAL 0x01 OBJ_ATTR_SENSITIVE 0x01 OBJ_ATTR_EXTRACTABLE 0x01 OBJ_ATTR_LABEL aes256 OBJ_ATTR_ID test_01 OBJ_ATTR_VALUE_LEN 0x00000020 OBJ_ATTR_KCV 0x1a4b31
参数
- -h
-
显示该命令的帮助信息。
必需:是
- -o
-
指定目标密钥的密钥句柄。您在每个命令中只能指定一个密钥。要获取密钥的密钥句柄,请使用 findKey。
此外,您必须拥有指定密钥或必须与您共享此密钥。要查找密钥的用户,请使用 getKeyInfo。
必需:是
- -a
-
标识属性。输入表示属性的常量,或表示所有属性的
512
。例如,要获取密钥类型,请键入256
(OBJ_ATTR_KEY_TYPE
属性的常量)。要列出属性及其常量,请使用 listAttributes。有关解释密钥属性的帮助,请参阅 KMU 的 AWS CloudHSM 密钥属性参考。
必需:是
- -out
-
将输出写入到指定文件。键入文件路径。您不能将输出写入到
stdout
。如果指定文件存在,getAttribute 将覆盖此文件而不发出警告。
必需:是
相关 主题
cloudhsm_mgmt_util 中的 getAttribute