HTTP Strict Transport Security(HSTS)


HTTP Strict Transport Security(HSTS)は、HTTPの代わりにHTTPを用いて通信を行うように
Webサイトからブラウザに伝達するためのセキュリティ機能です。

HSTSを使うとHTTPでアクセスしてHTTPSへリダイレクトするまでに悪意のあるサイトへ誘導する中間攻撃を防ぐために、ブラウザでHTTPSに置き換えてアクセスを試みます。

🗽 事例

空港の無料Wi-Fiのアクセスポイントがハッカーの管理化にある場合、HTTPリクエストが傍受され、偽サイトにリダイレクトします。
しかしWebサイトがStrict Transport Securityを利用していると、一度サイトにアクセスするとブラウザがHTTPSのみ用いるようになり、
このような中間攻撃を防ぐことができます。

🎂 HSTSの有効化

HSTSを有効化するには、HTTPSでアクセスを受けた際にHTTPレスポンスヘッダにStrict-Transport-Secuirtyを含めてください。

Strict-Transport-Secuirty: max-age=expireTime[; includeSubDomains] [; preload]
  • max-age : HTTPSだけで接続することをブラウザが記憶する期間
  • includeSubDomains : このオプションをつけるとサブドメインでも同様に機能します。任意です
  • preload :「Googleが実施しているサービス」を有効にするための設定です。任意です

🐰 ブラウザでの取扱

ブラウザがHTTPSでアクセスしたときに、サーバからStrict-Transport-Secuirtyヘッダを応答すると、ブラウザはその情報を記録します。
アクセスするたびに、max-ageを更新することで失効を防ぐことができます。max-age=0にするとそのHTTPでアクセスします。

🐝 参考リンク

📚 おすすめの書籍