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 の記事をご覧ください。

【翻訳】証明書失効確認の改善: OCSP Must-Staple と Short-lived 証明書

この記事は、2015 年 11 月 23 日付で Mozilla Security Blog に投稿された Improving Revocation: OCSP Must-Staple and Short-lived Certificates(筆者: mgoodwin)の翻訳です。この翻訳は公式なものではありません。詳しくはこちらをご覧ください。

また、2013 年 7 月 29 日付の記事 OCSP Stapling in Firefox(参考: 日本語訳)ならびに 2015 年 3 月 3 日付の記事 Revoking Intermediate Certificates: Introducing OneCRL(参考: 日本語訳)も合わせてご覧ください。


Firefox において証明書失効の確認プロトコルをより良く実装するため、昨年に私たちは長期的な計画を立案しました。今週の時点で、この計画における主要な要素はほぼ達成できています。今年の初めに(参考:日本語訳) OneCRL を実装したのち、先日には OCSP Must-Staple と short-lived 証明書の実装を行いました。これらの変更により、Web サイトの管理者が証明書の失効確認を素早く安全に行えるようになります。

願わくば、ブラウザが証明書を検証したいときにオンライン確認(OCSP など)が行えて、検証に失敗したら証明書を拒否できるのが理想かもしれません。しかしながらこの確認作業は速度が遅かったり、信頼性に欠けたりすることがあります。この確認作業のおよそ 15%タイムアウトしており、仮に成功した場合でもおよそ 350ms の時間を要しています。一般的なブラウザでは、これらの問題と失効確認の利益とにおけるバランスを考慮してソフトフェールの立場をとっています。

失効確認がより強固に行われるようにするため、私たちは short-lived 証明書と OCSP Must-Staple のサポートを開始しました。これにより、厳密な失効確認を行うかどうかを Web サイトが選択できるようになります。Firefox 41 では、short-lived 証明書(証明書の有効期間が "security.pki.cert_short_lifetime_in_days" の値よりも短い証明書)に対して、OCSP の問い合わせを「リアルタイムに」行うことはしません。その代わりに Firefox は、証明書が有効なものであると仮定します。この値に関するデフォルト値はまだ決まっていないため、現時点ではユーザ自身で設定する必要があります。私たちは証明書の有効期限をテレメトリで収集していますが、CA/Browser Forum の Baseline Requirements で示される OCSP レスポンスの最大有効期間に近い値でしきい値を設定することを考えています。

OCSP Must-Staple は、最近に定義された TLS 拡張機能 を利用しています。証明書に対して認証局(CA)がこの拡張機能を付加していた場合は、(サーバから送られてきた)TLS ハンドシェイク内に証明書の失効状況を知らせる OCSP レスポンスが含まれているかブラウザが確認します。もし OCSP レスポンスが含まれていなければ、 Firefox は通信を遮断してエラーを表示します(ユーザがこのエラーを無視して接続し直すことはできません)。この機能は Firefox 45 で実装され、現在の予定では 2016 年 3 月のリリースを予定しています。

【翻訳】中間証明書の失効確認: OneCRL の導入

この記事は、2015 年 3 月 3 日付で Mozilla Security Blog に投稿された Revoking Intermediate Certificates: Introducing OneCRL(筆者: mgoodwin)の翻訳です。この翻訳は公式なものではありません。詳しくはこちらをご覧ください。

また、2013 年 7 月 29 日付の記事 OCSP Stapling in Firefox(参考: 日本語訳)ならびに 2015 年 11 月 23 日付の記事 Improving Revocation: OCSP Must-Staple and Short-lived Certificates(参考: 日本語訳)も合わせてご覧ください。


Firefox 37 以降のユーザは、OneCRL という新しい機能で保護されることになりました。この OneCRL とは、失効済みの中間証明書のリストをブラウザに通知する新しい仕組みです。

OCSP を用いた証明書の失効確認ではユーザに利益があるとはいえません。失効確認をオンラインで行う場合、フェールオープンなシステムを使用するか、またはパフォーマンスを犠牲にしてより厳密な検証を行う(EV証明書の場合)かのどちらかとなります。OCSP stapling を用いると、失効確認をリアルタイムに行う必要がなくなりますが、まだ現在では TLS 通信のおよそ 9% しか OCSP stapling を使用していません。

OneCRL は失効済みの証明書リストを一元管理してブラウザに送るため、失効確認の速度を短縮することができます。現時点の実装では、証明書の失効を要する重大なインシデントが発生した場合、問題に対処するためのアップデートを Firefox にリリースします。この方法だと、ユーザの元にセキュリティアップデートが届くまでに時間がかかり、更新の際にブラウザを再起動する必要もあり、問題の対処に時間がかかってしまいます。また、アップデートの作成やユーザによるダウンロードの手間など、関連するコストは他にもあります。

既に FirefoxBlocklisting という、ユーザに支障を与える可能性があるコンテンツを定期的に確認する仕組みを持っています。この確認対象には、インストールされている不正なアドオンやプラグイン、バグを抱えたグラフィックスドライバが含まれています。OneCRL はこの Blocklisting を拡張し、失効させる証明書を確認対象に追加します。このようにすることで、ユーザがブラウザを更新したり再起動したりせずに、最新の失効情報を得ることができるのです。

OneCRL における主な利点のもう一つはスピードです。OneCRL がカバーする証明書であれば、OCSP による検証をリアルタイムに行う必要がなくなるため、失効確認のためのレイテンシをなくすことができます。明確な OCSP レスポンスを必要とする EV 証明書にとっては特に重要です。

現段階の OnceCRL は、ブロックリストのサイズを制限するため、中間 CA 証明書のみをカバーしていま。Mozilla 製品のルート証明書を署名している認証局(CA)が中間証明書の失効を Mozilla に通知 したタイミングで OneCRL が更新されます。

今日ではまだ初期バージョンですが、この OneCRL は重要な一歩となります。証明書の失効確認が、特に EV 証明書の確認が素早く行われることになります。しかし、まだこれで終わりではありません。この恩恵をより多くの人が享受できるように OneCRL を改善し続け、失効情報がより素早くブラウザに伝わるように情報収集の自動化に取り組んでまいります。