本文へスキップ

TLSハンドシェイクとは?

てぃーえるえすはんどしぇいく

TLSハンドシェイクとは、クライアントとサーバー暗号化通信を始める前に、暗号方式や鍵を取り決めるための一連のやり取りのことです。

TLSハンドシェイク(TLS Handshake)は、インターネット上の安全な通信を実現するTLS(Transport Layer Security)プロコルにおいて、実際のデータ通信を開始する前にクライアントとサーバーの間で行われる認証・鍵交換の手順です。

TLS 1.2までのハンドシェイクは概ね次の手順で行われます。

  • クライアントが対応する暗号スイートやTLSバージョンをサーバーに通知する(ClientHello)
  • サーバーが暗号スイートを選択し、デジタル証明書を送る(ServerHello・Certificate)
  • クライアントが証明書を検証し、プリマスターシークレットを暗号化して送る
  • 両者がマスターシークレットからセッション鍵を導出し、以降の通信を暗号化する

TLS 1.3では手順が大幅に最適化され、ハンドシェイクのラウンドトリップが1回(1-RTT)に削減されました。さらに0-RTTモードを使うと、過去に接続したサーバーへの再接続時にほぼ遅延なくデータを送れます。ただし0-RTTにはリプレイ攻撃のリスクがあるため、適用するデータを選ぶ必要があります。

ハンドシェイク中の証明書検証では、認証局(CA)が発行したデジタル証明書の署名を確認し、サーバーの正当性を担保します。これにより中間者攻撃(MITM)を防ぎます。TLSハンドシェイクはHTTPS通信の根幹をなし、オンラインバンキングやECサイトなど、機密情報を扱う全ての場面で活用されています。

使い方・例文

ブラウザでhttpsのサイトにアクセスしたとき、URLバーに鍵マークが表示されるまでの一瞬の間にTLSハンドシェイクが行われており、その後の通信内容が暗号化されます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語