SSLサーバーは、接続するすべてのクライアントに対して一時的なキーペアをランダムに生成しますか?
公開鍵暗号化がどのように機能するかを理解しています-公開暗号化鍵、秘密復号化鍵。これは、SSL証明書を持つホストがクライアントから暗号化されたデータを受信する方法を説明しています。しかし、SSLサーバーはどのようにして暗号化されたデータをクライアントに送り返しますか?
SSLサーバーは、接続するすべてのクライアントに対して一時的なキーペアをランダムに生成しますか?
公開鍵暗号化がどのように機能するかを理解しています-公開暗号化鍵、秘密復号化鍵。これは、SSL証明書を持つホストがクライアントから暗号化されたデータを受信する方法を説明しています。しかし、SSLサーバーはどのようにして暗号化されたデータをクライアントに送り返しますか?
(この質問では、何度も編集されたものの、このトピックに関する議論があったため、混乱する可能性があります。)
サーバー証明書の公開鍵は、ハンドシェイク中にのみ使用されます。ハンドシェイク中に、クライアントとサーバーは、実際の暗号化に使用する秘密の共有キー(セッションごとに新しいキー)をネゴシエートします。
この秘密がどのようにネゴシエートされるかは、暗号スイート(RSAまたはDiffie-Hellman鍵交換)によって異なります。RSAキー交換を使用する場合、クライアントはpre-master-secretを暗号化し、サーバー(復号化できる唯一のサーバー)に送信します。DHを使用する場合、クライアントはDH交換中にサーバーによって送信された一時パラメーターの署名を検証します。最終結果も共有されたpre-master-secretです。次に、これは、マスターシークレットを計算するために、両方の当事者によって交換されたランダム値とともに使用されます。
詳細については、「ハンドシェイクプロトコルの概要」と呼ばれるTLS仕様のセクションを参照してください。