TLSハンドシェイクの手順は?
TLSハンドシェイクとは、クライアントとサーバーが交換する一連のデータグラム(メッセージ)のことです。 TLSハンドシェイクには複数のステップがあり、クライアントとサーバーがハンドシェイクを完了させ、それ以降の会話を可能にするために必要な情報を交換します。クライアントとサーバーがハンドシェイクを完了させ、それ以降の会話を可能にするために必要な情報を交換するためです。
TLSハンドシェイクの正確な手順は、使用される鍵交換アルゴリズムの種類と、双方がサポートする暗号スイートによって異なります。RSA鍵交換アルゴリズムが最もよく使われます。 以下のようになります。
1.クライアントハローメッセージ(client hello):クライアントは、「ハロー」メッセー ジをサーバーに送信することでハンドシェイクを開始します。 このメッセージには、クライアントがサポートしているTLSバージョン、 サポートしている暗号スイート、および「クライアントランダム(client random)」と呼ばれるランダムなバイト列が含まれます。クライアントがサポートしている TLS バージョン、サポートしている暗号スイート、および "client random." と呼ばれるランダムなバイト列が含まれます。
2.サーバ hello メッセージ: サーバはクライアントの hello メッセージに応答して、サーバの SSL 証明書、サーバが選んだ暗号スイート、サーバが生成したランダムな バイト列である "server random" を含むメッセージを送ります。サーバランダム(server random) "を含むメッセージを送ります。
3.認証:クライアントはサーバーのSSL証明書を、それを発行した認証局で検証します。thisは、サーバーがその言うとおりの人物であり、クライアントがドメインの実際の所有者とやりとりしていることを確認します。は、サーバーが本人であり、クライアントがドメインの実際の所有者とやりとりしていることを確認します。
4.プレマスター秘密鍵: クライアントはさらにランダムなバイト列を送信。プレマスター秘密鍵は公開鍵で暗号化され、サーバによってのみ秘密鍵で復号化されます。
5.秘密鍵の使用: サーバはプレマスター秘密鍵を復号化する。 6.セッション鍵の生成: クライアントとサーバはともに、クライアントのランダム鍵、 サーバのランダム鍵、プレマスター秘密鍵からセッション鍵を生成する。両者は同じ結果を得るはず。
6.クライアントの準備完了:クライアントはセッション鍵で暗号化された「完了」メッ セージを送信。
7.サーバーの準備完了(Server is ready):サーバーはセッション鍵で暗号化された「完了(finished)」メッセージを送信。
セキュアな対称暗号化の達成:ハンドシェイクが完了し、セッション鍵を使用して通信を継続。