プロジェクト内にファイル暗号化を実装しようとしていますが、キーストレージのベストプラクティスについて疑問に思っています。
私たちのアプリケーションは、さまざまなクライアントグループにデプロイされています。各グループは複数の地理的サイトで構成され、各サイトは複数のユーザーで構成されます。ユーザーはファイルを作成し、中央同期サーバーを介して他のサイトと同期します。これらのファイルは、保存時に暗号化する必要があり、クライアントサイトにロードされたときにのみ復号化されます。
そのため、対称鍵はグループレベルで一意であり、各サイトに安全に保管する必要があります。
現在AESを使用していますが、キーは現在ハードコーディングされてアプリケーション内に保存されているため、逆コンパイルを介して簡単にアクセスでき、すべてのクライアントで同じです。これは非常に心配です。アプリケーションにアクセスできるようになったら、この種のセットアップをハックするのは非常に簡単なようです。
では、グループごとに一意のキーを確実に生成し、そのキーを各サイトに安全に保存するにはどうすればよいでしょうか。