10

ハードウェアセキュリティモジュールの暗号化をC#アプリケーションと統合するにはどうすればよいですか?

4

3 に答える 3

6

HSMは通常、ハードウェアセキュリティモジュールを意味します。これは通常、秘密鍵または秘密鍵がコンピュータのRAMに入らないように物理的に保護するデバイスです。ほとんどのHSMは、キーを保持するだけでなく、暗号化と署名を行います。

HSMの暗号化機能へのアクセスは、少数のAPIを介して行うことができます。PKCS#11Chil(OpenSSL)を含みます。HSMを使用するためのMSCAPIおよびCNGプロバイダーも存在します。

ほとんどの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 /CNGHSMを使用する必要があるサードパーティプロバイダーへのアクセスが許可されていません。PInvoke呼び出しを使用して、アンマネージCAPI / CNGまたはPKCS#11ライブラリコードを直接呼び出す必要があります。

于 2011-04-07T19:15:03.430 に答える
5

PKCS#11準拠のデバイスの場合は、NCryptokiを使用できます。彼らのウェブサイトから:

NCryptokiは、PKCS#11仕様を実装し、PKCS#11準拠のトークンを任意のアプリケーションに統合するためのC#、VB.NET、Visual Basic 6、Delphi、およびその他のCOM相互運用言語用のAPIを提供する.NETFramework用のライブラリです。

[...]

主な特徴:

  • PKCS#112.20仕様に準拠
  • PKCS#11スマートカード/トークン/HSMに準拠
  • 32ビットまたは64ビットプラットフォーム
  • .NET Framework 2.0、3.0、3.5、および4.0
于 2011-04-07T14:54:51.680 に答える
5

Pkcs11Interopを使用しましたが、非常にうまく機能しました。これは、Apache2.0ライセンスのオープンソースライブラリです。私が見る限り、それはかなり最新であり、まだ維持されています。

于 2016-07-18T12:14:34.733 に答える