Cryptography 对称密钥创建,CKA_SENSITIVE为false,CKA_PRIVATE为true
我正在使用云HSM服务,当我尝试创建具有以下属性的AES 256密钥时,我看到Cryptography 对称密钥创建,CKA_SENSITIVE为false,CKA_PRIVATE为true,cryptography,aes,pkcs#11,hsm,symmetric-key,Cryptography,Aes,Pkcs#11,Hsm,Symmetric Key,我正在使用云HSM服务,当我尝试创建具有以下属性的AES 256密钥时,我看到CKA_ATTRIBUTE_INVALID错误: CKA_TOKEN=0 CKA_SENSITIVE=0 CKA_PRIVATE=1 CKA_ENCRYPT=1 CKA_DECRYPT=1 CKA_SIGN=1 CKA_VERIFY=1 CKA_WRAP=1 CKA_UNWRAP=1 CKA_DERIVE=1 CKA_EXTRACTABLE=1 CKA_MODIFIABLE=0 因此出现了错误: 状态:C_Deriv
CKA_ATTRIBUTE_INVALID
错误:
CKA_TOKEN=0
CKA_SENSITIVE=0
CKA_PRIVATE=1
CKA_ENCRYPT=1
CKA_DECRYPT=1
CKA_SIGN=1
CKA_VERIFY=1
CKA_WRAP=1
CKA_UNWRAP=1
CKA_DERIVE=1
CKA_EXTRACTABLE=1
CKA_MODIFIABLE=0
因此出现了错误:
状态:C_DeriveKey
返回错误。(CKR\u属性值无效
)
我计算出,如果我传递CKA\u SENSITIVE
和CKA\u PRIVATE
都是1,那么它就会传递并创建密钥
我的问题是如何知道哪些是有效的属性组合?有人能给我指一份文件吗。 我在标准
PKCS#11
spec指南中没有找到太多细节
我将非常感谢您的帮助
干杯。据我所知,以下属性的值是错误的:
CKA_SIGN=1
CKA_VERIFY=1
签名时不能使用对称密钥
此外,该值还有一些问题:
CKA_TOKEN=0
表示密钥是会话对象
CKA_SENSITIVE=0
表示键值“可见”-不安全
根据我的经验:尝试从模板中逐个删除属性,您可以发现哪些属性是错误的。通常,如果普通用户只需使用用户PIN作为身份验证(即密钥不“敏感”)复制值,则密钥不能是“私有”的。然而,这些组合中有许多是特定于HSM的,甚至可能与它们配置为哪种模式有关(FIPS模式通常是最严格的模式)。@MaartenBodewes在PKCS的上下文中#11“private”意味着可以在不验证令牌的情况下找到对象。它的使用可能需要未来的认证。啊,是的,深夜大脑放屁。尽管如此,找不到和看不懂是一个奇怪的组合。同意这是奇怪的。但是它是有效的组合。谢谢@MaartenBodewes我们有没有标准的pkcs11规范可以告诉我们正确的属性组合?对称密钥可以用于“签名”,因为
CKA\u SIGN
属性也用于MAC操作。实际上,CKA_TOKEN
是错误的,但这只是用户的选择。当然,CKA_SENSITIVE
的描述是正确的。CKA_SIGN=1
只影响方法C_SIGN
&Co。MAC不是纯粹的签名过程。我做了一些搜索,似乎IBM HSM的require SIGN需要出现才能使用HMAC。除此之外,密钥根本不需要CKA_符号,除非是MAC机。@Alexander谢谢,只有在通过和创建密钥时,我保持CKA_敏感和CKA_私密性,才有效。