1

プロジェクト内にファイル暗号化を実装しようとしていますが、キーストレージのベストプラクティスについて疑問に思っています。

私たちのアプリケーションは、さまざまなクライアントグループにデプロイされています。各グループは複数の地理的サイトで構成され、各サイトは複数のユーザーで構成されます。ユーザーはファイルを作成し、中央同期サーバーを介して他のサイトと同期します。これらのファイルは、保存時に暗号化する必要があり、クライアントサイトにロードされたときにのみ復号化されます。

そのため、対称鍵はグループレベルで一意であり、各サイトに安全に保管する必要があります。

現在AESを使用していますが、キーは現在ハードコーディングされてアプリケーション内に保存されているため、逆コンパイルを介して簡単にアクセスでき、すべてのクライアントで同じです。これは非常に心配です。アプリケーションにアクセスできるようになったら、この種のセットアップをハックするのは非常に簡単なようです。

では、グループごとに一意のキーを確実に生成し、そのキーを各サイトに安全に保存するにはどうすればよいでしょうか。

4

3 に答える 3

1

単一の対称鍵を保持するための唯一の本当に安全な方法は、パスフレーズ/パスワードを入力させ、そこから鍵を生成することです。そうすれば、アプリケーションはユーザー入力なしではキーを認識しません。

それか、暗号化が機能するためにアプリケーションに(インターフェイス、レジストリを介して、または単に適切なパスに配置することで)与える必要のある個々のファイルにキーを提供します。

結局のところ、セキュリティは常にユーザーにかかっています。

于 2012-10-26T13:37:58.283 に答える
0

これは私のリーグから少し外れているので、私は自分が知っていることを話しているだけです。

証明書の使用とWindows証明書ストアでの使用について検討しましたか?

つまり、基本的に安全に保管できるのはここだけだと思います...

于 2012-10-26T13:38:35.710 に答える
0

これは、対称暗号化の適切な使用例ではありません。これは、非対称セキュリティが実際に要件となる場所です。公開鍵を配布できます(PKIを使用するか、アプリケーション内のトラストストアで配布します)。次に、受信側の公開鍵(たとえば、中央サーバーに属する鍵ペアの1つまたはグループの1つ)を使用して対称鍵を暗号化し、対称鍵を使用して実際のデータを暗号化します。

スマートカード内にキーを保存する場合など、対称暗号化がこのように使用されることもありますが、キー管理は非対称暗号化と比較して常に恐ろしいものです。

于 2012-10-26T18:13:48.713 に答える