【发布时间】:2020-06-11 23:20:16
【问题描述】:
我想将 PKCS11 的 KEY/Data 对象中的键值读取到局部变量中。 我观察到 Key 存储在 Key 对象的 CKA_VALUE 中。 哪个是用于将此值传递给我的局部变量的理想函数?
我用过 C_GetAttributeValue 但没用。
请指导我。
谢谢 哈沙
【问题讨论】:
标签: pkcs#11
我想将 PKCS11 的 KEY/Data 对象中的键值读取到局部变量中。 我观察到 Key 存储在 Key 对象的 CKA_VALUE 中。 哪个是用于将此值传递给我的局部变量的理想函数?
我用过 C_GetAttributeValue 但没用。
请指导我。
谢谢 哈沙
【问题讨论】:
标签: pkcs#11
非对称算法和对称密钥的私钥通常无法从硬件设备中提取。这是一种保护措施。这就是为什么你无法获得价值。
存在例外(某些实现允许您添加密钥并将其明确标记为不受保护,在这种情况下可以稍后读取密钥)但这会降低安全性和其他用户利益,因此不受欢迎。
【讨论】:
在某些实现中,如果您将 CKA.CKA_SENSITIVE 设置为 false,是的,您可以读取该值。
【讨论】:
如果在某个键上将 CKA_EXTRACTABLE 设置为 CK_FALSE,则无法使用 PKCS#11 提取该值。
如果 CKA_SENSITIVE 设置为 CK_TRUE,则无法以纯文本形式提取密钥。
然而,
如果 CKA_EXTRACTABLE 为 CK_TRUE,CKA_SENSITIVE 为 CK_FALSE,则可以使用 CKA_VALUE 提取密钥。
如果 CKA_EXTRACTABLE 是 CK_TRUE,并且 CKA_SENSITIVE 是 CK_TRUE,则可以通过使用 C_WrapKey 包装密钥来提取密钥,然后在单元外解开包装的密钥。
【讨论】: