機密情報を含むデータベースがあります。読み書き操作でデータを暗号化/復号化できます。問題は、キーをアプリケーションに保存する必要があることです。誰かがデータベースにアクセスできるようにハッキングした場合、アプリケーション (Java) を取得して、それを逆コンパイルし、キーを取得することもできます。
これはせいぜいスピードバンプのようです。他にどのようなソリューションがありますか?
機密情報を含むデータベースがあります。読み書き操作でデータを暗号化/復号化できます。問題は、キーをアプリケーションに保存する必要があることです。誰かがデータベースにアクセスできるようにハッキングした場合、アプリケーション (Java) を取得して、それを逆コンパイルし、キーを取得することもできます。
これはせいぜいスピードバンプのようです。他にどのようなソリューションがありますか?
データベースへのアクセスを許可する前に、ユーザーの資格情報を確認する方法があると思いますか?
通常、これらの種類のアーキテクチャは次のとおりです。
クライアントはサーバーに接続し、サーバーはデータベースに接続します。サーバーは、機密情報へのアクセスを許可する前に、クライアントが正しく認証されていることを確認します。復号化キーはサーバーにのみ保存されます。サーバー、特にキーを含むファイルには誰もアクセスできないようにする必要があります。この方法では、クライアントは暗号化/復号化を行う必要がなく、キーを保存する必要もありません。
キーストアを読んでください。
キーを CSP コンテナーに格納します。ここでJava CSPを検討してください。
これは可能な限り最も安全な方法です。ただし、ある種の ACL を使用して、オペレーティング システムによって保護されているファイルにキーを格納することも検討できます。
ユーザーがデータにアクセスするには、パスフレーズを入力する必要があります。キーをコードに埋め込むことは、あいまいさによるセキュリティです。
(DPAPI を使用して) キーを暗号化し、ファイルに入れ、そのファイルに ACL を入れます。