【えいちえすてぃーえす】

HSTS とは?

最終更新:
💡 HTTPSで接続する方針を記憶させる

ブラウザーへ、そのサイトにはHTTPSで接続するよう記憶させる仕組み。リダイレクトとの違い、初回接続とpreloadの条件を解説します。

📌 このページのポイント
HSTS:ブラウザーがHTTPSの方針を記憶HTTPSの応答で受け取るStrict-Transport-Securitymax-ageで期間を指定方針を知るブラウザーHTTPで接続する前に置き換えhttp://…https://…通常、方針を知らない初回接続は別に考えるpreloadは申請とブラウザーへの反映が必要
有効なHTTPSの応答を受けた後の流れです。記憶前のHTTP接続を保護する図ではなく、preloadには別の条件があります。
ひよこ ひよこ
HSTSは、何をしてくれるの?
ペンギン先生 ペンギン先生
ブラウザーに、このサイトにはHTTPSで接続するという方針を記憶させるよ。記憶している間は、HTTPのURLを開こうとしても、接続前にHTTPSへ置き換えるんだ。
ひよこ ひよこ
HTTPSへのリダイレクトと同じ?
ペンギン先生 ペンギン先生
リダイレクトはHTTPでサーバーへ接続した後に、HTTPSへ移る案内を受け取る。HSTSを知っているブラウザーは、そのHTTP接続をする前に切り替える。この違いが大切だよ。
ひよこ ひよこ
初めて訪れたときも効く?
ペンギン先生 ペンギン先生
通常は、有効なHTTPSの応答でヘッダーを受け取ってから効くよ。方針をまだ知らずHTTPで初回接続する場合の弱点は残る。単に「2回目から」と決まるのではなく、ブラウザーが方針を知っているかで変わるんだ。
ひよこ ひよこ
どのくらい覚えているの?
ペンギン先生 ペンギン先生
max-ageで秒数を指定する。includeSubDomainsを付けると、そのドメインのサブドメインにも適用されるよ。HTTPだけで動くサブドメインがないかなど、範囲を確認する必要があるんだ。
ひよこ ひよこ
設定すれば、どんな攻撃も防げる?
ペンギン先生 ペンギン先生
防げる範囲は限定されるよ。HTTPへの切り下げを防ぐ助けになるが、サイトの内容や認証をすべて安全にするものではない。証明書の更新も必要で、証明書エラーが起きると利用者が警告を無視して進むこともできなくなるんだ。
もっと詳しく知りたい人へ

preloadを書けば、その場で初回接続も保護される?

ヘッダーに書くだけでは事前登録されず、条件を満たす申請とブラウザーへのリスト配布が必要です。公式サービスは現在、HSTSを推奨する一方、preloadを一般には推奨していません。登録・解除にも時間がかかるため、必要性とサブドメインを含む長期の運用への影響を確認します。

HTTPの応答でHSTSを送ってもよい?

ブラウザーは安全でないHTTP接続で受け取ったHSTSヘッダーを無視します。方針は有効なHTTPS接続で伝えます。期限やサブドメインの設定を変更するときも、既に記憶された方針の扱いを確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「HSTS」って出てきたら「ブラウザーにHTTPSで接続する方針を記憶させる仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「HTTP Strict Transport Security」 = HTTPの厳格な通信保護
💬 Strict-Transport-Securityという応答ヘッダーで、以後の接続にHTTPSを使う方針を伝えます。HSTS自体が通信を暗号化するわけではありません。

参考資料

← 用語集にもどる