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证书的主要内容,如果未能解决你的问题,请参考以下文章
如何从 .SPC(代码签名证书)和 .PKCS12(私钥)生成 PKCS12 (.p12)?