HTTPS

HTTP と HTTPS

HTTP

  • HTTP はテキストの交換であり、HTML ページもテキストである。
  • バイナリデータではなく単純なテキストを送受信するため、誰かがネットワーク上で信号を傍受すると内容が露出する。このようなセキュリティ上の問題を解決するために生まれたものが HTTPS である。

HTTPS

  • HTTPS は、インターネット上の情報を暗号化する SSL(Secure Socket Layer)プロトコルを利用して、クライアントとサーバーがデータを送受信する通信規約である。
  • HTTPS は HTTP テキストを暗号化するものである。
  • HTTPS の S は Secure Socket、つまり安全な通信網を意味する。

HTTPS 暗号化の原理

HTTP の暗号化原理の核心は公開鍵暗号方式である。

  • 証明書を発行し、送信するメッセージを公開鍵で暗号化するようにしている。
  • 暗号化されたメッセージは秘密鍵がなければ復号できないため、途中で誰も元データを得ることはできない。

HTTPS の特徴

HTTPS は SSL/TLS の上に HTTP を実装したものである。

HTTP,HTTPS Layer

主な機能

  • 暗号化(Encryption)
  • 認証(Authentication)
  • 変更検知など

URI Scheme 接頭辞

  • https

使用ポート

  • URL が http ではなく https URI Scheme 接頭辞を持つ場合、通常の HTTP 80 番ではなく HTTPS 443 番ポートを使用する。

標準

SSL/TLS

HTTP 通信で暗号化方式である SSL(Secure Sockets Layer)や TLS(Transport Layer Security)を利用することで、Web サイトを安全に使用できる。

SSL と TLS は同じものである。Netscape によって SSL が発明され、広く使われるようになった後、標準化機関である IETF の管理に移行し、TLS という名前に変わった。TLS 1.0 は SSL 3.0 を継承する。ただし TLS という名前より SSL という名前の方がはるかに多く使われている。

HTTPS の安全確保の仕組み

SSL/TLS では、以下の 3 つの仕組みによって Web サイトの安全性を確保する。

盗聴防止(暗号化通信)

Web サイトの閲覧では複数のサーバーを経由するため、第三者は比較的簡単に通信内容を傍受できる。
仮に傍受されても内容を解読できないようにデータを暗号化して転送することで、第三者からの盗聴を防止する。

改ざん防止

インターネットショッピングで商品の個数を書き換えるようなデータ改ざん対策として「メッセージダイジェスト」が利用される。
メッセージダイジェストは特定データから固有の短いデータ(ハッシュ値)を求める計算である。データ送受信時にハッシュ値を比較することで改ざんを検出できる。

なりすまし防止

Web サーバーに「SSL サーバー証明書」という電子証明書を配置し、接続時に検証することで Web サイト運営者の身元を確認できる。
信頼できない発行元の証明書が利用されている場合、Web ブラウザー上に警告画面が表示される。

HTTPS のセキュリティ動作方式

クライアント(Web ブラウザー)で通常の http ではなく https Scheme を持つ URL アドレスを入力すると、Web サーバーの 80 番ではなく 443 番ポートへ TCP 接続し、バイナリ形式のいくつかのセキュリティパラメーターを交換する(ハンドシェイク、鍵交換)。その後、関連する HTTPS コマンドが実行される。

HTTPS 交換

HTTPS で通信を開始するには、大きく 4 つのフェーズの交換を行う。

  1. 暗号化方式の決定
  2. 通信相手の証明
  3. 鍵交換
  4. 暗号化方式の確認

HTTPS におけるこの 4 段階の相互作用を「SSL/TLS ハンドシェイク」と呼ぶ。

HTTPS のサーバー証明書

サーバー証明書は、サーバーとクライアント間で暗号化通信を行うための電子証明書であり、認証局から発行される。

X.509 に基づく証明書で、証明書に Web サイト情報が追加される。

サーバー証明書に含まれる主なフィールド

  • 証明書シリアル番号および有効期間
  • Web サイトの名前
  • Web サイトの DNS ホスト名(FQDN)
  • Web サイトの公開鍵
  • 署名機関(認証局)の名前
  • 署名機関(認証局)のデジタル署名など

参考