ブロギングライフ

ブログサイト運営関連、AdSenseについての情報などを発信しています。

HTTPS化したサイトでHSTSが推奨される理由とプリロードリストへの登録方法

HTTPS化したサイトでHSTSが推奨される理由とプリロードリストへの登録方法

サイトをSSL化した後、サーバー側に301 HTTP リダイレクトを使用して、HTTPページにアクセスしようしたユーザーや検索エンジンをHTTPSにリダイレクトの設定を行うのが一般的です。しかし、リダイレクト前に中間攻撃を受けるリスクが依然としてあります。リダイレクトに加えてHSTSをサポートする ことをGoogleは推奨しています。

WebサーバーがWebブラウザに対して、現在接続しているドメイン(サブドメインを含む場合もある)に対するアクセスにおいて、次回以降HTTPの代わりにHTTPSを使うように伝達するセキュリティ機構である。RFC 6797 で規定されている。

HSTSサポートが推奨される理由

301や302 リダイレクトによってHTTPからHTTPSに転送する設定では、リダイレクトされる前、HTTPへのアクセスする間のトラフィックはセキュリティで保護されていないため安全ではありません。

サーバー側でHSTSのレスポンスヘッダーを備えていると、アクセスしてきたブラウザに対して常にSSL/TLSでの通信を行うように通知されます。通知を受けたブラウザは、次回以降、そのHTTPのままのブックマークや、以前投稿されたHTTPのままのサイトへのリンク(含む他サイトからのリンク)をクリックしても、HTTPでなくHTTPSを強制的に使用するようになります。

つまり、次回からはHTTP経由でなく最初からHTTPSになるため、安全になりますが、最初にアクセスする時は安全ではないということです。

HSTS プリロードとは

上に書いた様に、HSTSを備えることで安全性は高まります。しかし、リダイレクトされる前の一回目のアクセスの時は安全ではありません。HSTSプリロードとは、登録済みのサイトでは予め(最初から)SSL/TLSでの通信を行うようにブラウザーに通知する仕組みです。

HSTS プリロードのリストは、Googleによって取りまとめられ、主要なブラウザ(Chrome、Firefox、Safari、IE11とEdge、Opera)で使用されています。(HSTS サポートブラウザ・バージョン一覧)リストに登録されているサイトでは、SSL/TLSを使用することをブラウザ側で予め分かるようになっています。

HSTS プリロードを行うことで、HTTP上での不安全なトラフィックの状態が(最初から)生じない(ハッカーからのHTTPからHTTPへの転送前の中間攻撃を防止する)ため、より安全性が高くなります。

プリロード リスト登録条件

HSTS プリロードリストに登録するためには、以下の条件を満たしている必要があります。

  • 有効なSSL証明
  • 同一ホストでのHTTPからHTTPへのリダイレクト
  • 全てのサブドメインもHTTPSで提供
  • HTTPS リクエストされるドメイン上にHSTS ヘッダーが設置されていること
    • 最低1088644秒(18週)のマックスエイジ
    • サブドメインを含む指示(includeSubDomains )が指定されていること
    • プリロードの指示が指定(ディレクティブ)されていること
    • HTTPS サイトからの追加リダイレクトがある場合、リダイレクトするサイトにHSTS ヘッダーが含まれていること

詳細はInternet Engineering Task Force (IETF) RFC 6797 をご参照下さい。

HSTSの設定方法

プリロードを含めたHSTSの設定は、.htaccess に以下のコードを追加します。

“Header set Strict-Transport-Security”がHSTSのヘッダーの設定コードです。

“max-age=10886400″は、max-ageの設定です。単位は秒になります。10886400秒は18週です。最初は短めに設定して確認を行い、徐々に長くしていくことを推奨しています。プリロードの申請のページでは、max-ageを2年(63072000)まで引き上げてプリロードリストに申請することを推奨しています。

“includeSubDomains”は、サブドメインを含むディレクティブの設定コードです。

“preload”はプリロードのディレクティブです。

上記、コード設定でプリローディングの条件を満たしています。


スポンサーリンク

HSTS プリロード リストへの登録申請

HSTS preload list の登録ページ にアクセスします。ページ上部のURL入力欄(下の画面で”example.com”と表示されている部分)に申請するサイトのURLを入力します。

HSTS プリロード リスト 登録フォームのURL入力欄

“Check status and eligibility”のボタンを押すと、サイトがHSTSのプリロード リスト登録条件を満たしているか診断を行います。

診断の結果、条件を満たしていないと、画面が赤色に変わりエラーメッセージが表示されます。

HSTS プリロード診断不合格

上の画面では、HSTS ヘッダーがないため、レスポンスエラーとなったとメッセージがあります。

登録条件を満たしていた場合(診断合格)、診断ボタンの下にStatus(ステータス)に、サイトがまだプリロードされていないこと、HSTS プリロード リストに登録可能である旨のメッセージが表示されます。

HSTS プリロード リスト登録診断合格ページ

下側に申請登録を行う上での確認事項のチェック項目が表示されます。項目の一番目は、サイトのオーナーであること、またはHSTS プリロードすることを(オーナーから)承認されていることについての確認です。

二番目の項目は、このフォームを提出してサイトのプリロードを行うと、全てのサブドメインとネストされたサブドメインは、有効なHTTPS認証がない限りアクセスされなくなることを理解していることについての確認です。

項目の先頭のボックスにチェックを入れて、下の[Submit(申請)]ボタンを押します。正常に登録申請フォームが送信されると、以下の様なメッセージが表示されます。HSTS プリロード リスト登録申請完了メッセージ

申請したサイトが引き続きプリロードの条件を満たしていないとリストから削除されます。数週間後にこのサイトを再び訪問して、申請をおこなったドメインのステータスをチェックしてくださいと記載されています。

HSTS の設定とプリロード リストへの登録申請作業は以上です。SSL化をした後は、訪問するユーザーにより安全なネット環境を提供するためHSTSのプリロードの設定・登録を行うことをお勧め致します。

コメントを残す

*
*
* (公開されません)

Return Top