PKCS11证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PKCS11证书相关的知识,希望对你有一定的参考价值。

Dot NET是否支持HSM设备的PKCS11证书。如果没有,是否有任何其他可用的第三方实用程序支持pkcs11证书?

答案

不确定“HSM设备”的含义,因此您需要检查您的要求的具体情况。

否则.NET确实支持PKCS9,但核心.NET中没有PKCS11的标志(对于以前的System.Security.Cryptography.Pkcs命名空间)。

在核心.NET之外有一些搜索命中(例如http://msdn.microsoft.com/en-us/library/microsoft.clm.shared.profiletemplates.smartcardprovidertype(VS.85).aspx)。

另一答案

这个库可以满足您的需求:http://www.ncryptoki.com

另一答案

对于PKCS11,您可以使用开源Pkcs11Interop。它工作正常,包含大量单元测试和使用示例。

另一答案

我不是.NET专家,但根据谷歌PKIblackbox有一个.NET工具包,它说PCKS#11。然后存在一些PKCS#11-CSP包装器,允许通过CryptoAPI访问PKCS#11模块,因为我认为.NET世界有许多帮助器。其中一个包装是CSP11

另一答案

您可以使用以下语句从.net轻松调用PKCS11 API:

    [DllImport("cryptoki.dll")]
    static extern ushort C_Initialize(int reserved);
另一答案

Windows和.NET凭借其签署的Windows平台,拥有它自己的PKCS#11的替代品。

在.NET本身,System.Security.Cryptography具有密钥存储提供商的概念,在Windows中有CryptoAPI及其加密服务提供商及其较小的子集,称为为智能卡设计的微型驱动程序。

在这两种情况下,基于相关加密API构建的应用程序都可以访问与其集成的硬件安全模块等加密设备。

所有供应商都将提供与这些提供商模型中的一个或多个的集成,因此如果您有兴趣,可以在不使用PKCS#11的情况下使用这些设备。

如果由于某种原因需要使用PKCS#11,并且在某些情况下可能需要它,那么您应该查看https://www.pkcs11interop.net/,因为它为HSM供应商提供的本机PKCS#11库提供了托管包装器。

如果您沿着这条路线前进,您可以使用SoftHSM(https://www.opendnssec.org/softhsm/)进行测试,如果您没有这样的设备,如果您使用Windows加密API,您可以使用Windows中包含的虚拟智能卡解决方案进行测试这将做一个合理的工作,近似于您将使用物理HSM的问题。

以上是关于PKCS11证书的主要内容,如果未能解决你的问题,请参考以下文章

如何通过模板获取PKCS11 PublicKey

如何从 .SPC(代码签名证书)和 .PKCS12(私钥)生成 PKCS12 (.p12)?

bash 脚本中带有 PKCS#12 证书的 cURL

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

使用 openssl 将多个证书加载到 PKCS12

将证书链保存在 pkcs12 密钥库中