【はんどしぇいく】

ハンドシェイク とは?

最終更新:
💡 通信を始める準備を、相手とやり取りして整える

通信相手と接続や暗号化の条件を確認するやり取り。TCPの接続確立とTLSの安全な通信の準備を区別し、接続を再利用する場合との違いを説明します。

📌 このページのポイント
TCP:接続を作る三つのやり取り端末A端末B① SYN② SYN + ACK③ ACK互いの初期シーケンス番号を確認TCPの接続確立と、TLSの暗号化準備は別
通常のTCP接続の例。時間は上から下へ進み、矢印は各メッセージの送信方向を表します。
ひよこ ひよこ
ハンドシェイクは、コンピュータ同士の握手?
ペンギン先生 ペンギン先生
通信の準備を相手と確認する比喩だよ。例えば通常のTCP接続では、SYN、SYNとACK、ACKという三つのやり取りで、互いの初期シーケンス番号を確認して接続を作るんだ。
ひよこ ひよこ
TCPでつながれば、暗号化もできている?
ペンギン先生 ペンギン先生
TCPの接続確立だけでは暗号化されないよ。TLSではプロトコルのバージョンや暗号方式、鍵などの条件を整え、認証も行う。通信の順序を管理することと、保護することは分けて考えよう。
ひよこ ひよこ
TLSでは、暗号鍵をそのまま送るの?
ペンギン先生 ペンギン先生
TLS 1.3では、鍵交換などから通信に使う鍵の材料を共有するよ。通常の証明書を使う接続ではサーバーの認証も行うけれど、事前共有鍵など、接続方法によってやり取りは変わるんだ。
ひよこ ひよこ
Webページを見るたびに、全部やり直すの?
ペンギン先生 ペンギン先生
すでにある接続を使う場合は、新しい接続を毎回作るわけではないよ。新たに接続するときの往復には時間がかかる。TLSには以前の接続に基づく再開もあるので、初回・再接続・接続の再利用を区別しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ハンドシェイク」って出てきたら「相手と通信を始める条件を整えるやり取り」と思えばだいたいOK!
📖 おまけ:英語の意味
「Handshake」 = 握手
💬 通信の準備を、相手と確認するやり取りを握手にたとえた呼び方です。TCPで接続を作る目的と、TLSで通信を保護する準備は別です。

参考資料

← 用語集にもどる