HTTPS
HTTPSは、Web通信に暗号化と認証を付与するプロトコルであり、平文のHTTPにTLS(旧称SSL)を組み合わせたものである。これにより通信の機密性・完全性・真正性が確保され、盗聴・改ざん・なりすましを防止する。ブラウザとサーバの間で暗号化されたチャネルを確立し、URLは「https://」で始まり、既定ポートは443である。
定義と役割
HTTPSはアプリケーション層のHTTPメッセージを、トランスポート層手前でTLSにより暗号化する方式である。利用者は同一のWebアプリを利用しつつ、可視化された錠前アイコンや証明書情報で接続先の正当性を確認できる。重要な役割は、①盗聴対策(機密性)②改ざん検出(完全性)③サーバ認証(真正性)の3点に集約される。
TLSの基本手順
- クライアントがサーバへ暗号スイートとTLSバージョンを提案し、TLSハンドシェイクを開始する。
- サーバはX.509証明書を提示し、ドメイン名と一致することを検証する(SNIとALPNで仮想ホスト・プロトコル選択を調整)。
- 公開鍵暗号で鍵共有を行い、以後は高速な共通鍵暗号で通信する(AEADにより完全性も同時に確保)。
- ハンドシェイク完了後、暗号化されたHTTPリクエスト/レスポンスを交換する。
セキュリティ特性
- 機密性:第三者が内容を読めない。平文のCookieや認証ヘッダの漏えいを抑止する。
- 完全性:改ざんがあれば検出される。途中のプロキシ等での書き換えを防ぐ。
- 真正性:証明書とDNS解決結果の整合で接続先を確認する。フィッシング対策の一助となる。
証明書とPKI
サーバ証明書は認証局(CA)が発行し、ブラウザは信頼ストアに基づき検証する。種別はDV(ドメイン検証)、OV(組織検証)、EV(拡張検証)があり、最近は自動化によりDVが主流である。OCSP Staplingで失効確認を効率化し、証明書チェーンを短く保つと遅延を抑えられる。関連概念として公開鍵暗号とデジタル署名が重要である。
HTTP/2・HTTP/3との関係
HTTP/2は多重化・ヘッダ圧縮を導入し、主要ブラウザは実運用でHTTPSを必須としている。HTTP/3はQUIC上に実装され、TLS 1.3を前提とする。ALPNによりh2やh3が自動選択され、往復回数の削減で待ち時間が短縮される。
運用ベストプラクティス
- TLS 1.3(必要に応じて1.2)を有効化し、弱い暗号スイートや古いプロトコルを無効化する。
- HSTSを設定し、http→httpsを恒久化する。初回は301で恒久リダイレクト。
- 混在コンテンツ(httpの画像・スクリプト)を排除し、完全HTTPS化を徹底する。
- OCSP Staplingと中間証明書の最適配置で接続時間を短縮する。
- キー管理(ローテーション、権限分離、秘密鍵保護)を厳格に行う。
パフォーマンス最適化
ハンドシェイクはコストだが、セッション再開や0-RTT(再送リスクへの配慮必須)で軽減できる。HTTP/2の多重化・サーバプッシュ(適用は慎重)を活用し、圧縮・キャッシュ・CDNで待ち時間を抑える。証明書チェーンの短縮、楕円曲線鍵(ECDSA/ECDHE)の採用も有効である。
URIとポート、名称
スキームは「https://」で、既定ポートは443である。平文の「http://」(80番)とは別扱いであり、サイト全体をHTTPS化することで認証やCookieの安全性が高まる。Webアプリケーションではログイン、決済、個人情報入力などは例外なく暗号化すべきである。
よくある誤解と限界
- 錠前アイコン=安全の保証ではない。正当な証明書でもフィッシングサイトは存在し得る。
- HTTPSは通信路を守るが、終端(クライアント・サーバ)の脆弱性までは防げない。
- 社内プロキシやDLPで復号される場合があり、プライバシーと運用要件の両立設計が必要である。
関連規格・実務メモ
TLS 1.3の採用、AEAD(例:AES-GCM、ChaCha20-Poly1305)の利用、ALPNとSNIの設定、そしてCSP・セキュリティヘッダの整備が推奨される。証明書失効や鍵漏えい時のインシデント手順も事前に定義しておくべきである。
設計・実装チェックリスト
- 自動更新(ACME等)で証明書期限切れを防止
- httpアクセスの即時リダイレクトとHSTSプリロード対応
- 混在コンテンツの全排除とCookieのSecure/HttpOnly/SameSite設定
- 強力な鍵長と楕円曲線の採用、古いTLS/SSLの無効化
- 監査ログ・脆弱性スキャン・定期的ペネトレーションテストの実施
以上のようにHTTPSは、近代的なWebの安全性と信頼性を支える基本要素である。適切な設定と運用により、ユーザ体験とセキュリティを同時に高い水準で満たすことができる。