WebブラウザはSSL証明書をキャッシュしますか?


26

WebブラウザはSSLサーバー証明書をキャッシュしますか?たとえば、WebサーバーでSSL証明書を変更した場合、すべてのWebブラウザーはSSLを介して接続するときに新しい証明書を取得しますか、または古い証明書を持っている可能性はありますか?

SSL証明書の有効期限が切れ、Webサーバー上の新しい証明書に置き換えられるシナリオを考えています。


私はブラウザが証明書の日付をチェックして、新しいものを取得する必要があるかどうかを確認すると仮定します。
-soandos

ここを見てimperialviolet.org/2011/05/04/pinning.html「ピン留め証明書」について、元に関連しているwhis HSTSの主導でdev.chromium.org/sts
Shadok

1
2019年の時点で、私のクローム75は、キャッシングのSSL証明書である
ファビアンThommen

回答:


10

さて、RedGrittyBrickの答えは正しいですが、実際には質問に答えていません。質問は、ブラウザがそれを行う場合は、ない彼らは場合、だったはずまたはそれを行う必要があります。

私が聞いたことから、MSIEとChromeの両方は実際にキャッシュ証明書を実行し、古いバージョンが有効である限り新しいバージョンを取得してもそれらを置き換えません。なぜ彼らがこれを行うのかは、セキュリティを低下させるため、私には理解できません。


現在受け入れられている答えはかなり明確です。それは具体的には、ことを示していない、ブラウザが証明書をキャッシュしません。風景が変わったと指摘すると、Chromeがよく文書化されている理由は、それらの理由にリンクしていただければ幸いです。証明書はまだ有効であるため、意味をなさないセキュリティは「低下」しません。
ラムハウンド

3
古いSHA-1キーはまだ有効であるため、古いSHA-1キーを新しいキーに置き換えることはできず、Chromeは新しいキーを無視します。したがって、より高いセキュリティ標準への切り替えを強制する方法はありません。したがって、それをより高くプッシュできないようにすることにより、相対的な意味で「低く」なります。インフレがあなたのお金の指定値を下げるのではなく、実際の市場価値を下げるように。
tuexss

5
+1 StartSSLがSHA1 / SHA2チェーンを組み合わせた大失敗の後、Windows上のChromeが中間証明書をキャッシュしていることは明らかです。Chromeは、サーバーから送信された新しい中間証明書を無視します。ただし、キャッシュがサーバー証明書のIDまたは中間証明書のIDによってキー設定されるかどうか、およびそのIDを正確に構成するものは明確ではありません。
ロバートヴァザン

3
今日問題になりました。chromeとfirefoxの両方が、通常のウィンドウ(古い証明書)とシークレットモード(正しいもの)で異なる証明書を表示します。もちろん、curlやopensslなどのコマンドラインユーティリティは、正しい証明書を報告します。ブラウザーのキャッシュ(ctrl + shift + del)をクリアすることで修正されました-Chromeの場合は「Cookieおよびその他のサイトデータ」、Firefoxの場合は「オフラインWebサイトデータ」。
アニレック

1
少なくとも現在のバージョンのOSX上のFirefox(66.0)は、かなり強力にキャッシュを保持しているようです。昨日、WebサイトのTLS証明書を更新しました。CLI opensslとChromiumの両方で新しい証明書が表示されます。Firefoxは、キャッシュを無効にしてリロードし、すべてのキャッシュとオフラインデータをクリアし、ブラウザを再起動しても、古いものを表示します。
Tad Lispy

20

いいえ。IBMSSLの概要をご覧ください

  1. SSLクライアントは、SSLバージョンなどの暗号化情報と、クライアントの優先順にクライアントがサポートするCipherSuitesをリストする「client hello」メッセージを送信します。メッセージには、後続の計算で使用されるランダムなバイト文字列も含まれます。SSLプロトコルでは、「クライアントhello」にクライアントがサポートするデータ圧縮方法を含めることができますが、現在のSSL実装には通常、この規定は含まれていません。

  2. SSLサーバーは、SSLクライアントが提供するリストからサーバーが選択したCipherSuite、セッションID、および別のランダムなバイト文字列を含む「server hello」メッセージで応答します。SSLサーバーは、デジタル証明書も送信します。サーバーがクライアント認証にデジタル証明書を必要とする場合、サーバーは、サポートされている証明書の種類と受け入れ可能な認証機関(CA)の識別名のリストを含む「クライアント証明書要求」を送信します。

  3. SSLクライアントは、SSLサーバーのデジタル証明書のデジタル署名を検証し、サーバーが選択したCipherSuiteが受け入れ可能であることを確認します。

