セキュリティを読む

セキュリティを精読を通じて学んでいきます。

情報処理安全確保支援士試験対策メモ:TLSハンドシェイクとは?~セキュアな通信の鍵を握る仕組みを解説~

TLSハンドシェイクとは?~セキュアな通信の鍵を握る仕組みを解説~

TLS(Transport Layer Security)は、インターネット上でデータを暗号化して安全に通信するためのプロトコルです。TLSハンドシェイクは、その通信を開始する際に行われる鍵交換などの処理で、通信の信頼性と安全性を確保する要となる重要なプロセスです。

🔐 TLSハンドシェイクの目的

TLSハンドシェイクは、クライアント(例:ブラウザ)とサーバが安全に通信するために、次のような処理を行います:

  • 暗号化方式(暗号スイート)の合意
  • サーバの証明書(公開鍵)の確認
  • 共通鍵の生成(鍵交換)
  • セッションの整合性チェック

📶 TLS1.2までのハンドシェイクの流れ

  1. ClientHello:クライアントがTLSバージョン、対応暗号スイート、乱数などを送信
  2. ServerHello:サーバがTLSバージョン、暗号スイートの選択、サーバ証明書などを返す
  3. ServerHelloDone:サーバ側の初期送信完了
  4. ClientKeyExchange:クライアントがプリマスタシークレット(共通鍵の材料)を送信
  5. ChangeCipherSpec:以降の通信が暗号化されることを通知
  6. Finished:これまでのハンドシェイクが改ざんされていないか確認するデータを送信

※共通鍵は、公開鍵暗号方式(例:RSA、DH)により共有されます。

⚙️ TLS1.3での主な変更点

TLS1.3では、セキュリティ強化と高速化のため、以下のような改善が行われました:

  • 暗号スイートの簡素化(RSA暗号や古い鍵交換方式の廃止)
  • ハンドシェイク回数の削減(1-RTT化)
  • 再接続時の0-RTT(即時通信)対応

これにより、TLS1.3では「ClientHello → ServerHello」の段階で、ほぼ全ての鍵交換と証明が完了します。

🛡️ 試験対策ポイント(支援士試験)

  • TLS1.2と1.3の違いを整理しておく
  • 公開鍵暗号による鍵交換と共通鍵暗号の使い分けを理解する
  • 証明書の役割(なりすまし防止改ざん検知)を説明できるようにする
  • TLSを利用する代表的プロトコルHTTPS、IMAPSなど)を覚える

📝 まとめ

TLSハンドシェイクは、安全な通信の出発点です。攻撃者による盗聴や改ざんを防ぐために、どのように共通鍵を安全に共有するかがカギとなります。試験では技術的理解だけでなく、なぜこの仕組みが必要かという視点も重要になります。

TLS1.3の仕様変更も頻出ですので、従来との違いを押さえておきましょう。