サーバーを介して2つのクライアント間でデータを転送するクライアントサーバーアプリケーションを開発しています。
データは暗号化する必要があり、 AESを使用することを考えました。私の考えは、クライアントのパスワードからAESキーを取得するためにPBKDF2を使用することでした。
この場合、クライアントはデータをエンコードし、サーバーはデータをデコードし、2番目のクライアントのパスワードを使用して再エンコードし、2番目のクライアントに送信します。
これがこれを実装するための最良の方法だと思いますか?
サーバーの干渉なしに最初のクライアントをエンコードし、2番目のクライアントをデコードする方法はありますか?
AESキーを暗号化して、あるクライアントから別のクライアントに転送するにはどうすればよいですか?
次の解決策についてどう思いますか?
- クライアントとサーバーは、Diffie-Hellmanを使用して秘密AESキーを作成します(このキーは各クライアントに固有です)。
- 送信クライアントはセッションAESキーを作成し、秘密AESキーを使用してエンコードします。
- サーバーはセッションキーを復号化し、セッション内のすべてのクライアントに対して再暗号化します(各クライアントの秘密キーを使用)。
- 送信クライアントは、セッションAESキーを使用してデータを暗号化し、サーバーに送信します。
- サーバーは、必要な処理を行わずにすべての受信者クライアントにデータを送信します。