Mozilla Security Blog 日本語版

Mozilla Security Blog を日本語に翻訳(非公式)

【翻訳】HTTP Strict Transport Security

この記事は、2012 年 12 月 26 日付で Mozilla Security Blog に投稿された HTTP Strict Transport Security(筆者: mgoodwin)の翻訳です。この翻訳は公式なものではありません。詳しくはこちらをご覧ください。


SSL を導入しなかったり、誤った利用をしたりすると、ユーザの安全とプライバシーが危険にさらされてしまいます。著名な Web サイトは近頃、機密性の高いデータ(ログイン情報など)の処理に限らず、セッション全体に対して SSL 通信を要求することが増えてきており、これはとても良い傾向です。

しかし残念ながら、SSL に関連する攻撃手法は数多く存在します。これらの中で最も有名なのは SSL-Stripping であり、ブラウザとサーバの間に能動的な中間者攻撃を仕掛け、HTTPS 通信が行われるべきところを暗号化のない HTTP 通信にダウングレードさせることが可能です。

HSTS(HTTP Strict Transport Security)は、こういった攻撃の実行をより難しくさせるために設計されました。HSTS を利用する Web サーバは、一定期間中に行われる通信をすべて HTTPS が適用されるように指定できます。仮に HTTP によるリクエストが作成された場合でも、ブラウザが自動的に HTTPS へアップグレードしてから送信されます。それに加えて、HSTS を有効にした Web サイトの SSL 証明書に対して、通信時の検証に失敗した場合は、リクエストされたドキュメントは読み込まれなくなります。

しかしながらこの保護機能には隙があります。Web サイトに対する一番最初の通信に中間者攻撃を仕掛けられた場合、攻撃者によって暗号化なしの通信へダウングレードされる可能性が依然残っているうえ、ブラウザが HSTS ヘッダを受信できないようにされる可能性もあります。この問題を解決するには、HSTS を利用している著名な Web サイトの一覧を、preload list としてブラウザ内に保持しておく方法があります(Firefox 17 で実装される予定で、現在は Beta 版で搭載されています)。HSTS の preload list に関する詳細は、この話題に関する以前の投稿(参考: 日本語訳)をご覧ください。

HSTS は Firefox 4 からサポートされており、あなたのサイトも HSTS を利用すべき時期が来たと考えています。HSTS の詳細や利用方法については MDN の記事をご覧ください。