🔐

HSTSプリロードリストについて調べてみた

2021/07/19に公開

HSTSプリロードリスト ついて調べてみた

0. 簡単まとめ

  • HSTS (Http Strict Transport Security)
    • あるサイトにおいてHTTPSで通信することを強制する仕組み
    • WEBサイトにアクセスした時に、サーバーがレスポンスで「次回以降HTTPSでアクセスしてね」と通知をすることで、ブラウザが常にHTTPSでアクセスするようになる
    • HTTPS通信を強制できるため中間者攻撃の盗聴、改ざんなどへの有効な対策になる
      • 初回はHTTPでアクセスする可能性があるためリスクが残る
  • HSTSプリロードリスト
    • HSTSに対応したサイト(https通信を要求するサイト)のリスト
    • 事前にブラウザがHSTSプリロードリストに登録されているか確認することで初回からHTTPSで通信することを強制できる
    • HSTS Preload List Submissionで登録できる
  • 参考

1. はじめに

自分のドメインを取得することにしたので、トップレベルドメイン(.jpや.comなど)は何がいいかと探していました。

比較的安価で取得できてデベロッパー専用ドメインと言う触れ込みの .dev と言うドメインについて調べていると Google Domains に以下のような記述が。

組み込みのセキュリティ機能

各 .dev ドメインのウェブの安全性を高める取り組みをしています。
すべての .dev ドメインは HSTSプリロードリスト に登録されているため、
すべての接続で HTTPS が必要になります。
これにより、サイトおよびサイトの顧客のための組み込みのセキュリティ機能が実現します。

聞き馴染みのない HSTSプリロードリスト と言うものが気になったので調べてみました。

2. HSTS(Http Strict Transfer Security) とは

HSTSとは、あるWEBサイトにアクセスするときにHTTPSで通信することを強制する仕組みです。

HTTPSでWEBサービスを提供している場合、 HTTPでアクセスしてきたユーザーをHTTPSにリダイレクトすることがあると思います。
この場合、HTTPでアクセスしようとするたびに毎回1回はHTTP通信を行う必要があります。

そのため、中間者攻撃(MITM)などによって通信の傍受や、改ざんによって意図しないサイトへ
リダイレクトされると言ったセキュリティー上のリスクが存在します。

そこで出てくるのがHSTSになります。

HTTPSで通信した際に、サーバーがレスポンスにStrict-Transport-Securityを設定することで、それ以後、HTTPで通信しようとても、ブラウザが自動的にHTTPSで通信を行うようになります。

これによって初回アクセス以降はHTTPS通信を行うため、中間者攻撃による傍受、改ざんのリスクが大幅に減少します。

2. HSTSプリロードリストとは

HSTSだけでは初回の1回はHTTPで通信を行う可能性があるため、依然リスクが残っています。
それを解決するのが HSTSプリロードリストになります。

HSTSプリロードリストとはGoogleが推進、管理している、HSTS対応サイトをリスト化したものです。
HSTS Preload List Submissionで登録することができます。

WEBブラウザは、WEBサイトが事前にHSTSプリロードリストに登録されているかを確認し、登録されている場合は常にHTTPSで通信を行うようになります。

これによってHTTP通信を制限し、 HTTPSによるセキュアな通信に限定することができます。

3. 後書き

最後までお読みいただいてありがとうございます。
わかりづらい点やお気づきの点などありましたら、
気軽にコメントやtwitterでご連絡いただけるとありがたいです。

GitHubで編集を提案

Discussion