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

🐮 参考リンク

📚 おすすめの書籍

🖥 サーバについて

このブログでは「Cloud Garage」さんのDev Assist Program(開発者向けインスタンス無償提供制度)でお借りしたサーバで技術検証しています。 Dev Assist Programは、開発者や開発コミュニティ、スタートアップ企業の方が1GBメモリのインスタンス3台を1年間無料で借りれる心強い制度です!(有償でも1,480円/月と格安)