2017-02-27 12 views
4

私は、PKCS11Interop生成キーAPIを使用してHSMでRSA公開/秘密鍵ペアを生成しました。 鍵ペアをエクスポートします。 FindAject APIを使用してキーを取得し、GetAttributeValue APIを使用して属性を読み取っている間にAPIがObjectHandleを返すため、キーの値を読み取ることができません。 キーの属性をCKA_EXTRACTABLEに設定すると、キーを生成できません。エクスポート/インポートThales nShield HSMのPKCS11interop C#ラッパーライブラリを使用したRSA鍵ペア?

また、HSMで外部提供の鍵ペアをインポートする必要があります。

ご協力いただきまして誠にありがとうございます。

+0

鍵ペアを作成したときに、秘密鍵を「エクスポート可能」にするよう指定しましたか?また、どのCSPを使用したのですか?場合によっては、ブートゥーマジック(Mimikatzなど)のキーをエクスポートできない場合があります。 – zaitsman

答えて

1

あなたがしようとしていることは、HSM世界ではinsecureとみなされます。それはHSMを持つという目的を破るものです。

しかし、それはできますか?はい。 HSMベンダーがそれをサポートする必要があります。

HSMベンダーは、HSMで生成されたキーを抽出できるかどうか、または(HSM外の)ソフトウェアによって生成されたキーをハードウェアにインポートできるかどうかを判断します。 PKCS#11は、HSMと対話するためのインターフェイスです。 HSMが操作をサポートしない場合、例外をスローします。この例外は、最終的にPKCS11 APIによってスローされます。

これは、抽出操作とインポート操作の両方について、あなたのケースで起こっていることです。これらの操作を実行しようとしているHSMがサポートしていない可能性があります。したがって、HSMベンダーに、これらの操作を自社製品でどのように実行できるかを確認する必要があります。

P .: Thales nShieldには、安全ではないモードでHSMを実行するための設定ファイルが必要です。

注:HSMで生成されたKey/Key Pairを抽出すると、HSM外で生成されたキー/キーペアをインポートすることは、現実世界では安全でない操作とはみなされません。

+0

HSMがダウンすると、キーのバックアップを保つためにエクスポート/インポートを試みています。 Thales(KeySafe)が提供するユーティリティーと、それを介して鍵をエクスポート/インポートできるソフトウェアがあるので、そうする可能性があります。あなたはpkcs11Interop経由でプログラムで行う方法を提案できますか? –

+0

@SGhoshあなたはバックアップ機構としてユーティリティーによって提供されるエクスポートおよびインポート・キーを検討していますが、間違っています。バックアップメカニズムは、HSM上のデータをマスターキーで暗号化した後、マスターキーを分割するという大きなコンセプトです。また、バックアップされたコピーからデータをリストアするときは、マスターキーが再度必要になります。特定の製品でバックアップを実行する方法についてThalesに確認することをお勧めします。彼らはそれを支持しなければならない。私が正しく覚えていれば、それはFIPS準拠の基準の一つです。あなたの手に戻ってセキュリティを侵害しないでください。 –

0

タレスのHSMはGetAttributeValue、ObjectHandleなどのような、そのような機能を持っていないので、私は

CKA_EXTRACTABLEはあなたが別のキーの下にあなたの鍵を抽出することができ、これはないはことを意味しないことを意味..あなたがセーフネットHSMを使用していると思いますキーデータを読み取ることができます。キーハンドルを使用するだけでキーデータを取得できるのであれば、完全に安全でないはずです。

機能モジュール(FM)でもObjectHandleを使用してキーデータを読み込むことはできません。 FMはSafenet HSMだけで動作する独自のソフトウェアで、HSMハードウェアを実行する埋め込みソフトウェアです。 ObjectHandleを使用すると、FMの暗号化、復号化などの特定のHSM関数を呼​​び出すことができます。 キーを抽出することは、別のキーでのみ可能です。

Safenet HSM関数呼び出しを使用してキーをインポートできます。

+0

これはThales HSMで、GetAttributeValue、ObjectHandleなどの機能はPKCS11 APIによって提供されます。あなたは "鍵を抽出することは別の鍵の下でのみ可能です"と言うとき。あなたは鍵をラッピングすることを意味しますか? –

+0

はい。私はタレスのRSA業務に提供されている機能を使用することを強くお勧めします。 RSC暗号コマンド:EK、EO、EQなど –

+0

@AhmetArslan私はThales payShield 9000 HSMをThales nShield HSMと混同していると思います。質問はnShieldに関するものでした。 – softwariness

0

正しい属性設定でRSA秘密鍵をエクスポートできます(もちろん、このシナリオはHSMベンダーが提供する管理対象外のPKCS#11ライブラリでサポートされる必要があります)。ただし、複数の属性を読み込む必要があります(12.1.3 PKCS#11 v2.20 specification)を使用して部分を抽出し、独自のキーのASN.1構造を作成します。

あなたが必要とする特定のタイプのASN.1構造は、使用しているキータイプ(あなたの場合はRSAです)とキーを使用するターゲットシステムの能力、つまり暗号化アプリケーションは通常、メールエージェントなどRSAPrivateKeyの構造体をPKCS#1で定義して開始することができます。

関連する問題