概要
TLS(Transport Layer Security)は、インターネット上の通信を暗号化・認証するプロトコルです。SSL の後継であり、HTTPS・SMTPS・IMAPS など多くのプロトコルの土台になっています。SC試験では午前II・午後ともに頻出の最重要分野です。
仕組みと動作原理
TLSハンドシェイクの流れ(TLS 1.2)
| ステップ | クライアント | サーバ |
|---|---|---|
| 1 | ClientHello(対応暗号スイート一覧送信) | → |
| 2 | ← | ServerHello(暗号スイート選択)+ Certificate(サーバ証明書)+ ServerHelloDone |
| 3 | 証明書検証 → ClientKeyExchange(プリマスタシークレット送信) | |
| 4 | ChangeCipherSpec + Finished | → |
| 5 | ← | ChangeCipherSpec + Finished |
プリマスタシークレットからマスタシークレットが導出され、そこからセッション鍵(送受信各1本ずつ)が生成されます。
TLS 1.2 vs TLS 1.3 の主な差異
| 観点 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| ハンドシェイク往復数 | 2-RTT | 1-RTT(0-RTT 再接続も可能) |
| 鍵交換 | RSA 鍵交換(静的)も可 | ECDHE のみ(前方秘匿性を強制) |
| 廃止された暗号 | RC4・3DES・MD5 などが残存 | 弱い暗号スイートを完全廃止 |
| 暗号化開始タイミング | Finished から | ServerHello 直後から |
暗号スイートの読み方
例: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ECDHE_RSA:鍵交換アルゴリズム(楕円曲線 Diffie-Hellman Ephemeral + RSA 認証)AES_256_GCM:共通鍵暗号と動作モードSHA384:メッセージ認証(HMAC)
SC試験での頻出ポイント
- 前方秘匿性(PFS):ECDHE・DHE を使う場合のみ実現。RSA 鍵交換は PFS なし
- 証明書検証の流れ:ルート CA → 中間 CA → サーバ証明書のチェーン検証
- HSTS(HTTP Strict Transport Security):初回接続後に HTTPS のみを強制するヘッダ
- TLS 終端:ロードバランサや CDN で TLS を終端するアーキテクチャと、エンドツーエンド暗号化の違い
- ダウングレード攻撃:POODLE(SSL 3.0)・DROWN(SSLv2)などの脆弱性事例
よくある誤問・ひっかけパターン
誤り① 「TLS は共通鍵暗号を使わない」→ 誤。ハンドシェイクで鍵を共有した後、実際のデータ通信は AES などの共通鍵暗号で行います。
誤り② 「デジタル証明書はサーバを暗号化する」→ 誤。証明書は認証(なりすまし防止)のためのものです。暗号化はセッション鍵が担います。
誤り③ 「TLS 1.3 では 0-RTT で必ず前方秘匿性が確保される」→ 誤。0-RTT 再接続は過去のセッション鍵を再利用するため、リプレイ攻撃のリスクがあり前方秘匿性を完全には保証しません。
関連用語
- VPN(IPsec・SSL-VPN) — TLS を利用する SSL-VPN との比較
- 公開鍵暗号(RSA)とデジタル署名 — TLS 証明書の基盤技術
- 共通鍵暗号(AES)と動作モード — TLS でのデータ暗号化に使用
重要キーワード
| 用語 | 説明 |
|---|---|
| プリマスタシークレット | ハンドシェイク中にクライアントが生成し、サーバの公開鍵で暗号化して送る乱数 |
| マスタシークレット | プリマスタシークレットから導出される48バイトの共通秘密値 |
| 前方秘匿性(PFS) | 長期秘密鍵が漏洩しても過去のセッションが解読されない性質 |
| 暗号スイート | 鍵交換・認証・共通鍵暗号・MACアルゴリズムの組み合わせ |
| HSTS | サーバがHTTPS接続のみを要求するセキュリティポリシーヘッダ |
| 証明書チェーン | ルートCA → 中間CA → サーバ証明書の信頼の連鎖 |