如何将HSM加密与C#集成?

如何将HSM加密与C#集成?,c#,encryption,hsm,hardware-security-module,C#,Encryption,Hsm,Hardware Security Module,如何与C应用程序集成?如果是兼容PKCS 11的设备,您可以使用。从他们的网站: NCryptoki是.NET的一个库 实现PKCS#11的框架 规范,并为 C#,VB.NET,Visual Basic 6,Delphi和 其他COM互操作语言 集成PKCS#11兼容令牌 在任何应用中 [……] 主要特点: 符合PKCS#11 2.20规范 符合任何PKCS#11智能卡/代币/HSM 32或64位平台 .NET Framework 2.0、3.0、3.5和4.0 HSM通常指硬件安全模块。这

如何与C应用程序集成?

如果是兼容PKCS 11的设备,您可以使用。从他们的网站:

NCryptoki是.NET的一个库 实现PKCS#11的框架 规范,并为 C#,VB.NET,Visual Basic 6,Delphi和 其他COM互操作语言 集成PKCS#11兼容令牌 在任何应用中

[……]

主要特点:

  • 符合PKCS#11 2.20规范
  • 符合任何PKCS#11智能卡/代币/HSM
  • 32或64位平台
  • .NET Framework 2.0、3.0、3.5和4.0

HSM通常指硬件安全模块。这是一个设备,通常会物理保护私人或秘密密钥,使他们永远不会进入您的计算机的RAM。大多数HSM将为您进行加密和签名,而不仅仅是持有密钥

可以通过一些API访问HSM的加密功能。包括(OpenSSL)。MSCAPI和CNG标定器也可以使用HSMs

大多数HSM供应商将为您提供PKCS#11库或CAPI/CNG提供商。一旦有了这个,就需要根据已发布的API进行编程

通常,使用HSM会有以下几点:

provider = HSM.Connect()
keyhandle = provider.LoadKey("my_rsa_key")
signature = provider.Sign( keyhandle, "Sha1WithRSA", "myData" )
provider.UnloadKey( keyhandle )

不幸的是,CAPI和CNG的管理部分不允许访问您需要通过C#使用CAPI/CNG HSM的第三方提供商。您必须使用PInvoke调用直接调用非托管CAPI/CNG或PKCS#11库代码。

我们使用了它,它工作得非常好。它是一个Apache2.0许可的开放源码库。据我所知,它是相当最新的,仍在维护中

这是重复的吗?假设:HSM=>硬件安全模块。