2012-02-13 5 views
4

.NETは、ハードウェア暗号化アクセラレータを暗号操作(GPUを検出してグラフィック操作に使用する方法)で検出して使用しますか?暗号アクセラレータと.NET

そうでない場合は、どの管理ライブラリをお勧めしますか?

答えて

5

.NETがかなり大きいです。例えば、

  • *Managed:マイクロソフト.NETで

    は、Windows環境下では、名前付きのタイプを見つけることができますSHA1Managedが完全に管理された実装です。 には、がありません。

  • *CryptoServiceProviderなどです。 SHA1CryptoServiceManager CryptoAPI(ネイティブ)コードを使用します。 ネイティブCSPにハードウェアアクセラレーションがある場合は、それを取得します。

  • 新しいフレームワークのバージョンでは、,(Cryptography Next Generation)です。これがCryptoAPIの代替品です。同じルールが適用されます(ネイティブコードでハードウェアアクセラレーションを使用できる場合は、入手できます)。

モノラルでは、すべてのプラットフォームは、あなたが完全に管理されています実装(どんなタイプの名前)デフォルトによります。

ここで、(MSとMono)の両方で、独自の(または第三者の)実装を使用することもできます。 CryptoConfig.CreateFrom(直接的または間接的に、たとえばSHA1.Create)を使用し、machine.configファイルに代替実装への参照が含まれている場合は、アプリケーションに完全に透過的にすることもできます。これにより、あなた(または他の誰か)が任意の実装を別の(ハードウェアアクセラレーションを含む)実装で追加(または置き換え)することができます。

注:新しいAddAlgorithmメソッドを使用すると、フレームワークのバージョン4.0によってさらに簡単になります。

1

一部のハードウェアベンダーは、デフォルトのSChannelおよび他のプロバイダーを独自のものに置き換えます。もしそうなら、.NETは株価の代わりに代替物を使うでしょう。しかし、暗号化ハードウェアを自動的に検出して使用する方法はありません。

ほとんどのアクセラレータは、PKCS#11インターフェイス経由で使用できます。一般に、PKCS#11経由でこのようなアクセラレータを使用するSecureBlackboxを使用できますが、PKCS#11 DLLを "手動で"指定する必要があります(システムに登録されていないDLLは自動検出できません)。

2

です。一部のHSM(ハードウェアセキュリティモジュール)には、CAPIおよび/またはCNGのプロバイダが追加されています。それらのすべてには、通常、PKCS#11ドライバ(Cベース)が付属しています。

現代のハードウェアはデフォルトのCNGプロバイダをカスタム実装に置き換えます。実際には、要求された種類の自動検出が行われます。

これをサポートしていないHSMの場合は、手動でプロバイダを登録するか、最悪の場合カスタムプロバイダがない場合は、手動でPKCS#11にインターフェイスするか、this

関連する問題