プロトコル補足

TLS(Transport Layer Security) てぃーえるえす

暗号化HTTPSSSL証明書ハンドシェイクセキュリティ
TLSって何?HTTPSと何か関係あるの?

簡単に言うとこんな感じ!

TLSはインターネット上の「鍵付き封筒」みたいなものだよ!ウェブサイトとブラウザの間でやり取りするデータを暗号化して、盗み見や改ざんを防いでくれるんだ。ブラウザのアドレスバーに「🔒」マークが出てるサイトは、TLSが働いているってこと!


TLSとは

TLS(Transport Layer Security) は、インターネット上でデータを安全にやり取りするための暗号化プロトコル(通信の手順・ルール)です。ウェブサイトの閲覧・オンラインショッピング・メール・ビデオ会議など、私たちが日常的に使うほぼすべてのインターネット通信の裏側で動いています。

よく耳にする HTTPS は「TLSで保護されたHTTP通信」のことです。アドレスバーの「🔒」マークは「このページへの通信はTLSで暗号化されていますよ」というサインで、TLSがなければパスワードやクレジットカード番号などの情報が丸見えになってしまいます。

TLSの前身は SSL(Secure Sockets Layer) というプロトコルで、今でも「SSL証明書」「SSL化する」という言葉が使われますが、現在の実態はほぼTLSです。SSLはすでにセキュリティ上の脆弱性が見つかり廃止されているため、「SSL/TLS」と併記されることも多いですが、実務ではTLS一択と覚えておけばOKです。


TLSが守っていること

TLSは3つの重要な安全性を同時に提供しています。

機能意味たとえ話
機密性(暗号化)第三者がデータを読めないようにする封筒に入れて鍵をかける
完全性(改ざん検知データが途中で書き換えられていないか確認する封印シールで開封確認
認証本当に正しい相手と通信しているか確認する身分証で相手の素性を確認

ハンドシェイク:通信開始前の「合鍵づくり」

TLSの通信は最初に ハンドシェイク(握手) と呼ばれる手順を踏みます。「合鍵をどう作るか」を暗号化したまま決めるための手続きで、ざっくりこんな流れです。

クライアント(ブラウザ)          サーバー(ウェブサイト)
       |                                 |
       |--- ① こんにちは(対応バージョン・暗号の種類を提示)--->|
       |                                 |
       |<-- ② こんにちは(使う暗号を決定 + 証明書を送付) ------|
       |                                 |
       |--- ③ 証明書確認・共通鍵の素材を送付 --------------->|
       |                                 |
       |<--> ④ 共通鍵で暗号化された通信スタート! <---------->|

このハンドシェイクが完了するとブラウザに「🔒」マークが表示されます。

TLSのバージョン比較

バージョンリリース状態補足
SSL 2.0 / 3.01994〜1996年❌ 廃止脆弱性多数。使用禁止
TLS 1.0 / 1.11999〜2006年❌ 廃止推奨主要ブラウザがサポート終了
TLS 1.22008年✅ 現役多くのシステムで標準
TLS 1.32018年✅ 推奨高速・高セキュリティ。最新

歴史と背景

  • 1994年 — Netscape社がSSL 2.0を開発。インターネット通販を安全にするため登場
  • 1996年 — SSL 3.0にアップデートされるが、設計上の欠陥が後に発覚
  • 1999年 — IETFがSSLを引き継ぎ、標準規格としてTLS 1.0を策定(RFC 2246)
  • 2014年 — SSL 3.0の致命的な脆弱性「POODLE攻撃」が発覚し、SSL全廃の流れが加速
  • 2018年 — TLS 1.3がRFC 8446として策定。ハンドシェイクの高速化・古い暗号方式の削除など大幅刷新
  • 2020年 — 主要ブラウザ(Chrome・Firefox・Edge・Safari)がTLS 1.0/1.1のサポートを終了
  • 現在 — GoogleのSEO評価でもHTTPS化(TLS利用)がランキング要因の一つとなり、事実上すべてのウェブサイトに必須の技術に

SSL/TLSとHTTPSの関係

「SSL・TLS・HTTPS」の言葉が混乱しやすいので、整理しましょう。

SSL / TLS / HTTPS の関係 HTTPS(HyperText Transfer Protocol Secure) 「TLSで保護されたHTTP」のこと。ブラウザのアドレスバーに表示されるプロトコル名 TLS(Transport Layer Security) 実際に暗号化を担うプロトコル。現在の実態はこれ(TLS 1.2 / 1.3) SSL(Secure Sockets Layer) TLSの前身。現在は廃止済み。「SSL証明書」という名称だけ残っている 使用する 後継

SSL証明書との関係

「SSL証明書」または「TLS証明書」とも呼ばれるサーバー証明書は、「このウェブサイトは本物ですよ」と証明するための電子的な身分証明書です。発行するのは CA認証局 と呼ばれる信頼された第三者機関で、Let’s Encryptのような無料のものから、企業の実在確認まで行う有料のものまであります。

証明書の種類確認レベル主な用途
DV(ドメイン認証)ドメインの所有確認のみ個人・中小サイト。無料取得も可
OV(組織認証)企業実在確認あり企業サイト全般
EV(拡張認証)厳格な企業審査あり銀行・EC・官公庁など

関連する規格・RFC

規格・RFC番号内容
RFC 8446TLS 1.3の仕様(2018年策定)
RFC 5246TLS 1.2の仕様(2008年策定)
RFC 6101SSL 3.0の仕様(歴史的記録として残存)
RFC 5280X.509証明書(SSL/TLS証明書の形式)の仕様
RFC 8555ACME(Let’s Encryptなどの証明書自動発行プロトコル)

関連用語

  • HTTPS — TLSで保護されたHTTP通信。ウェブサイトのアドレスに「https://」と表示される
  • SSL証明書 — サーバーの正当性を証明する電子的な身分証。TLS通信に必要
  • PKI(公開鍵基盤) — TLSが利用する、公開鍵暗号を管理する仕組み全体
  • 認証局(CA) — SSL/TLS証明書を発行する信頼された第三者機関
  • HTTP — TLSなしの平文ウェブ通信プロトコル。現在は原則使用非推奨
  • ゼロトラスト — TLSを前提としつつ「通信を信頼しない」セキュリティ設計思想