3

SSL 経由でアクセスする Web アプリケーションがあります。バックエンドのセキュリティを強化するために、データベースに対称暗号化を追加することを検討しています。

アプリケーションは、websphere クラスター内の 6 つのサーバーに分散されています。

共通のキーを生成し、分離された JCEKS キーストア内のすべてのクローンにキーを伝達する単純なモデルを検討していました。

暗号とキーの長さは AES (256) に落ち着きました。

私が持っている質問は、このアプローチはどれほど安全ですか? 私が恐れているのは、これらすべてを作成してデータを暗号化することですが、キーストアやキーストアを紛失した場合、すべてのデータは本質的に永久に失われます。

これは、キーとキーストアをバックアップして、障害が発生した場合に常にどこかにコピーがあることを確認するだけの問題ですか?

AES はまだしっかりした暗号ですか? また、対称暗号化は一般に非対称暗号化よりも高速です。256 ビット キーを使用すると、パフォーマンスに大きな影響がありますか? それとも、暗号化されるデータのサイズに影響がありますか?

4

1 に答える 1

3

AES

AES はまだ公式の「Avanced Encryption Standard」であるため、対称暗号には依然として非常に適しています。より長いキー サイズによる速度の低下は、セキュリティの向上に比べて無視できます。

全体的なアプローチ

まず第一に、アプローチ自体は健全に思えます。ただし、データベース内の暗号化されたデータがもたらす欠点を念頭に置いておく必要があります。より効率的なインデックス作成、クエリの最適化、一般的な選択的なクエリはありません...データベースの大部分またはデータベース全体を暗号化する場合は、次のことを行う必要があります。データベース自体が提供する暗号化機能をよく調べてください。このアプローチを使用する場合は、SSL/TLS を使用してデータベースへの接続をさらに保護する必要がありますが、これは見過ごされがちです。これにより、求めている追加のセキュリティを提供しながら、「通常の」データベースのすべての利点が維持されます。

キーを紛失したというあなたの意見は正しいです。その場合、あなたは大きな問題に直面しています :) しかし、すべてが失われたわけではありません。JCEKS キー ストア ファイルのパスワードをブルート フォース攻撃することもできます...

そのリソースに私たちをもたらすもの。これは、キー ストアとパスワードに関する鶏と卵の問題です。これに対する唯一の本当にクリーンな解決策は、アプリ/データベースを起動するたびにパスワードを手動で入力することです。しかし、これは実際の問題になる傾向があるため (真夜中のクラッシュを考えてみてください)、パスワードをファイル システム上のテキスト ファイルに保存する傾向があります。いくつかのガイドラインに従う限り、それは許容されます。

  • 理想的には、このファイルは、アクセスが制限された別のマシン上にあります
  • 同じマシン上にある必要がある場合は、そのフォルダーへのアクセス許可を制限します-ただし、アプリがアクセスできるようにすることを忘れないでください
  • そのファイルを再度暗号化することは、通常は役に立ちません。鶏と卵の問題が再び発生します。コンテンツを BASE64 でエンコードすることは、技術に精通していないユーザーに対する最初の防御策として有益な場合があります。
  • パスワードを知っている人はほとんどいないはずです (十分に頻繁に言うことはできません)。
  • パスワードのバックアップを安全な場所に保管してください。
  • キー ストア ファイルの急増を何としても回避する

本当に厳密にしたい場合 (パスワードを知っているのは 1 人か 2 人だけだとしましょう)、さらに秘密共有スキームをインストールすることもできますが、要件によってはやり過ぎになる可能性があります。このようなスキームは、秘密の (それ自体は役に立たない) 部分を持つ個人が、実際の秘密を復元するために部分を結合できるようにします。このようにして、パーツをより大きなグループに分散することで、損失のリスクを軽減できます。

于 2011-08-01T16:07:26.267 に答える