5

MySQL データベースに保持されている Java ベースの Web アプリケーション (jasypt を使用) でユーザーが入力したデータを暗号化する必要があり、暗号化キー/パスフレーズを定期的に (たとえば 90 日) 変更できるようにしたいと考えています。アプリケーションは Web のサーバー上に存在します。

すでに暗号化されている既存のデータは、新しいキーで再暗号化する必要がありますが、そのためにはもちろん古いキーが必要です。

  1. キーをローテーションする一般的な方法は何ですか?
  2. 暗号化キーをシステムで利用できるようにする一般的な方法は何ですか (例: コマンドライン経由で渡されるシステム プロパティ、暗号化されたプロパティ ファイル、https 経由で別のサーバーからダウンロード)

これに対する単一の答えはないと思いますが、正しい方向に調査するためのヒント、ポインター、流行語を入手したいと思います.

4

1 に答える 1

5

まず、鍵のローテーションの目的を理解することが重要です。あなたのユースケースは、保管中のデータを暗号化することです。この場合、キー ローテーションの目的は、キーが漏洩した場合、または暗号化されたデータ セットが漏洩してブルート フォース復号化攻撃を受けた場合に、データ侵害を封じ込めることです。鍵のローテーションの一般的な方法:

  • 期限付きのキー ローテーション: このプラクティスでは、キーは定期的に更新されます。
  • トランザクション レベル キー: このプラクティスでは、各トランザクションが独自の一意のキーで暗号化されるため、データ侵害の軽減レベルが高くなります。

システムでキーを使用できるようにする: これは通常、キー管理サーバーを使用して行われます。このサーバーは、基本的に、パラメーターに基づいて (通常は対称) キーをリクエスターに渡します。サーバーは、後で取得するために生成されたキーを安全にアーカイブするか、同じパラメーターのセットが与えられた場合に同じキーを生成することが保証された固定関数に基づいてキーが生成されるようにするかを選択できます。

独自のサーバーを作成するか、サーバーを購入/ライセンスするかを選択できます。特定のセキュリティ コンプライアンス ガイドラインを満たす必要があり、コンプライアンス項目をチェックする必要がある場合は、このコンポーネントのライセンスを取得することをお勧めします。既製のソリューションについては、StrongAuthまたはPorticorを例として見てください。

于 2013-02-07T00:22:31.473 に答える