TLS詳細(Cipher Suite・HSTS)とは?4つのしくみ

公開: 更新: カテゴリ: セキュリティ系

30秒で結論

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証明書の発行を公開ログで監視し、不正な証明書を見つけやすくする

言葉を噛み砕いておく。

わかりやすく言い換えると

つまり、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(前方秘匿性)

📝 オリジナル問題 1 前方秘匿性

TLSの前方秘匿性(PFS)に関する次の記述のうち、正しいものはどれか。

  1. 前方秘匿性は毎回同じ固定の鍵を使うしくみで、秘密鍵が漏れると過去の通信もすべて読まれてしまうことになる
  2. 前方秘匿性は通信の速度を上げるためだけのしくみで、過去の通信を守ることとは関係しないとされている
  3. 前方秘匿性は画面の文字を大きくするための表示の設定で、暗号や鍵とはまったく関係がないとされている
  4. 前方秘匿性は使い捨ての鍵を使い、あとで秘密鍵が漏れても過去の通信を守るしくみ(ECDHEなど)である
ピーエムロボ
ピーエムロボ 解答・解説

解答は 4 である。

前方秘匿性(PFS)は、使い捨ての鍵を使い、あとで秘密鍵が漏れても過去の通信を守るしくみ(ECDHEなど)。録音された過去の通信も解けない。

選択肢1は「固定の鍵・過去も読まれる」が誤り。選択肢2の速度、選択肢3の画面設定は、いずれも誤りだ。

選択肢判定理由
1使い捨て鍵で過去の通信は守られる
2速度を上げるだけのしくみではない
3画面設定ではない
4使い捨て鍵で過去を守るで正しい

オリジナル問題2(HSTS)

📝 オリジナル問題 2 HSTS

HSTSに関する次の記述のうち、正しいものはどれか。

  1. HSTSはブラウザに必ずHTTPSで接続させ、HTTP経由の攻撃を防ぐためのしくみ(応答ヘッダ)である
  2. HSTSは通信をわざと平文のHTTPに切り替えるしくみで、盗み見をしやすくするためのものとされている
  3. HSTSは画面の明るさを自動で調整する設定のことで、通信の安全とはまったく関係がないとされているのだ
  4. HSTSはデータを圧縮して通信量を減らすためだけのしくみで、HTTPSの強制とは関係しないとされている
ピーエムロボ
ピーエムロボ 解答・解説

解答は 1 だ。

HSTSは、ブラウザに必ずHTTPSで接続させるしくみ(ヘッダ)。危ないHTTP経由の攻撃を防ぐのが目的だ。

選択肢2は「平文に切り替える」が誤りで、逆。選択肢3の明るさ調整、選択肢4の圧縮は、いずれも誤りだ。

選択肢判定理由
1HTTPSを強制しHTTP攻撃を防ぐで正しい
2平文に切り替えるのではなく逆
3明るさ調整ではない
4圧縮のしくみではない

オリジナル問題3(バージョンとSNI)

📝 オリジナル問題 3 バージョンとSNI

TLSのバージョンやSNIに関する次の記述のうち、正しいものはどれか。

  1. TLSは1.2で十分で、1.3にする必要はまったくなく、脆弱な暗号もそのまま使い続けてよいとされている
  2. TLSは1.3が推奨で脆弱な暗号が削除され接続も速い。なお接続先名のSNIは平文でECHで暗号化が進む
  3. TLSはバージョンによる違いがいっさいなく、どの版を使っても安全性は完全に同じだとされているのである
  4. SNI(接続先のサーバ名)はもともと完全に暗号化されており、ECHのようなしくみは不要とされているのだ
ピーエムロボ
ピーエムロボ 解答・解説

解答は 2 だ。

TLSは1.3が推奨で、脆弱な暗号が削除され接続も速い(1-RTT)。なお接続先名のSNIは平文で、ECH(旧ESNI)で暗号化する動きが進んでいる。

選択肢1は「1.2で十分」が誤り。選択肢3は「版による違いがない」が誤り。選択肢4は「SNIは完全に暗号化」が誤りだ。

選択肢判定理由
11.3が推奨で脆弱な暗号は削除
21.3推奨・SNIは平文でECH化で正しい
3版で安全性は変わる
4SNIは平文でECHで暗号化が進む

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る