【情報処理安全確保支援士試験 令和6年度 春期 午前2 問13】HTTP Strict Transport Security(HSTS)
情報処理安全確保支援士試験 令和6年度 春期 午前2 問13
【出典:情報処理安全確保支援士試験 令和6年度 春期 午前2(一部、加工あり)】
HTTP Strict Transport Security(HSTS)の動作はどれか。
ア HTTP over TLS(HTTPS)によって接続しているとき、接続先のサーバ証明書がEV SSL証明書である場合とない場合で、Webブラウザのアドレス表示部分の表示を変える。
イ Webサーバからコンテンツをダウンロードするとき、どの文字列が秘密情報かを判定できないように圧縮する。
ウ WebサーバとWebブラウザとの間のTLSのハンドシェイクにおいて、一度確立したセッションとは別の新たなセッションを確立するとき、既に確立したセッションを使って改めてハンドシェイクを行う。
エ Webブラウザは、Webサイトにアクセスすると、以降の指定された期間、当該サイトには全てHTTPSによって接続する。
今回は、Webサイトの安全性を高める重要な仕組みの一つである「HTTP Strict Transport Security(HSTS)」について、分かりやすく解説していきます。
HTTP Strict Transport Security(HSTS)とは? Webの安全を守る強力な盾
Webサイトのセキュリティは、私たちユーザーが安心してインターネットを利用するために不可欠です。その中でも、特に重要な役割を果たすのが「HTTP Strict Transport Security(HSTS)」です。HSTSは、Webサイトとユーザーのブラウザ間の通信を常にHTTPS(暗号化された安全な通信)で行うことを強制し、様々な攻撃から私たちを守るためのセキュリティメカニズムです。
HSTSの定義
HSTSは、Webサーバーがブラウザに対して「このサイトには今後、指定された期間、必ずHTTPSで接続してください」という指示を出すための仕組みです。この指示は、Strict-Transport-SecurityというHTTPレスポンスヘッダーを通じてブラウザに伝えられます。
ブラウザが一度このヘッダーを受け取ると、そのドメインに対する後続のリクエストは、たとえユーザーが意図的にHTTP(非暗号化通信)でアクセスしようとしたとしても、自動的にHTTPSに切り替えられます。
背景と経緯:なぜHSTSが必要なのか?
インターネットが普及し始めた頃、Webサイトの多くはHTTPという非暗号化通信で運用されていました。しかし、HTTPは通信内容が平文でやり取りされるため、悪意のある第三者による「盗聴」や「改ざん」のリスクに常にさらされていました。
その後、通信を暗号化するHTTPSが普及しましたが、それでも以下のようなセキュリティ上の課題が残っていました。
- プロトコルダウングレード攻撃(SSL Stripping): 攻撃者がHTTPでのアクセスをHTTPSに見せかけ、実際には非暗号化通信でユーザーとサーバー間の通信を中継することで、通信内容を盗聴・改ざんする攻撃です。
- 初期アクセス時の脆弱性: ユーザーがWebサイトに初めてアクセスする際、またはブックマークなどからHTTPでアクセスしようとした場合、ブラウザがHSTSの情報をまだ持っていないため、最初の接続がHTTPで行われてしまい、中間者攻撃の対象となる可能性がありました。
- ユーザーの誤操作: ユーザーがURLを手動で入力する際に、「http://」と入力してしまうことで、意図せず非暗号化通信が開始されるリスクがありました。
これらの課題に対処するため、2012年にIETF(Internet Engineering Task Force)によってRFC 6797としてHSTSが標準化されました。HSTSは、一度HTTPSで安全な接続が確立されれば、以降は常にHTTPS接続を強制することで、これらの攻撃や誤操作からユーザーを保護することを目指しています。
HSTSの動作事例
HSTSは、以下のような流れで機能します。
- 初回アクセス: ユーザーがブラウザでWebサイト(例: https://example.com)にアクセスします。この時、ブラウザはHTTPSで接続します。
- HSTSヘッダーの受信: Webサーバーは、HTTPSレスポンスに「Strict-Transport-Security: max-age=31536000; includeSubDomains」のようなHSTSヘッダーを含めて返します。
- max-age: ブラウザがこのサイトにHTTPS接続を強制する期間を秒単位で指定します(例: 31536000秒 = 1年間)。
- includeSubDomains: オプションで、このドメインのサブドメイン(例: blog.example.com)にもHSTSを適用するかどうかを指定します。
- ブラウザの記憶: ブラウザはこのHSTSヘッダーを受け取ると、指定された期間中、そのドメイン(およびサブドメイン)へのアクセスはすべてHTTPSで行うことを記憶します。
- 次回以降のアクセス:
- ユーザーが再びhttp://example.comと入力したり、どこかからhttp://example.comへのリンクをクリックしたりしても、ブラウザは内部的に自動的にhttps://example.comへと変換してアクセスします。
- これにより、プロトコルダウングレード攻撃が防がれ、常に安全な通信が保証されます。
HSTSの課題と対策
HSTSは非常に強力なセキュリティ機能ですが、いくつかの課題も存在します。
- Trust On First Use (TOFU) 問題: HSTSは、ブラウザが一度HSTSヘッダーを受信して初めて有効になります。したがって、ユーザーがWebサイトに初回アクセスする際に、もしその接続がHTTPで行われてしまい、その通信が中間者攻撃の標的となった場合、HSTSは機能しません。
- 証明書の期限切れ・設定ミス: HSTSを導入しているサイトでサーバー証明書が期限切れになったり、設定に問題があったりすると、ユーザーはHSTSによってHTTPS接続を強制されるため、サイトにアクセスできなくなる可能性があります。ブラウザは証明書エラーを無視することを許可せず、強力にアクセスをブロックします。
これらの課題に対する主な対策は以下の通りです。
- HSTS Preload Listの利用: TOFU問題を解決するために、主要なブラウザ(Chrome, Firefox, Edgeなど)は、HSTSを最初から適用するドメインのリスト(HSTS Preload List)を内蔵しています。Webサイトの運営者は、自分のドメインをこのリストに登録申請することで、初回アクセスからHSTSを適用させることが可能になります。
- 適切なHTTPS運用: HSTSを導入するサイトは、常に有効なSSL/TLS証明書を維持し、すべてのコンテンツをHTTPS経由で提供するよう徹底する必要があります。証明書の自動更新や監視体制の構築が重要です。
今後の動向
近年、WebサイトのHTTPS化は事実上の標準となっており、Googleなどの検索エンジンもHTTPSをランキング要因とするなど、その重要性はますます高まっています。多くのブラウザは、HTTPSをデフォルトのプロトコルとして扱う方向へ進んでおり、ユーザーが明示的にHTTPを指定しない限り、常にHTTPSで接続を試みるようになっています。
しかし、このような動きがある中でも、HSTSは依然として重要なセキュリティレイヤーとして機能し続けます。特に、中間者攻撃に対する耐性を高め、ユーザーのセキュリティ意識に依存しない強制的なHTTPS接続を保証するという点で、HSTSの価値は揺らぎません。情報処理安全確保支援士やネットワークスペシャリストを目指す皆さんにとって、HSTSはWebセキュリティを語る上で欠かせない知識と言えるでしょう。
HTTP Strict Transport Security(HSTS)に関する問題解説
それでは、HSTSに関する以下の問題を解説します。
問題: HTTP Strict Transport Security(HSTS)の動作はどれか。
ア HTTP over TLS(HTTPS)によって接続しているとき、接続先のサーバ証明書がEV SSL証明書である場合とない場合で、Webブラウザのアドレス表示部分の表示を変える。
イ Webサーバからコンテンツをダウンロードするとき、どの文字列が秘密情報かを判定できないように圧縮する。
ウ WebサーバとWebブラウザとの間のTLSのハンドシェイクにおいて、一度確立したセッションとは別の新たなセッションを確立するとき、既に確立したセッションを使って改めてハンドシェイクを行う。
エ Webブラウザは、Webサイトにアクセスすると、以降の指定された期間、当該サイトには全てHTTPSによって接続する。
選択肢の解説
- ア HTTP over TLS(HTTPS)によって接続しているとき、接続先のサーバ証明書がEV SSL証明書である場合とない場合で、Webブラウザのアドレス表示部分の表示を変える。
- これはHSTSの動作ではありません。EV SSL証明書(Extended Validation SSL証明書)は、かつてブラウザのアドレスバーに企業名が緑色で表示されるなどの特徴がありましたが、これは証明書の種類による表示の違いであり、HSTSの機能とは関係ありません。現在のブラウザでは、EV SSL証明書による視覚的な違いは少なくなっています。
- イ Webサーバからコンテンツをダウンロードするとき、どの文字列が秘密情報かを判定できないように圧縮する。
- これはCRIME/BREACH攻撃対策などで利用される技術で、HTTP圧縮に関連するセキュリティ対策ですが、HSTSの動作とは異なります。
- ウ WebサーバとWebブラウザとの間のTLSのハンドシェイクにおいて、一度確立したセッションとは別の新たなセッションを確立するとき、既に確立したセッションを使って改めてハンドシェイクを行う。
- これはTLSセッション再開(Session Resumption)の仕組みの一部を説明しているように見えます。TLSセッション再開は、一度確立したセッションの情報を再利用することで、その後のTLSハンドシェイクの負荷を軽減し、接続を高速化するための機能です。これもHSTSの動作とは直接関係ありません。
- エ Webブラウザは、Webサイトにアクセスすると、以降の指定された期間、当該サイトには全てHTTPSによって接続する。
- これがHSTSの正しい動作です。 HSTSは、WebサーバーがStrict-Transport-Securityヘッダーを通じてブラウザに指示を出すことで、ブラウザがそのサイトへのアクセスを強制的にHTTPSにアップグレードし、指定された期間、常にHTTPSで接続することを保証します。
正解
したがって、正解は エ です。