TL

TLS / SSL(暗号化通信)

通信を盗聴・改ざん・なりすましから守る暗号化の仕組み。HTTPS の“S”の正体で、Webの安全はほぼこれに支えられている。

中級暗号化TLSHTTPSセキュリティ最終更新: 2026-06-04
TL;DR要点だけ先に
  • 1.TLS(旧称 SSL)は通信を暗号化し、盗聴・改ざん・なりすましを防ぐ仕組み。HTTPS の“S”はこれ。
  • 2.ハンドシェイクで鍵を安全に共有し、実データは高速な共通鍵で暗号化する“ハイブリッド方式”。
  • 3.相手が本物かは証明書とCA(認証局)の信頼チェーンで検証する。今は TLS 1.3 が主流。

なぜ暗号化が要る?

普通の HTTP は、内容を そのまま(平文で) 流します。通信経路には、途中のWi-Fiルータ・プロバイダ・経由するネットワーク機器など、たくさんの“他人”がいます。暗号化がないと、TLS は次の3つを同時に守れません。

  • 盗聴(機密性):パスワードやクレジットカード番号を経路の途中で読まれる
  • 改ざん(完全性):受け取る前にこっそり中身を書き換えられる(広告挿入・マルウェア混入など)
  • なりすまし(真正性):偽サイトを本物だと思い込まされる(フィッシング)
“暗号化”だけでは半分

暗号化(盗聴対策)だけでは「今つながっている相手が本物か」は分かりません。偽サーバと暗号通信していても無意味です。だから TLS は、暗号化と 相手の身元確認(証明書) をセットで行います。ここが肝。

仕組み:ハイブリッド暗号

TLS は2種類の暗号を 役割分担 させて使います。これが「ハイブリッド方式」です。

  • 公開鍵暗号(非対称):鍵が「公開鍵」と「秘密鍵」のペア。安全だが 遅い。→ 最初の鍵交換だけに使う
  • 共通鍵暗号(対称):暗号化と復号で同じ鍵を使う。速い が、その鍵を相手にどう安全に渡すかが課題。→ 実データの暗号化に使う

つまり「遅いけど安全な公開鍵で、速い共通鍵を安全に共有し、あとは共通鍵で大量データを暗号化する」という良いとこ取りです。

公開鍵暗号(非対称)共通鍵暗号(対称)
公開鍵+秘密鍵のペア1つの共通鍵を共有
速度遅い速い
TLSでの役割ハンドシェイクで鍵交換・認証実データの暗号化
代表例RSA / ECDSA / ECDHEAES-GCM / ChaCha20

ハンドシェイク(接続のはじめ)

実データを送る前に、暗号化のための取り決めを行うのが ハンドシェイク です。TLS 1.3 の典型的な流れはこうです。

  1. ClientHello:クライアントが「対応する暗号方式(暗号スイート)と TLS バージョン」を提示し、鍵交換用の値も一緒に送る
  2. ServerHello:サーバが暗号方式を1つ選び、自分の鍵交換用の値と 証明書 を返す
  3. 鍵の合成:両者がそれぞれの値を使い、同じ共通鍵を各自で計算 する(鍵そのものは経路に流れない)
  4. 検証完了:クライアントは証明書を検証し、以降は共通鍵で暗号化した通信に切り替わる
鍵は“渡さず、作る”

現代の TLS(ECDHE 等の鍵交換)では、共通鍵そのものをネットワークに流しません。両者が材料を交換し、各自が手元で同じ鍵を導出 します。これにより、後で秘密鍵が漏れても 過去の通信は解読されない(前方秘匿性 / Forward Secrecy)という強みが得られます。

証明書とCA・信頼チェーン

「サーバが返す公開鍵は、本当に example.com のものか?」を保証するのが サーバ証明書 です。証明書には ドメイン名・公開鍵・有効期限 などが書かれ、それを CA(認証局 / Certificate Authority) が秘密鍵で 電子署名 しています。

検証はこう連鎖します(信頼チェーン)。

  • サーバ証明書は 中間CA の署名で保証される
  • 中間CAの証明書は ルートCA の署名で保証される
  • ルートCAの証明書は、OS・ブラウザに 最初から組み込まれている(=信頼の起点 / トラストストア)

この鎖がルートまで途切れず辿れて、かつドメイン名・有効期限が一致して初めて「本物」と判断されます。

