TLS ハンドシェイクの仕組み

TLS(Transport Layer Security、トランスポート層セキュリティ)はネットワーク通信の安全を保護するために利用されるプロトコルです。安全な接続の確立および認証に使用されるハンドシェイクプロセスが含まれています。以下はTLSハンドシェイクプロセスの詳細な説明です。

  1. クライアントはハンドシェイク要求を送信します – クライアントは ServerHello メッセージをサーバーに送信します。このメッセージには、TLS のバージョン番号、サポートされている暗号化スイート、乱数 (クライアントランダム) などの情報が含まれています。
  2. サーバはクライアントからClientHelloメッセージを受信すると、それに応えて、TLSのバージョン番号、選択した暗号化スイート、サーバ側で生成された乱数(サーバランダム)などの情報を含んだServerHelloメッセージを返信します。
  3. サーバがデジタル証明書を含んだメッセージをクライアントに送ります。クライアントはサーバ証明書の正当性と有効性を検証します。検証では証明書の署名や有効期限などがチェックされます。
  4. クライアントがサーバーの公開鍵を使って乱数(Pre-Master Secret)を暗号化し、サーバーに送信します。サーバーは自分の秘密鍵を使ってこの乱数の暗号を解除します。
  5. クライアント側とサーバー側がクライアント・ランダム、サーバー・ランダム、マスター・シークレットを使用してマスター・シークレットを生成し、マスター・シークレットから読み書きのキーと暗号アルゴリズムに必要なパラメーターをそれぞれ独自に派生させる鍵ネゴシエーション。
  6. ハンドシェイク完了: クライアントはFinisheedメッセージをサーバーに送り、サーバーもFinishedメッセージをクライアントに返します、これらのメッセージにはハンドシェイクの確認結果が含まれています。クライアントとサーバーはこれらの確認結果を比較してハンドシェイクが成功したことを確かめます。

合意された暗号化アルゴリズムと鍵によって、握手のプロセスが完了すると、クライアントとサーバー間の通信は暗号化と復号が行われ、通信の秘密性と完全性が保証されます。

bannerAds