HTTPS と TLS の仕組み:安全な通信を支える暗号化技術

HTTPS とは

HTTPS (HyperText Transfer Protocol Secure) は、HTTP に TLS (Transport Layer Security) による暗号化を加えたプロトコルです。URL が「https://」で始まる Web サイトでは、ブラウザとサーバー間の通信がすべて暗号化されています。

HTTPS は現代の Web における標準であり、Google は検索ランキングの要素として HTTPS 対応を考慮しています。主要なブラウザも、HTTP 接続のサイトに対して「安全ではありません」と警告を表示するようになりました。

TLS の仕組み

TLS (Transport Layer Security) は、通信を暗号化するためのプロトコルです。かつては SSL (Secure Sockets Layer) と呼ばれていましたが、現在はその後継規格である TLS が使われています。

TLS ハンドシェイク

HTTPS 接続の確立時、ブラウザとサーバーの間で「TLS ハンドシェイク」と呼ばれるプロセスが実行されます。

  1. ブラウザがサーバーに接続を要求し、対応する TLS バージョンと暗号スイートの一覧を送信
  2. サーバーが使用する TLS バージョンと暗号スイートを選択し、SSL/TLS 証明書を送信
  3. ブラウザが証明書の有効性を検証 (認証局の署名、有効期限、ドメイン名の一致)
  4. 鍵交換アルゴリズムにより、共通の暗号鍵 (セッションキー) を安全に生成
  5. 以降の通信はすべてセッションキーで暗号化される

このプロセスは通常数十ミリ秒で完了するため、ユーザーが意識することはほとんどありません。

TLS のバージョン

TLS 1.3 (推奨)

2018 年に策定された最新バージョンです。ハンドシェイクが 1 往復 (1-RTT) に短縮され、接続速度が向上しました。脆弱な暗号スイートは廃止され、前方秘匿性 (Forward Secrecy) が必須となっています。

TLS 1.2

2008 年に策定され、現在も広く使われているバージョンです。適切な暗号スイートを選択すれば十分な安全性を確保できますが、設定次第では脆弱な暗号が使われる可能性もあります。

TLS 1.0 / 1.1 (非推奨)

既知の脆弱性があるため、主要ブラウザではサポートが終了しています。これらのバージョンしかサポートしていないサーバーには接続できなくなっています。

確認さんの接続プロトコルセクションでは、現在の接続で使用されている TLS バージョンと暗号スイートを確認できます。

SSL/TLS 証明書の役割

SSL/TLS 証明書は、Web サイトの身元を証明するデジタル証明書です。認証局 (CA: Certificate Authority) が発行し、以下の情報を含みます。

  • ドメイン名
  • 証明書の所有者情報
  • 認証局の署名
  • 公開鍵
  • 有効期限

証明書の種類

  • DV (Domain Validation) 証明書:ドメインの所有権のみを検証。Let's Encrypt などで無料取得可能
  • OV (Organization Validation) 証明書:組織の実在性も検証。企業サイト向け
  • EV (Extended Validation) 証明書:最も厳格な審査を経て発行。金融機関などで使用

暗号スイートとは

暗号スイートは、TLS 接続で使用される暗号アルゴリズムの組み合わせです。鍵交換、認証、暗号化、ハッシュの 4 つの要素で構成されます。

たとえばTLS_AES_256_GCM_SHA384は、AES-256-GCM で暗号化し、SHA-384 でハッシュを計算することを意味します。

確認さんでは、現在の接続で使用されている暗号スイートを接続プロトコルセクションで確認できます。

ALPN と HTTP/2 ・ HTTP/3

ALPN (Application-Layer Protocol Negotiation) は、TLS ハンドシェイク中にアプリケーション層のプロトコル (HTTP/1.1、HTTP/2、HTTP/3 など) をネゴシエーションする仕組みです。

HTTP/2 は TLS 上で動作し、多重化やヘッダー圧縮によって通信効率を大幅に向上させます。HTTP/3 は QUIC プロトコル上で動作し、さらなる高速化と接続の安定性を実現しています。

確認さんでは、ALPN ネゴシエーションの結果や HTTP バージョンも確認できます。

安全な接続を確認する方法

  • ブラウザのアドレスバーに鍵マークが表示されていることを確認する
  • URL が「https://」で始まっていることを確認する
  • 確認さんのセキュリティスコアで HTTPS/TLS 接続の評価を確認する
  • TLS 1.2 以上が使用されていることを確認する

公共 Wi-Fiを利用する際は、HTTPS 接続の確認がとりわけ重要です。