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でアクセスします。