web-dev-qa-db-ja.com

「シークレット」、キーストア、HSM、その他のストレージ

私は過去数日間、機密データのストレージを掘り下げてきました。このデータをデータベースに保存する場合、この質問の範囲外のさまざまな理由により、一般に認められている慣行は機密データを暗号化して保存することだと思います。

ただし、データを暗号化するには、このデータの「秘密」を管理する必要があります。これの2つの主要なパス(Java世界)、キーストアまたはHSMのいずれか)を見てきました。最初の質問は、他の有効な代替手段があるかどうかです(Java世界)?

いくつか挙げると、Javaで使用できるキーストアの形式は複数あります。

  • jks
  • jceks
  • pkcs12
  • bks
  • ユーバー

キーストアのセキュリティに関する情報はほとんど見たことがありません。キーストアにアクセスし、Java APIを見ると、すべてのキーストアはパスワードで保護されているため、キーストアをブルートフォースで強制することができます。次に、キーストアは暗号化されたデータとは異なるシステム上にあり、パスワードで保護されているため、これは実際の条件に対して「十分に安全」であるという一般的に受け入れられている慣行になりますか?キーストアへのパスワード?そこに認められた慣例はありますか?たとえば、それをさらに別のシステムに保存しますか?アプリケーションの起動時に手動で入力しますか?アプリケーションのみが読み取りアクセスできるos保護ファイルにそれを持っていますか?

次の質問は、HSMに関するものです。キーストアをブルートフォースできるので、HSMに対してまったく同じことを実行できないようにするにはどうすればよいですか?時間?コピーしてリモートで操作するためのファイルがないため、リモートシステムにログインする必要がありますか?

最後の質問は、秘密管理の観点から安全と考えられるものについて誰かが知っているかどうかです。シークレットで暗号化された情報の種類によって異なると思います。私が別の場所で読んだことから、キーストアはほとんどの典型的なシナリオには十分に思え、HSMはCAや政府などの非常にニッチなシナリオに必要です。

どんな洞察も感謝します。

8

大まかに言えば、キーストアは、キーとメタデータを格納するための異なる「形式」です。私の知る限りでは、それらの間に大きなセキュリティの違いはありません。 Jpeg、PNG、またはGIFとして画像をエンコードするようなものと考えてください。微妙な違いですが、最終的には画像を保存します。

鍵管理の一般的な問題の一部を正しく選択し、なぜそれが複雑になるのか理解し始めたいと思います。鍵で暗号化されたデータがあります。鍵は鍵ストア内に保管され、パスフレーズで保護され、パスフレーズが保管されます...これがどこに行くのか分かりますか?このチェーンの最後には、比較的小さな情報がいくつかあります。これを取得すると、チェーン全体をかなり壊すことができます。これにより、すべてのデータにアクセスできるようになります。同様に、この特定の問題を解決した場合でも、暗号化/復号化/署名の鍵はusedである必要があります。つまり、データを管理するためにそれを使用するプログラムにロードされます。メモリに読み込まれると、CPUや、同じシステムで実行されている他のプログラムにアクセスできるようになります。それらの1つが危険にさらされている場合、キーをメモリから抽出できます。暗号化された形式で保存されている場合でも。

これは多かれ少なかれHSMが登場する場所です。HSMがないと、キーを安全に保存する機能が制限され、キーを公開せずにメモリ内で暗号化操作を実行することもできません。 HSMは(通常は物理的に保護された)ストレージにキーを「隠し」、この保護された領域内で暗号化操作を実行します。他のプログラムやオペレーティングシステムからのアクセスを防ぐような方法で動作します。見られるものはすべて、このHSMからの入出力です。 HSMは、提供する保証のレベルも異なります。 FIPS-14 は、さまざまなレベルの保証/回復力をカバーする標準の1つです。一部のHSMは、ある程度のキー管理/承認も提供します。たとえば、特定のユーザーにのみ暗号化を「許可」できますが、他のユーザーもデータを復号化できます。ユーザー/グループごとの暗号操作の数を制限したり、数回の試行が失敗した後にロックアウトするように構成したりできます。これは、キーストアではできないことです。

したがって、キーストア(およびメモリ内の暗号操作)は通常「十分」であることに注意してください。状況によっては、さらに安全なものを使用することが望ましい場合があります。それはすべて、データの価値、現在の保護の知覚レベル、ソフトウェアのみ、HSMまたはその他のツールを使用した追加の保護のコスト、およびこのデータに対する脅威プロファイル(それを必要とする人、その能力、彼らはそれを行うためにどれくらい投資するつもりかなど)。

10
Yoav Aner