マイクロソフトの要約も同様です。TLSハンドシェイクもこの点で似ています。

ステップ2では、クライアントが「サーバー証明書を送信することを気にせず、キャッシュを使用します」と言う方法はないようです。

証明書には、クライアント、サーバー、CAのいくつかのタイプがあることに注意してください。これらのいくつかはキャッシュされます。


元の質問を修正して、それがサーバー証明書であることを明確にしました。
ロリンホッホ

これは真実ではありません。SSLの仕組みの概要からキャッシュがないことを前提としてキャッシュがないと仮定するのは、かなり悪い正当化です。youtube.com/watch?v=wMFPe-DwULM
エヴァンキャロル

使用できる唯一のキャッシュは有効性チェック用ですが、これはセキュリティのトレードオフです。
ダニエルB

0

私の入力が何らかの形で役立つかどうかはわかりませんが、ここで私が経験したことがあります。カスタムドメインを備えた紺aのWebサイトがあります。ドメイン名のSSLバインディングを設定する前に、クロームのhttpsでアクセスしようとしました。Chromeは、サイトは完全に理にかなっている(ERR_CERT_COMMON_NAME_INVALID)セキュリティで保護されていないことを教えてくれましたが、証明書をアップロードしてazureでSSLバインディングを設定した後も、同じエラーが発生していました。この段階で、新しいプライベートブラウザウィンドウを開く(または別のブラウザを使用する)とき、httpsは正常に機能していました。

しかし、開いているChromeセッションでは機能しませんでした。SSL状態をクリアしてみましたが、同じ結果になりました。クロムを完全に再起動した後に機能しました。

私はおそらく何かにだまされましたが、証明書がキ​​ャッシュされているように見えました...


このエラーは、CNにあるものとは異なるURIでサイトにアクセスしたことを意味します。バインディングをセットアップした後、実際にURIを変更してChromeのサイトにアクセスしましたか?
セス

いいえ、その時に変更したのはバインディングだけでした。最初にhttpsを照会したとき、デフォルトのazure ssl証明書を使用して提供されていましたが、Azureで正しい証明書を使用してバインディングを変更した後もこの1つを提供していました。
エティエンヌ

ドメインSSLバインディングを構成したと述べたように、それはあなたがドメインを使用してサーバーにアクセスすることを意味しますか?このエラーは、使用したURLと証明書のURLに違いがあることを示しています。それが私が意味したことです。さらに、HSTSなどについて考えると、実際のサーバー構成が非常に重要になる可能性があります。
セス

1
ステップ1:WebサイトをAzureに公開しました。この段階では、デフォルトのAzure URLとデフォルトの証明書の両方があります。ステップ2:Webアプリのカスタムドメインをセットアップし、mysite.comがサイトを正しく指すようになりました。mysite.comのSSL証明書は、この段階では構成されていません。ステップ3:この時点で、サイトをhttpsしようとすると、証明書が一致しないというセキュリティエラーが表示されます(そして、それは完全に理にかなっています)。 Chromeからセキュリティ警告が表示されます。他のブラウザでは、またはプライベートナビゲーションを開いても発生しません。
エティエンヌ

1
ステップ5:Chromeを再起動すると、正しいSSL証明書を使用してWebサイトが提供されるようになりました。したがって、私の結論は、証明書のキャッシュの問題が実際にあったということです
エティエンヌ

-1

以下のような攻撃を検出するために、このようなAのchachingシステムを実装するためにいくつかのブラウザの開発者の計画がありますDiginotarへの攻撃 2011年には。

しかし、現時点では、そのようなシステムは現在のブラウザではアクティブになっていません。したがって、サーバー証明書を更新するときにこの状況を考慮する必要はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.