HSM管理工具(hsm_mgmt_tool)使用常量表示HSM中密钥的属性,本文可帮助您了解密钥属性,查看在命令中表示密钥的常量以及了解密钥属性值。
密钥属性常量
属性 | 常量 | 值 |
OBJ_ATTR_CLASS | 0 | 2:公有私有密钥对中的公有密钥。 3:公有私有密钥对中的私有密钥。 4:私有(对称) 密钥。 |
OBJ_ATTR_TOKEN | 1 | 0:False。会话密钥。 1:True。永久密钥。 |
OBJ_ATTR_PRIVATE | 2 | 0:False。 1:True。此属性指示未经身份验证的用户是否可以列出密钥的属性。由于 CloudHSM PKCS#11 提供程序当前不支持公有会话,所有密钥(包括公有/私有密钥对中的公有密钥)的此属性设置为 1。 |
OBJ_ATTR_LABEL | 3 | 用户定义的字符串。它在集群中不必是唯一的。 |
OBJ_ATTR_TRUSTED | 134 | 0:False。 1:True。 |
OBJ_ATTR_KEY_TYPE | 256 | 0:RSA。 1:DSA。 3:EC。 16:普通机密。 18:RC4。 21:三重 DES (3DES)。 31:AES。 |
OBJ_ATTR_ID | 258 | 用户定义的字符串。在集群中必须是唯一的。默认值是空字符串。 |
OBJ_ATTR_SENSITIVE | 259 | 0:False。公有私有密钥对中的公有密钥。 1:True。 |
OBJ_ATTR_ENCRYPT | 260 | 0:False。 1:True。密钥可用于加密数据。 |
OBJ_ATTR_DECRYPT | 261 | 0:False。 1:True。密钥可用于解密数据。 |
OBJ_ATTR_WRAP | 262 | 0:False。 1:True。密钥可用于加密密钥。 |
OBJ_ATTR_UNWRAP | 263 | 0:False。 1:True。密钥可用于解密密钥。 |
OBJ_ATTR_SIGN | 264 | 0:False。 1:True。密钥可用于签名(私有密钥)。 |
OBJ_ATTR_VERIFY | 266 | 0:False。 1:True。密钥可用于验证(公有密钥)。 |
OBJ_ATTR_DERIVE | 268 | 0:False。 1:True。该函数派生密钥。 |
OBJ_ATTR_MODULUS | 288 | 用于生成 RSA 密钥对的模数。对于 EC 密钥,此值表示十六进制格式的 ANSI X9.62 ecPoint 值 Q 的 DER 编码。 对于其他密钥类型,此属性不存在。 |
OBJ_ATTR_MODULUS_BITS | 289 | 用于生成 RSA 密钥对的模数的长度。对于 EC 密钥,这表示用于生成密钥的椭圆曲线 ID。 对于其他密钥类型,此属性不存在。 |
OBJ_ATTR_PUBLIC_EXPONENT | 290 | 用于生成 RSA 密钥对的公有指数。 对于其他密钥类型,此属性不存在。 |
OBJ_ATTR_VALUE_LEN | 353 | 密钥长度(字节)。 |
OBJ_ATTR_EXTRACTABLE | 354 | 0:False。 1:True。密钥可从 HSM 中导出。 |
OBJ_ATTR_LOCAL | 355 | 0。False。密钥已导入到 HSM 中。 1:True。 |
OBJ_ATTR_NEVER_EXTRACTABLE | 356 | 0:False。 1:True。密钥无法从 HSM 中导出。 |
OBJ_ATTR_ALWAYS_SENSITIVE | 357 | 0:False。 1:True。 |
OBJ_ATTR_DESTROYABLE | 370 | 0:False。 1:True。 |
OBJ_ATTR_KCV | 371 | 密钥的密钥检查值。有关更多信息,请参阅其他详细信息。 |
OBJ_ATTR_ALL | 512 | 表示所有属性。 |
OBJ_ATTR_WRAP_WITH_TRUSTED | 528 | 0:False。 1:True。 |
OBJ_ATTR_UNWRAP_TEMPLATE | 1073742354 | 值应使用应用于使用此包装密钥解开包装的任何密钥的属性模板。 |
OBJ_ATTR_WRAP_TEMPLATE | 1073742353 | 值应使用属性模板来匹配使用此包装密钥包装的密钥。 |
其他详细信息
密钥检查值 (KCV)
密钥校验值(KCV)是指HSM中密钥的3字节哈希值或校验值。您可以在HSM之外参照HSM生成规则计算出KCV,在导出密钥后和HSM通过getAttribute获取的KCV比较,以确认密钥的身份和完整性。
阿里云HSM的KCV生成规则如下:
对称密钥:密钥对zero-block(全0)数据段执行加密算法得到密文后,取密文的前3个字节作为校验值。
非对称密钥对:公钥SHA-1哈希值的前3个字节。
HMAC密钥:目前不支持HMAC密钥的KCV。