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

HSTS とは?

💡 「このサイトには必ずHTTPSでアクセスして」とブラウザに覚えさせる仕組み
📌 このページのポイント
HSTS(HTTP Strict Transport Security)の仕組み HSTSなし(危険) ブラウザ http:// 平文で通信 盗聴リスク リダイレクト https:// HSTSあり(安全) ブラウザ HSTS記憶済み 自動でhttps://に変換 最初からHTTPS 安全な通信 レスポンスヘッダー例: Strict-Transport-Security: max-age=31536000; includeSubDomains
HSTS:ブラウザにHTTPS接続を強制する仕組み
ひよこ ひよこ

HTTPSリダイレクトするだけじゃダメなの?

ペンギン先生 ペンギン先生

HTTPからHTTPSへのリダイレクトは大事だけど、最初の1回はHTTPでアクセスするよね。この最初のHTTP通信が中間者攻撃の隙になるんだ。HSTSを設定すると、2回目以降はブラウザが最初からHTTPSでアクセスするようになるから、HTTPの通信自体が発生しなくなるよ。

ひよこ ひよこ

SSLストリッピング攻撃って何?

ペンギン先生 ペンギン先生

中間者がユーザーとサーバの間に入って、ユーザーにはHTTPで通信しつつ、サーバにはHTTPSで通信する攻撃だよ。ユーザーはHTTPで通信していることに気づかず、通信内容が盗聴されてしまうんだ。HSTSがあれば、ブラウザHTTP通信を拒否するからこの攻撃を防げるよ。

ひよこ ひよこ

preloadって何?

ペンギン先生 ペンギン先生

HSTSは最初のアクセスでヘッダを受け取る必要があるよね。preloadを設定してHSTS Preload Listに登録すると、ブラウザに最初からHTTPS必須のサイトとして組み込まれるんだ。初回アクセスからHTTPS強制になるから、最も安全な方法だよ。

ひよこ ひよこ

HSTSの設定で注意することは?

ペンギン先生 ペンギン先生

max-ageの値を短くし過ぎないこと(最低でも1年=31536000秒が推奨)、HTTPSの証明書管理を確実にすること。HSTSを設定したのに証明書が切れると、ブラウザHTTPSを強制するけど接続できないからサイトに全くアクセスできなくなるんだ。preloadの登録を解除するのにも時間がかかるから、慎重に設定しようね。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「HSTS」って出てきたら「ブラウザHTTPS接続を強制するセキュリティヘッダだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「HTTP Strict Transport Security」 = HTTP厳格トランスポートセキュリティ
💬 「厳格に(Strict)」安全な通信(Transport Security)を使うよう強制する仕組みだよ
← 用語集にもどる