SSL /の失効状況を確認するための現在のブラウザプログラムの詳細TLS クロスブラウザテストを含む証明書。
概要
SSL /の失効ステータスの確認TLS によって提示された証明書 HTTPS Webサイトは、Webセキュリティの継続的な問題です。 サーバーが使用するように構成されていない限り OCSP Stapling、Webブラウザによるオンライン失効チェックは遅く、プライバシーを侵害します。 オンラインOCSPクエリは頻繁に失敗し、一部の状況(キャプティブポータルなど)では不可能であるため、ブラウザは通常、「ソフトフェイル」モードでOCSPチェックを実装し、断固とした攻撃者を阻止するのに効果がありません。 (この問題のより完全な履歴については、SSL.comの記事をお読みください。 ページ読み込みの最適化:OCSPステープリング).
これらの理由により、Webブラウザーは、オンライン失効チェックの必要性を削減または排除するためのさまざまなソリューションを実装しています。 正確な詳細はプロバイダーによって異なりますが、これらのソリューションには通常、失効した証明書のリストを認証局(CA)から取得し、それらをブラウザーにプッシュすることが含まれます。
この記事では、主要なデスクトップブラウザで採用されている検証チェック戦略の概要を説明します(クロム, Firefoxの, Safari, エッジ(Edge))、これらのブラウザの応答をいくつかのサンプルと比較します 取り消された証明書 SSL.comによってホストされています。
Google Chrome
Chromeは CRLSセット 失効チェック用。 CRLSetは、ソフトウェア更新としてブラウザーにプッシュされる、取り消された証明書のリストです。 による Chromium ProjectsのWebサイト、GoogleがCRLSetsを生成するプロセスは独自仕様ですが、
CRLSets…は主に、緊急時にChromeが証明書をすばやくブロックできる手段です。 二次機能として、緊急でない失効をいくつか含めることもできます。 後者の失効は、CAによって発行されたCRLをクロールすることによって取得されます。
上記のステートメントは、少なくとも 一部 優先度の低い失効したエンドエンティティ証明書は最終的にCRLSetsになる可能性がありますが、それらは二次的な考慮事項です。
Chromeのインスタンスに現在インストールされているCRLSetのバージョンを確認するには、 chrome://components/
:
opera://components
。 指摘したように 以下、MicrosoftのEdgeブラウザの現在のバージョンもChromiumに基づいており、CRLSetsを使用しています。現在、オンライン証明書の有効性クエリを実行するようにChromeを直接構成することはできません。 ただし、オペレーティングシステムによっては、これらのチェックはOSで使用される証明書ライブラリによって実行される場合があります。 (見られるように 以下 限られたブラウザテストの結果では、同じバージョン番号とCRLSetを使用したChromeのインストールは、実際にはWindowsとmacOSでXNUMXつの失効した証明書に異なる応答をすることがわかりました。)
Mozilla Firefox
Googleと同様に、Mozillaは、失効した証明書の中央リストを維持します。 ワンCRL。 OneCRLは、MozillaのルートプログラムでCAによって取り消された中間証明書のリストであり、アプリケーションの更新でFirefoxユーザーにプッシュされます。 エンドエンティティ証明書に関しては、Mozillaの 失効計画 「将来、最初の実装が機能するようになると、EE証明書をOneCRLでカバーすることを検討する可能性があります。
OneCRLはJSONオブジェクトとしてダウンロードできます (茶事の話はこちらをチェック)、またはWebページとして表示 crt.sh.
Chromeとは異なり、Firefoxのデフォルト設定もOCSPレスポンダーに照会してSSL /の有効性を確認します。TLS 証明書。 (この設定は、Firefoxのセキュリティ設定で変更できます。)
ただし、OCSPクエリの失敗は非常に一般的であるため、Firefox(他のブラウザーと同様)は「ソフト失敗」ポリシーを実装しています。 必要に応じて、次の場所に移動して、厳密なOCSPチェックを要求できます。 about:config
と切り替え security.OCSP.require
〜へ true
.
アップルのSafari
Appleの現在の失効への取り組みは、2017年のWWDC講演で、Bailey Basileによって取り上げられています。 アプリと進化するネットワークセキュリティ標準。 Appleは、デバイスで信頼されているCAから証明書の失効情報を収集し、すべてをXNUMXつのバンドルに集約します。これは、Appleのクライアントソフトウェアによって定期的に取得されます(まだおなじみの計画に似ていますか?)。
クライアントアプリケーションは、Appleのリストに示されている証明書を検出すると、OCSPチェックを実行して、証明書が実際に取り消されていることを確認します(サーバーが定型のOCSP応答を提供しない場合)。 オンラインOCSPチェックは、Appleがすでに失効していると考えている証明書の場合にのみ行われることに注意してください。 Appleから取得したバンドルにリストされていない証明書はチェックされません。
Appleの失効リストとそれを解析するためのコードへのリンクが利用可能です (茶事の話はこちらをチェック).
Microsoft Edge
Windowsは、失効した、またはブラックリストに登録された証明書のリストを、 disallowedcert.stl
。 この ブログエントリー PowerShellを使用してファイルの内容をダンプする方法について説明します。 crt.sh 特定の証明書がにリストされているかどうかに関する情報も提供します disallowedcert.stl
.
Firefoxと同様に、Windowsはデフォルトで証明書の失効をチェックするように設定されています。 この設定は、で表示および変更できます。 インターネットのプロパティ コントロールパネル:
ただし、Chromeなどの現在の(Chromiumベースの)バージョンのEdgeは、失効チェックをCRLSetsに依存しており、テストから表示されます。 以下 インターネットプロパティの失効チェック設定から独立していること。 ((ご注意: 2019年XNUMX月に行われたこれらのテストの以前のバージョンでは、InternetExplorerとChromium以前のバージョンのEdge した インターネットのプロパティでこれらの設定に従ってください。)
ブラウザ間のバリエーション
SSL.comは、取り消された証明書のサンプルをホストするWebサーバーのグループを維持しているため、さまざまなデスクトップブラウザーに対してテストすることにしました。この小規模で、それほど科学的ではないテストは、23年2020月XNUMX日に実行されました。使用したブラウザーは次のとおりです。
- Chrome 88.0.4324.182、CRLSetバージョン6444(macOS 10.15.7)
- Chrome 88.0.4324.182、CRLSetバージョン6444(Windows 10 Pro)
- Edge 88.0.705.74、CRLSetバージョン6444(Windows 10 Enterprise)
- Firefox 86.0 –(macOS 10.15.7)でのOCSPクエリ
- Firefox 86.0 – OCSPクエリがオフ(macOS 10.15.7)
- Safari 14.0.3(macOS 10.15.1)
さらに、インターネットのプロパティコントロールパネルでオンライン失効チェックを無効にしてWindowsでChromeとEdgeをテストし、(Chrome、Firefox、およびEdgeの場合)関連する証明書が特定のブラウザープログラムで失効したものとしてリストされているかどうかをチェックしました。 crt.sh.
Chrome(macOS) | Chrome(Windows) | エッジ(Windows) | Firefox(Mac)(OCSPオン) | Firefox(Mac)(OCSPオフ) | Safari(Mac) | |
---|---|---|---|---|---|---|
取り消されました-rsa-dv.ssl.com | 取り消されました | 取り消されていない | 取り消されていない | 取り消されました | 取り消されていない | 取り消されました |
取り消されました-rsa-ev.ssl.com | 取り消されました | 取り消されました | 取り消されました | 取り消されました | 取り消されていない | 取り消されました |
取り消された-ecc-dv.ssl.com | 取り消されました | 取り消されていない | 取り消されていない | 取り消されました | 取り消されていない | 取り消されました |
取り消されました-ecc-ev.ssl.com | 取り消されました | 取り消されました | 取り消されました | 取り消されました | 取り消されていない | 取り消されました |
結果の議論
Chrome: Windowsでは、Chromeは取り消された証明書のうちXNUMXつを誤って表示していました(取り消されました-rsa-dv.ssl.com と 取り消された-ecc-dv.ssl.com)有効であり、その他は無効です。 OSで検証チェックを無効にしても、この応答は変更されませんでした。 興味深いことに、XNUMXつの証明書はいずれも、CRLSetで取り消されたものとして表示されていませんでした。 crt.sh テストの時点で、Chromeの失効確認プロセスに関するさらなる質問を示唆しています。 macOSでは、ChromeはXNUMXつの証明書すべてを失効として正しく表示し、プラットフォームの違いによるChromeの動作の違いを示していました。
エッジ: Edgeの現在の(Chromiumベースの)バージョンはChromeをミラーリングして表示しています 取り消されました-rsa-dv.ssl.com と 取り消された-ecc-dv.ssl.com 有効なものとして。 Chromeと同様に、Edgeは、OSで検証チェックが有効になっているかどうかに関係なく同じ結果を示しました。 にリストされているように、XNUMXつの証明書のいずれも表示されませんでした disallowedcert.stl
on crt.sh.
Firefox: OneCRLが中間証明書に焦点を当てていることから予想されるように、Firefoxは、ブラウザーの設定でOCSPクエリが有効になっていると、XNUMXつの証明書すべてが取り消されたと認識しましたが、OCSPクエリが無効になっている場合はXNUMXつすべてを有効として受け入れました。 ((ご注意: 取り消されたこれらXNUMXつのエンドエンティティ証明書はすべて、取り消されていない有効な中間体から発行されたものです。)Chromeと同様に、 crt.sh OneCRLで取り消された証明書は表示されません。
Safari: macOSのSafariは、XNUMXつの証明書すべてが取り消されていると正しく認識しました。 crt.sh はAppleの失効情報を表示しません。また、これらの特定の証明書がAppleによって失効したものとしてリストされているかどうかを確認しませんでした。
まとめ
結果は、失効がデスクトップWebブラウザーにとって依然として問題のある問題であることを示しているようです(モバイルデバイスはまったく異なる世界を表していますが、それは別の記事のトピックです)。 Firefoxで失効した証明書を認識するために(低速で安全でない)オンラインOCSPチェックを有効にする必要がありましたが、ChromeとEdgeは、OSで失効チェックが有効になっているかどうかにかかわらず、WindowsでXNUMXつの失効した証明書を認識できませんでした。
Webサイトの所有者にとって、さまざまなブラウザプログラムが、ルート証明書や中間CA証明書の失効などの優先度の高い/緊急事態に焦点を合わせていること、そして園芸品種のエンドエンティティ証明書の失効は、気付かれずに通過する可能性が高いと想定するのが賢明なようです。無期限。 このため、実装 OCSPステープルと必須のステープル エンドエンティティ証明書の失効に関する正確な情報をエンドユーザーが確実に受信するための最もプライベートで安全かつ効果的な方法のようです。
SSL.comは多種多様な SSL /TLS サーバー証明書 HTTPSWebサイトの場合。