Cryptography 对称密钥创建,CKA_SENSITIVE为false,CKA_PRIVATE为true

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

我正在使用云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_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_私密性,才有效。