“鍵マーク=安全なサイト”ではない

鍵マークは「通信が暗号化されている」ことを示すだけで、「運営者が善良」という意味ではありません。証明書は誰でも(攻撃者でも)取得でき、フィッシングサイトが HTTPS であることはよくあります。鍵マークではなく、URLのドメイン名そのものを確認 してください。

証明書の種類(ざっくり)

審査の厳しさで、主に3種類あります。表示の違いは年々小さくなっていますが、用途で選びます。

Let's Encrypt などで広まった DV は、今や Web の暗号化を支える主役。
種類確認するもの向き
DV(ドメイン認証)ドメインの保有のみ(自動・無料も多い)個人サイト・一般的なWeb全般
OV(組織認証)ドメイン+組織の実在企業サイト
EV(拡張認証)ドメイン+組織の厳格な審査金融など高い信頼が要る場面

HTTPS との関係

HTTPS は新しいプロトコルではなく、HTTP を TLS の上で喋っているだけ です。

HTTP  =  HTTP             (平文)
HTTPS =  HTTP over TLS    (TLSで暗号化された通信路の中をHTTPが流れる)

TLS はアプリより下の層で働くので、HTTP の中身(メソッド・ヘッダ・本文)は アプリ側がほぼ意識せず まるごと暗号化されます。詳しくは /network/http/ も参照。なお TLS の標準ポートは 443 です。

TLS 1.2 と 1.3 の違い

長く使われてきた 1.2 に対し、1.3 は安全性と速度を大きく改善しました。古い・危険な方式(RSA鍵交換や古い暗号)を仕様から削っています。

項目TLS 1.2TLS 1.3
ハンドシェイク往復2往復(2-RTT)1往復(1-RTT)で高速
前方秘匿性選択次第(任意)常に有効(必須)
古い弱い暗号残っている削除済みで選べない
再接続セッション再開あり0-RTT で再接続をさらに高速化(注意点あり)
登場2008年2018年(現在の主流)
0-RTT は速いが万能ではない

TLS 1.3 の 0-RTT(再接続時に往復ゼロで最初のデータを送る)は高速ですが、その最初のデータは リプレイ攻撃(同じ送信の使い回し) を受けうるため、決済のような“2回実行されると困る”処理には使わない のが原則です。

つまずきポイント

  • 「SSL証明書」と呼ぶが中身は TLS。慣習で SSL という語が残っているだけで、SSL 2.0/3.0 は脆弱なため使ってはいけません
  • 証明書の有効期限切れは最頻出の事故。期限が来ると一斉にエラーになるので、自動更新(ACME / certbot 等) を入れておく
  • 中間証明書の入れ忘れで「自分のブラウザは緑だが、他環境では信頼チェーン切れ」が起きる。サーバには サーバ証明書+中間証明書をセット で設定する
  • 時刻ずれでも検証は失敗する。証明書の有効期間判定はサーバ/クライアントの時計に依存するため、NTPで時刻同期

ハンズオン

# サーバが返す証明書の中身(CN/有効期限/発行者)を確認
openssl s_client -connect example.com:443 -servername example.com </dev/null \
  | openssl x509 -noout -subject -issuer -dates

# ネゴシエートされた TLS バージョンと暗号スイートを確認
openssl s_client -connect example.com:443 -servername example.com </dev/null \
  | grep -E "Protocol|Cipher"

# TLS 1.3 で接続できるか試す
openssl s_client -connect example.com:443 -tls1_3 </dev/null

# curl で証明書チェーン込みの詳細を見る
curl -vI https://example.com 2>&1 | grep -E "SSL|subject|issuer|TLS"

ネットワーク Article

TLS / SSL(暗号化通信)を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

暗号化

比較で見る軸

難易度: intermediate / カテゴリ: ネットワーク / タグ数: 4

導入後に効く点

ハンドシェイクで鍵を安全に共有し、実データは高速な共通鍵で暗号化する“ハイブリッド方式”。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
intermediate
カテゴリ
ネットワーク
タグ数
4

判断チェックリスト

  • 自社の用途が「暗号化 / TLS」に近いか確認する。
  • 強みである「TLS(旧称 SSL)は通信を暗号化し、盗聴・改ざん・なりすましを防ぐ仕組み。HTTPS の“S”はこれ。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

暗号化TLSHTTPSセキュリティ暗号化TLSHTTPSセキュリティ
参考: 公式情報