機密情報を含む TCP/IP トラフィックを暗号化するために、サーバーおよびクライアント アプリケーションに AES 256 ビット暗号化を追加しています。毎日鍵をローテーションしていきます。そのため、キーはアプリケーションと共にメモリに保存されます。
キー配布プロセス:
各サーバーとクライアントには、日ごとの初期キー暗号化キー (KEK) のリストがあります。
クライアントが起動したばかり、またはサーバーが起動したばかりの場合、クライアントは初期キーを使用してサーバーに毎日のキーを要求します。サーバーは、初期キーで暗号化された毎日のキーで応答します。日次キーは、ランダムに生成された英数字のセットです。AES 256 ビット暗号化を使用しています。
その後のすべての通信は、その日次キーを使用して暗号化されます。
毎晩、クライアントは、現在の日次キーを現在の KEK として使用して、サーバーから新しい日次キーを要求します。クライアントが新しいキーを取得すると、新しい日次キーが古い日次キーに置き換わります。
別の悪いアプリケーションがこのメモリに不正にアクセスする可能性はありますか、それとも Windows で保護されていますか? キーはファイルに書き込まれず、メモリ内の変数に格納されるだけです。
アプリケーションがメモリに不正にアクセスできる場合、メモリを改ざんからどのように保護できますか?
私たちは C++ と XP を使用しています (Vista/7 は将来的にオプションになる可能性があるため、答えが変わるかどうかはわかりません)。