TLS詳細とは(全体像)
TLSは、HTTPSなどの通信を暗号化して守るプロトコル。ここでは、その中身のしくみを見ていく。
通信を始めるとき、両者は「どの暗号の組み合わせを使うか」を決める。これがCipher Suiteだ。最新のTLS 1.3では、安全な組み合わせに整理され、前方秘匿性(PFS)が標準になった。
押さえるのは、Cipher Suiteと前方秘匿性、そしてHSTSやCertificate Transparencyといった守りのしくみだ。
詳しく:4つのしくみを押さえる
ここが心臓部。深掘りする4つを整理する。
TLSの中身の4つのしくみ
| しくみ | 内容 |
|---|---|
| Cipher Suite | 使う暗号の組み合わせ(鍵交換・暗号・ハッシュ)を決める |
| 前方秘匿性(PFS) | 使い捨ての鍵で、あとで秘密鍵が漏れても過去の通信を守る |
| HSTS | 「必ずHTTPSで」とブラウザに強制し、HTTP経由の攻撃を防ぐ |
| Certificate Transparency | 証明書の発行を公開ログで監視し、不正な証明書を見つけやすくする |
言葉を噛み砕いておく。
- Cipher Suite … 通信を守るための「暗号の組み合わせメニュー」。TLS 1.3では、安全なもの(AEAD)に整理された。
- 前方秘匿性(PFS) … 毎回使い捨ての鍵を使うしくみ(ECDHEなど)。だから、あとで本物の秘密鍵が漏れても、録音しておいた過去の通信は解けない。
- HSTS … 「この店は必ず正面の安全な入口(HTTPS)から」と決め、危ない裏口(HTTP)を使わせない貼り紙のようなもの。
- Certificate Transparency … 発行された証明書を公開の台帳に記録し、にせの証明書が作られても気づけるようにする。
わかりやすく言い換えると
つまり、TLSの中身は「安全な入口を強制し、合鍵を使い捨てにする店」にたとえるとスッと入る。
通信のはじめに、店と客は「どの鍵と暗号の組み合わせで話すか」を決める。これがCipher Suiteで、TLS 1.3では安全なものだけに整理された。さらに、毎回の会話に使い捨ての合鍵を使うのが前方秘匿性(PFS)。たとえ後日に本鍵が盗まれても、録音された過去の会話は開けられない。
HSTSは「必ず安全な入口(HTTPS)から入って」と決める貼り紙で、危ない裏口(HTTP)を使わせない。Certificate Transparencyは、発行された証明書を公開の台帳で見張ることで、にせ証明書に気づけるようにするしくみだ。
試験のツボ
🔴 一番出る:前方秘匿性(PFS)とCipher Suite
①PFS=使い捨ての鍵で、過去の通信を守る(ECDHEなど)
②Cipher Suite=使う暗号の組み合わせ。TLS 1.3はAEAD必須
🔴 次に出る:HSTSとCertificate Transparency
①HSTS=HTTPSを強制し、HTTP経由の攻撃を防ぐ
②Certificate Transparency=証明書発行を公開ログで監視
🟡 押さえると安定:TLSは1.3が推奨(1.2で十分ではない)。SNIは平文(ECHで暗号化が進む)
よくある間違い
①「前方秘匿性があっても、秘密鍵が漏れれば過去の通信もすべて読まれる」→ ✗ 前方秘匿性は使い捨ての鍵を使うので、あとで秘密鍵が漏れても過去の通信は守られる。
②「TLSは1.2で十分で、1.3にする必要はない」→ ✗ 1.3が推奨。脆弱な暗号が削除され、接続も速い(1-RTT)。
③「SNI(接続先のサーバ名)は暗号化されている」→ ✗ SNIは平文。ECH(旧ESNI)で暗号化する動きが進んでいる。
試験での出題パターン
実際の問題でたしかめてみよう。
オリジナル問題1(前方秘匿性)
TLSの前方秘匿性(PFS)に関する次の記述のうち、正しいものはどれか。
- 前方秘匿性は毎回同じ固定の鍵を使うしくみで、秘密鍵が漏れると過去の通信もすべて読まれてしまうことになる
- 前方秘匿性は通信の速度を上げるためだけのしくみで、過去の通信を守ることとは関係しないとされている
- 前方秘匿性は画面の文字を大きくするための表示の設定で、暗号や鍵とはまったく関係がないとされている
- 前方秘匿性は使い捨ての鍵を使い、あとで秘密鍵が漏れても過去の通信を守るしくみ(ECDHEなど)である
解答は 4 である。
前方秘匿性(PFS)は、使い捨ての鍵を使い、あとで秘密鍵が漏れても過去の通信を守るしくみ(ECDHEなど)。録音された過去の通信も解けない。
選択肢1は「固定の鍵・過去も読まれる」が誤り。選択肢2の速度、選択肢3の画面設定は、いずれも誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 使い捨て鍵で過去の通信は守られる |
| 2 | ✗ | 速度を上げるだけのしくみではない |
| 3 | ✗ | 画面設定ではない |
| 4 | ✓ | 使い捨て鍵で過去を守るで正しい |
オリジナル問題2(HSTS)
HSTSに関する次の記述のうち、正しいものはどれか。
- HSTSはブラウザに必ずHTTPSで接続させ、HTTP経由の攻撃を防ぐためのしくみ(応答ヘッダ)である
- HSTSは通信をわざと平文のHTTPに切り替えるしくみで、盗み見をしやすくするためのものとされている
- HSTSは画面の明るさを自動で調整する設定のことで、通信の安全とはまったく関係がないとされているのだ
- HSTSはデータを圧縮して通信量を減らすためだけのしくみで、HTTPSの強制とは関係しないとされている
解答は 1 だ。
HSTSは、ブラウザに必ずHTTPSで接続させるしくみ(ヘッダ)。危ないHTTP経由の攻撃を防ぐのが目的だ。
選択肢2は「平文に切り替える」が誤りで、逆。選択肢3の明るさ調整、選択肢4の圧縮は、いずれも誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✓ | HTTPSを強制しHTTP攻撃を防ぐで正しい |
| 2 | ✗ | 平文に切り替えるのではなく逆 |
| 3 | ✗ | 明るさ調整ではない |
| 4 | ✗ | 圧縮のしくみではない |
オリジナル問題3(バージョンとSNI)
TLSのバージョンやSNIに関する次の記述のうち、正しいものはどれか。
- TLSは1.2で十分で、1.3にする必要はまったくなく、脆弱な暗号もそのまま使い続けてよいとされている
- TLSは1.3が推奨で脆弱な暗号が削除され接続も速い。なお接続先名のSNIは平文でECHで暗号化が進む
- TLSはバージョンによる違いがいっさいなく、どの版を使っても安全性は完全に同じだとされているのである
- SNI(接続先のサーバ名)はもともと完全に暗号化されており、ECHのようなしくみは不要とされているのだ
解答は 2 だ。
TLSは1.3が推奨で、脆弱な暗号が削除され接続も速い(1-RTT)。なお接続先名のSNIは平文で、ECH(旧ESNI)で暗号化する動きが進んでいる。
選択肢1は「1.2で十分」が誤り。選択肢3は「版による違いがない」が誤り。選択肢4は「SNIは完全に暗号化」が誤りだ。
| 選択肢 | 判定 | 理由 |
|---|---|---|
| 1 | ✗ | 1.3が推奨で脆弱な暗号は削除 |
| 2 | ✓ | 1.3推奨・SNIは平文でECH化で正しい |
| 3 | ✗ | 版で安全性は変わる |
| 4 | ✗ | SNIは平文でECHで暗号化が進む |
まとめ
押さえどころ
- 🔴 Cipher Suite = 使う暗号の組み合わせ(TLS 1.3はAEAD必須)。前方秘匿性(PFS) = 使い捨て鍵で過去の通信を守る(ECDHE)。
- 🔴 HSTS = HTTPSを強制しHTTP経由の攻撃を防ぐ。Certificate Transparency = 証明書発行を公開ログで監視。
- 🟡 TLSは1.3が推奨(1.2で十分ではない)。SNIは平文で、ECHで暗号化が進む。
次に学ぶ
- TLS 1.3(HTTPS) ── TLSの基本。ウェブ通信を暗号化するしくみの全体像。
- RSA・ECC(公開鍵暗号) ── 前方秘匿性の鍵交換(ECDHE)に使われる、鍵が2つの暗号。
- PKI(信頼チェーン・OCSP) ── Certificate Transparencyが見張る、証明書のしくみ。
執筆: SikakuQuest編集部