PKCS11证书

时间:2009-09-09 09:57:03

标签: c# .net security certificate digital-certificate

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

不确定“HSM设备”是什么意思,因此您需要检查您的要求的具体情况。

否则.NET 支持PKCS9,但核心.NET(前System.Security.Cryptography.Pkcs命名空间)没有PKCS11的迹象。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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中遇到的问题。