web-dev-qa-db-ja.com

HSMを選択するための基準

非常に機密性の高いアプリケーションは、パスワード、クレジットカード、秘密文書などのいくつかの異なる形式のデータと、もちろん暗号化キーを保護する必要があります。
(標準の)暗号化およびキー管理プロセスに関するカスタムソリューションを開発する代わりに、HSM( ハードウェアセキュリティモジュール )の購入を検討しています。

明らかに、これは(少なくとも部分的に)特定のアプリケーション、会社、データタイプ、テクノロジー、および予算に依存しますが、私はこのジェネリックを維持したいので、高レベルのビューに残し、特定のものは無視しますワークフロー。

暗号化する必要がある秘密データがあると仮定しましょう。オーダーメイドのキー管理の複雑さと予想される不安定さを管理し、ソフトウェアベースの暗号化とキーに対する明らかな脅威を軽減するためのハードウェアベースのソリューションを探しています。

HSMを比較して選択する際に考慮すべき要素と基準は何ですか?それぞれの考慮事項は何ですか?

例えば:

  • 明らかにコストが要因ですが、異なる価格モデルはありますか?何を考慮すべきですか?
  • いくつかの製品は、さまざまな形式の暗号化(たとえば、対称型と非対称型、ブロック型とストリーム型など)に適していますか?
  • さまざまなワークフローとライフサイクルで同じ
  • 保証のレベル(例:どのレベルのFIPS 140-2、いつ必要ですか?
  • ネットワーク接続とサーバー接続

TO BE CLEAR:私はここで製品の推奨事項を探しているのではなく、評価特定の製品。コメントで製品に名前を付けてもかまいませんが、 chatroom ...

47
AviD

関連する可能性があるいくつかの技術的要因:

  1. パフォーマンス-アプリケーションの問題(存在する場合)全体:暗号化/復号化/鍵生成/署名、対称、非対称、ECなど...
  2. 規模:
    • サポートするキーの数に制限はありますか?その制限は問題になる可能性がありますか?
    • アプリケーションの要件が厳しくなったときに別のHSMを追加するのはどれほど簡単ですか(サイズ、速度、地理的分布...)
  3. 冗長性-1つのHSMが故障した場合の運用への影響の大きさ、サービスを失うことなく交換することの容易さなど
  4. バックアップ-自動化と復元はどれほど簡単ですか?バックアップの機密性や整合性を個別に保護する必要がありますか、それとも製品はそれを保証しますか?データを回復不能に失った位置に至る可能性はどれくらいありますか(失われる/忘れられる必要がある要因の数、HSMの停止など)。
  5. APIサポート:
    • MS CAPI/ [〜#〜] cng [〜#〜] (Windows環境から簡単にプログラムできます);
    • [〜#〜] jca [〜#〜] (Javaを使用するための開発が容易です。どのバージョンがサポートされていますか?);
    • PKCS#11 (および最近のバージョンですか? 既知のセキュリティの問題 );
    • ベンダー独自仕様(おそらく、最も柔軟で強力な、安全な場合は知っているが、別のベンダーに移行するためのコストが増加する)であり、Cはおそらく与えられているが、好みのバインディングがあるか言語?
    • 関連するメモ:アプリケーション(DBMS、OSサービスなど)との統合に関するガイダンスはありますか?
  6. OS /ハードウェアサポート
  7. 管理オプション-管理タスクを実行するためにどのGUI /コマンドラインツールがありますか。つまり、自動化したくないほど頻繁に実行しないもの(キーの生成?、認証要素の管理?)。デバイスをコミッショニングしたり、コミッショニング後に追加のタスクを実行したりするには、管理者が実際に立ち会う必要がありますか?
  8. プログラマビリティ-ほとんどの開発はいずれかのAPIの反対側で行われる可能性がありますが、デバイスで実行するアプリケーションを記述して柔軟性または速度を向上させると便利な場合があります( Thomasの回答を参照
  9. 物理的セキュリティ-ソリューションは、直接的な物理的攻撃に対してどの程度耐性が必要ですか(HSMだけでなく、ソリューション全体を念頭に置いてください)?何らかの理由でそれが特に重要であると判断した場合(HSMは公開されているがクライアントは公開されていない場合、またはキーの開示が単にを使用するよりもはるかに悪い場合悪意のある目的のためのキー-ref DigiNotar ?)次に、パッシブタンパーの抵抗と証拠だけでなく、アクティブタンパーの検出と応答を探すことをお勧めします。
  10. 論理的セキュリティモデル-ネットワーク上の悪意のあるエンティティがHSMを悪用する可能性はありますか?ホストPC上の悪意のあるプロセス?
  11. アルゴリズム-HSMは、使用する暗号をサポートしていますか(プリミティブ、操作モード、パラメーター(カーブ、キーサイズなど))。
  12. 認証オプション-パスワード;定足数; nファクター;スマートカード; OTP; ...おそらく、キーを使用した操作を許可する前に、トークン+パスワードで認証されたユーザーの構成可能なクォーラムサイズを必要とする可能性があるものを探しているはずです。
  13. ポリシーオプション-次のような制御などのポリシーを定義できるようにしたい場合があります。キーをHSMからエクスポートできるか(ラップされているか、暗号化されていないか)。キーは、署名/暗号化/復号化/ ...にのみ使用できます。署名には認証が必要ですが、検証は必要ありません。等.
  14. 監査機能-HSMに似た操作(生成されたキー、キーYで署名されたもの)とクラッシュの処理(g3kのコメントを参照)の両方を含みます。ログを Splunk (正常なログ形式、syslog/snmp /その他のネットワークアクセス可能-または少なくとも非独占的-出力)のようなものに統合するのはどのくらい簡単ですか?
  15. フォームファクタ:
    • networkattached (特に、複数のアプリケーション/サーバー/クライアントがキーを使用する必要がある大規模なデプロイメントの場合);
    • desktop (個人使用の場合。パフォーマンス、可用性、スケーラビリティは大きな問題ではありませんが、コストが高く、HSMへの直接アクセスを必要とする多くの人がソリューションを必要とする場合は特に優れています)。
    • PCI(-express) (接続されているネットワークよりも安く、複数のアプリケーションで利用できるようにするために多くの労力が必要)。
    • SBトークン (簡単なサーバーアップグレード、安くて遅い(そして盗みやすい!));
    • PCカード (デスクトップと同じですが、ラップトップユーザーに適しています)。 (PCカードは今かなり死んでいます)

いくつかの非技術的な要因:

  1. 認定-製品のセキュリティに自信を与えるため、何か必要ですか/必要ですか?規制上の理由から、必要なものを無視する:
    • FIPS 140-2は、NIST承認のアルゴリズムが機能し、実行時の既知の回答テストがあること(セキュリティポリシーをチェックして、承認されているalgを確認)の有用な確認を提供しますが、それ以外の場合は、製品は安全です。レベル3のハードウェアセキュリティに関する私の経験則では、デバイスへのアクセスが数分しかない人は、デバイスを危険にさらすことを強く求められます。 FIPS 140-2レベル3はHSMの事実上のベースライン認定です-HSMがない場合は注意してください(FIPSで使用する必要があると言っているわけではありませんが) _準拠した方法)。
    • Common Criteria評価は、提供する保証において柔軟です。セキュリティターゲットを読んでください!きちんとしたHSM保護プロファイルはまだないので、少なくとも、評価が何を提供しているかを理解する前に、セキュリティ問題の定義(脅威と仮定)を読む必要があります。
    • PCI-HSMは、関連業界にいる場合に役立ちます
  2. 認定とは別に、ベンダーはセキュリティをどのように見ていますか? CC EAL4証明書は良い出発点ですが、Win2kにもあることを覚えておいてください...サプライチェーンの整合性、セキュアなソフトウェア開発ライフサイクル、ISO2700xなどについて説得力のある音を立てますか Open Groupの信頼できるテクノロジープロバイダーフレームワーク
  3. ベンダーの開示に関するポリシーは気に入りましたか?
  4. サポート(オプション、評判、あなたの言語で利用可能)
  5. サービス-複雑な要件がある場合は、構成/プログラミングにベンダーを関与させることが有利な場合があります。
  6. ドキュメンテーション:
    • 高レベルのドキュメント-HSMは複雑な汎用製品であり、多少複雑な管理が必要になる場合があります。安全で実用的なプロセスを開発できるようにするには、適切なドキュメントが重要です(詳細については Thomasの回答 を参照してください)。
    • APIドキュメント-適切なカバレッジ、できれば一般的な(そして複雑な)タスクの良い例を含む
  7. コスト(ユニット+メンテナンス)
  8. リードタイム
  9. ベンダーパッチポリシー/頻度(+ファームウェアアップグレードのサポートと容易さ)
  10. 設計または製造、あるいはその両方を行う国-特定の国を特に(不信)に信頼している政府または企業
  11. ベンダーの安定性-あなたがそれを使用するつもりである限り、彼らは製品をサポートするためにありそうですか?
  12. ベンダーの製品ロードマップは何ですか、それはあなたにとって価値のある何かを保持していますか、そしてファームウェアのアップグレードを介して将来のバージョンにアクセスできますか?
  13. [〜#〜] rsa [〜#〜] でスワッグが彼らから降りたのはどれほど良かったか

おそらくもっとたくさんあります。

SANSインスティテュートには 良い入門論文 があり、HSMが必要な理由、HSMが持つべきである肯定的な属性、およびいくつかの欠点を説明しています。

HSMベンダーはこのリストのほとんどに同意し、独自の(属性なし) そのバージョン を作成したようです。

37
Michael

HSMは複雑さを避けません。むしろ、システム全体がかなり複雑になります。

HSMが最も得意とするのはキーstorageです。キーはHSMにあり、HSMから抜け出すことはありません。ただし、鍵のライフサイクルについてはまだ心配する必要があります。ファイルまたはオペレーティングシステムの内臓に格納された「ソフトウェア」キーを使用すると、バックアップが脆弱になります(キーのコピーを大量に残したくない場合)。 HSMを使用すると、この脆弱性は回避されますが、バックアップは大きな頭痛の種になります。キーを失うことはalso主要なリスクであり、特に暗号化の場合(暗号化キーを失うと、データが失われます)。したがって、これはHSMを確認する最初の項目です:バックアップ手順。 Thales(nCipher)HSMでこれを行った経験があります。キーは実際には暗号化されたファイル(ファイルと同じように保存できます)として保存され、そのキーは、(新しいHSM内で)管理者スマートカードのクォーラムで再構築できます。

HSMがバルク対称暗号化を行うことはほとんどありません。実際には、HSMで対称暗号化を行うことはあまり意味がありません。dataは機密情報であるため、暗号化を使用します。論理的には、機密性の必要性があり、対称鍵がHSMから出てはならない場合、データ自体もHSMから出てはなりません。また、対称暗号化とは、暗号化と復号化の両方が同じキーを使用することを意味します。そのキーがHSMにある場合、暗号化と復号化の両方がそれを通過する必要があります。

HSMは ハイブリッド暗号化 で使用するのが適切です。HSMは非対称暗号化システムの秘密鍵を格納して使用します。データがencryptedになる場合、データを持っている人は誰でもランダム対称鍵を生成します[〜#〜] k [〜#〜][〜#〜] k [〜#〜]でデータを暗号化し、[〜# 〜] k [〜#〜]HSMに保存された秘密鍵に対応する公開鍵。その意味で、HSMは(特大、高値) スマートカード として動作します。

もちろん、アプリケーション全体をHSM内に収めるという別の極端な方法もあります。これにはprogrammableHSMが必要ですが、これは完全に異なるコンテキストです。 Thales HSMは、それをオプション(「CodeSafe」および「SEE」と呼ばれます)として許可します。これは無料で提供するものではありません...その中で従来のコードを実行することを期待していません。 HSMには暗号化アクセラレーターがありますが、それ以外はかなり限定された組み込みシステムです(60 MHz ARM CPUの高さ:HSMシールドは熱放散とは異なる)と考えてください)。比較的複雑なコードをHSMに組み込むことができます。 (それはそれを可能にします)しかし、それは特定のプログラミングの努力です。

HSMは高価ですが、HSMの最大のコストはoperationsです。これらのインストールには、インストール、構成、操作、復元、および廃棄の多くの手順が伴います。人が必要になります。私の主な基準は次のようになります:procedures。優れたHSMには、方法を説明する詳細な使用説明書が付属しています。重要なのはハードウェアではなく、それをどのように使用するかです。

EAL 4+やFIPS 140-2 Level 3など)の認定は、規制の目的で必要になる場合があります。必要とするかどうかを選択することはめったにありません。これは、意図する使用状況からの要件です。このような認証は非常に長くて費用のかかるプロセスなので、自分で行うことはできません。一方で、ショッピングエリアを広げることもできます。HSMが主に大きなスマートカードである場合は、代わりにスマートカードを使用できます。 HSMのA 20 EURスマートカード はFIPS 140-2レベル3の場合があります。500の代わりに1秒あたり1つのRSA-2048復号のみを計算しますが、それで十分かもしれません。

23
Thomas Pornin