TLS ハンドシェイク
TLS ハンドシェイク とは何ですか?
TLS ハンドシェイクTransport Layer Security の初期プロトコル交換で、サーバ(必要に応じてクライアント)を認証し、それ以降のセッションを暗号化する対称鍵を導出する。
TLS ハンドシェイクは、アプリケーションデータを送る前にプロトコルバージョン、暗号スイート、サーバの身元、セッション鍵を交渉します。TLS 1.2(RFC 5246)では 2 ラウンドトリップを要し、ClientHello、ServerHello、Certificate、ServerKeyExchange に加え、ネゴシエーション結果を確認する Finished のペアを使います。TLS 1.3(RFC 8446)はこれを 1 ラウンドトリップに短縮し、RC4、AEAD なしの CBC、RSA 鍵交換などの旧来の暗号を排除し、リプレイ上の注意付きで 0-RTT 再開もサポートします。どちらのバージョンも前方秘匿性のためにエフェメラルな (EC)DHE を使い、サーバは X.509 証明書で認証します。重要な誤設定にはダウングレード攻撃、弱い暗号スイート、期限切れや誤発行の証明書、共有基盤での SNI 未処理などがあります。
● 例
- 01
ブラウザが https://example.com に対し 1 ラウンドトリップで TLS 1.3 ハンドシェイクを行い、x25519 と AES-GCM を交渉する。
- 02
古いクライアントは同じサーバに対して TLS 1.2 にフォールバックし、ECDHE-RSA-AES256-GCM-SHA384 を選択する。
● よくある質問
TLS ハンドシェイク とは何ですか?
Transport Layer Security の初期プロトコル交換で、サーバ(必要に応じてクライアント)を認証し、それ以降のセッションを暗号化する対称鍵を導出する。 サイバーセキュリティの ネットワークセキュリティ カテゴリに属します。
TLS ハンドシェイク とはどういう意味ですか?
Transport Layer Security の初期プロトコル交換で、サーバ(必要に応じてクライアント)を認証し、それ以降のセッションを暗号化する対称鍵を導出する。
TLS ハンドシェイク はどのように機能しますか?
TLS ハンドシェイクは、アプリケーションデータを送る前にプロトコルバージョン、暗号スイート、サーバの身元、セッション鍵を交渉します。TLS 1.2(RFC 5246)では 2 ラウンドトリップを要し、ClientHello、ServerHello、Certificate、ServerKeyExchange に加え、ネゴシエーション結果を確認する Finished のペアを使います。TLS 1.3(RFC 8446)はこれを 1 ラウンドトリップに短縮し、RC4、AEAD なしの CBC、RSA 鍵交換などの旧来の暗号を排除し、リプレイ上の注意付きで 0-RTT 再開もサポートします。どちらのバージョンも前方秘匿性のためにエフェメラルな (EC)DHE を使い、サーバは X.509 証明書で認証します。重要な誤設定にはダウングレード攻撃、弱い暗号スイート、期限切れや誤発行の証明書、共有基盤での SNI 未処理などがあります。
TLS ハンドシェイク からどのように防御しますか?
TLS ハンドシェイク に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
TLS ハンドシェイク の別名は何ですか?
一般的な別名: TLS ハンドシェイクプロトコル。
● 関連用語
- network-security№ 1159
TLS(トランスポート層セキュリティ)
IETF が標準化した暗号プロトコルで、ネットワーク上の 2 つのアプリケーション間の通信に機密性・完全性・認証を提供する。
- network-security№ 1090
SSL(Secure Sockets Layer)
1990 年代に Netscape が開発した、Web 通信を暗号化するための TLS の歴史的前身であり、現在は正式に非推奨とされている。
- network-security№ 1134
TCP
コネクション指向のトランスポートプロトコル(RFC 9293)で、IP 上で 2 つのエンドポイント間に順序保証・信頼性・輻輳制御を備えたバイトストリームを提供する。
- cryptography№ 067
非対称鍵暗号
数学的に対応した鍵ペア(暗号化用の公開鍵と復号用の秘密鍵)を用い、事前の秘密共有なしに安全な通信を可能にする暗号方式。
- network-security№ 712
相互 TLS(mTLS)
クライアントとサーバーの双方が X.509 証明書を提示し、互いを暗号学的に認証する TLS の拡張方式。
- network-security№ 501
HTTPS
TLS で保護された接続上で HTTP を伝送することで、Web 通信に機密性・完全性・サーバー認証を提供するプロトコル。