【问题标题】:Extract CKA_Value from Key or data Object in PKCS11从 PKCS11 中的键或数据对象中提取 CKA_Value
【发布时间】:2020-06-11 23:20:16
【问题描述】:

我想将 PKCS11 的 KEY/Data 对象中的键值读取到局部变量中。 我观察到 Key 存储在 Key 对象的 CKA_VALUE 中。 哪个是用于将此值传递给我的局部变量的理想函数?

我用过 C_GetAttributeValue 但没用。

请指导我。

谢谢 哈沙

【问题讨论】:

    标签: pkcs#11


    【解决方案1】:

    非对称算法和对称密钥的私钥通常无法从硬件设备中提取。这是一种保护措施。这就是为什么你无法获得价值。

    存在例外(某些实现允许您添加密钥并将其明确标记为不受保护,在这种情况下可以稍后读取密钥)但这会降低安全性和其他用户利益,因此不受欢迎。

    【讨论】:

      【解决方案2】:

      在某些实现中,如果您将 CKA.CKA_SENSITIVE 设置为 false,是的,您可以读取该值。

      【讨论】:

        【解决方案3】:

        如果在某个键上将 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 包装密钥来提取密钥,然后在单元外解开包装的密钥。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-01
          相关资源
          最近更新 更多