重複の可能性:
Javaでのネットワーク通信の暗号化
私はクライアントサーバーアプリケーションを設計しています。セッション全体を暗号化する必要があります。私はそれを行うために次の予防策を考えていました(公開鍵暗号化にはRSAを使用し、対称暗号化にはAES-128を使用):
クライアントはサーバーに接続し、「hello」メッセージを送信します。サーバーは公開鍵で応答します。クライアントは128ビットのAESキーを生成し、サーバーの公開キーで暗号化して送信します。残りのアプリケーションプロトコルは、AESキーを使用して暗号化されます。
このロジックは大丈夫ですか?欠陥はありますか?大丈夫ですか、それともSSLを使用する方が良いですか?基本的に私が懸念しているのは、リプレイ攻撃とmitmです。