TLS/SSL ハンドシェイクとは何ですか?
以下に、RSA 鍵交換アルゴリズムが使用されている場合の標準的な TLS/SSL ハンドシェイク手順を示します。
- Client Hello - SSL を使用してクライアントと通信するためにサーバーが必要とする情報を送ります。これには SSL のバージョン、暗号化方式、セッション固有のデータが含まれます。
- Server Hello - SSL を使用してサーバーと通信するためにクライアントが必要とする情報を送ります。これには SSL のバージョン番号、暗号設定、セッション固有のデータが含まれます。
- 認証およびプレマスターシークレット - クライアントがサーバーの証明書を検証します(コモンネーム、日付、発行者など)。クライアントは(暗号化方式に応じて)セッション用のプレマスターシークレットを作成し、サーバーの公開鍵で暗号化し、暗号化したプレマスターシークレットをサーバーに送信します。
- 復号化およびマスターシークレット - サーバーは自身の秘密鍵でプレマスターシークレットを復号化します。サーバーとクライアントの双方が、同意した暗号化方式によってマスターシークレットの生成手順を実行します。
- セッションキーによる暗号化 - クライアントとサーバーが、今後メッセージが暗号化されることを伝えるメッセージを相互に交換します。