HSTS
WebサイトがHTTPSでのアクセスをブラウザに強制する仕組み。HTTPSの応答ヘッダーのStrict-Transport-Securityフィールドで方針を伝え、指定した期間はHTTPのURLもHTTPSへ切り替えて接続させる。
イマシルちゃんの解説
HTTPでサイトを開いてからHTTPSへ転送するだけだと、最初の通信は暗号化されていないんだ。
攻撃者がその転送を邪魔すると、HTTPのまま通信させられることがあるよ。
HSTSは、サイトへの接続をHTTPSに限定するセキュリティの仕組みだよ。
サイトはHTTPSの応答で、これからHTTPSだけを使う期間をブラウザに知らせるんだ。
方針を覚えたブラウザは、HTTPのURLを開いても通信を始める前にHTTPSへ切り替えるよ。
ただし、まだ方針を知らないブラウザの最初のHTTP接続までは守れないんだ。
この解説はわかりやすかったですか?
より深い解説
定義
HSTS(HTTP Strict Transport Security)は、RFC 6797で定められた仕組みである。HTTPSの応答に Strict-Transport-Security ヘッダーを付けると、ブラウザは、指定された期間、そのドメインへのアクセスを自動的にHTTPSに切り替え、証明書のエラーがあるときは、利用者が警告を無視して接続することもできなくする。
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
| 指定 | 意味 |
|---|---|
| max-age | HTTPSを強制する期間(秒)。31536000秒は1年 |
| includeSubDomains | サブドメインにも適用する |
| preload | ブラウザにあらかじめ組み込まれる一覧(HSTSプリロードリスト)への登録を希望する |
防げる攻撃
利用者が http:// でアクセスしたり、HTTPのリンクをたどったりすると、HTTPSへ転送されるまでの最初の通信は暗号化されない。中間者は、ここでHTTPSへの転送を妨げ、利用者とHTTPのまま通信させることができる(SSLストリッピング)。HSTSを使うと、ブラウザが最初からHTTPSで接続するため、この攻撃を防げる。
ただし、初めてアクセスするときは、まだヘッダーを受け取っていないため守られない。プリロードリストに登録すると、初回のアクセスも守られる。
セキュリティに関する主な応答ヘッダー
| ヘッダー | 働き |
|---|---|
| Strict-Transport-Security | 指定した期間、HTTPSでのアクセスを強制する |
| Content-Security-Policy | 読み込んでよいスクリプトや画像などの取得元を制限し、XSSなどの被害を減らす |
| X-Content-Type-Options | nosniff を指定し、ブラウザが Content-Type を無視して内容から種類を推測するのを防ぐ |
| X-Frame-Options | ほかのサイトのフレームに表示させない(クリックジャッキングの対策) |
| X-XSS-Protection | 古いブラウザのXSSフィルタを有効にする(現在は使われない) |
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