在 CAPI/CNG 中替换 PKCS #11 智能卡数据对象

Posted

技术标签:

【中文标题】在 CAPI/CNG 中替换 PKCS #11 智能卡数据对象【英文标题】:Replacement of PKCS #11 Smart Card Data Object in CAPI/CNG 【发布时间】:2020-05-18 12:19:38 【问题描述】:

有 3 个主要的 PKCS #11 对象(密钥、证书、数据),我找到了 CAPI/CNG 中密钥和证书对象的替代品,但我没有找到使用 CAPI/CNG 在智能卡上创建数据对象的替代品

PKCS #11 数据对象文档在这里 https://www.cryptsoft.com/pkcs11doc/v220/group__SEC__10__5__DATA__OBJECTS.html

【问题讨论】:

无法使用该 API 控制此类对象。 【参考方案1】:

PKCS#11 或更确切地说是 Cryptoki 是控制安全令牌的规范。有时将其他敏感数据(例如密码)存储在令牌中可能是有意义的。此外,有时数据用于与方案本身进行交互,例如密钥派生函数的“Info”参数,尽管这些数据通常作为参数提供给 PKCS#11 方法调用。

CAPI/CNG 更倾向于为应用程序提供加密操作。不支持通用数据对象是有道理的;毕竟,此类对象可能已经存在于软件本身中。因此,无需将其存储在安全设备上。如果有一种方法可以从安全令牌中检索此类数据,那么我还没有看到它。

【讨论】:

以上是关于在 CAPI/CNG 中替换 PKCS #11 智能卡数据对象的主要内容,如果未能解决你的问题,请参考以下文章

用于 openSSL 的 PKCS#11 引擎

sun.security.pkcs11.SunPKCS11的访问限制

如何通过模板获取PKCS11 PublicKey

sun.security.pkcs11.wrapper.PKCS11Exception:CKR_ATTRIBUTE_TYPE_INVALID

如何通过 PKCS#11 API 从 eToken 获取私钥?

如何将公共RSA密钥上传到HSM(使用PKCS#11库)?