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ハンドシェイクが行われており、その後の通信内容が暗号化されます。
この用語をシェア
最終更新: