WebブラウザはSSLサーバー証明書をキャッシュしますか?たとえば、WebサーバーでSSL証明書を変更した場合、すべてのWebブラウザーはSSLを介して接続するときに新しい証明書を取得しますか、または古い証明書を持っている可能性はありますか?
SSL証明書の有効期限が切れ、Webサーバー上の新しい証明書に置き換えられるシナリオを考えています。
WebブラウザはSSLサーバー証明書をキャッシュしますか?たとえば、WebサーバーでSSL証明書を変更した場合、すべてのWebブラウザーはSSLを介して接続するときに新しい証明書を取得しますか、または古い証明書を持っている可能性はありますか?
SSL証明書の有効期限が切れ、Webサーバー上の新しい証明書に置き換えられるシナリオを考えています。
回答:
さて、RedGrittyBrickの答えは正しいですが、実際には質問に答えていません。質問は、ブラウザがそれを行う場合は、ない彼らは場合、だったはずまたはそれを行う必要があります。
私が聞いたことから、MSIEとChromeの両方は実際にキャッシュ証明書を実行し、古いバージョンが有効である限り新しいバージョンを取得してもそれらを置き換えません。なぜ彼らがこれを行うのかは、セキュリティを低下させるため、私には理解できません。
openssl
とChromiumの両方で新しい証明書が表示されます。Firefoxは、キャッシュを無効にしてリロードし、すべてのキャッシュとオフラインデータをクリアし、ブラウザを再起動しても、古いものを表示します。
いいえ。IBMSSLの概要をご覧ください
SSLクライアントは、SSLバージョンなどの暗号化情報と、クライアントの優先順にクライアントがサポートするCipherSuitesをリストする「client hello」メッセージを送信します。メッセージには、後続の計算で使用されるランダムなバイト文字列も含まれます。SSLプロトコルでは、「クライアントhello」にクライアントがサポートするデータ圧縮方法を含めることができますが、現在のSSL実装には通常、この規定は含まれていません。
SSLサーバーは、SSLクライアントが提供するリストからサーバーが選択したCipherSuite、セッションID、および別のランダムなバイト文字列を含む「server hello」メッセージで応答します。SSLサーバーは、デジタル証明書も送信します。サーバーがクライアント認証にデジタル証明書を必要とする場合、サーバーは、サポートされている証明書の種類と受け入れ可能な認証機関(CA)の識別名のリストを含む「クライアント証明書要求」を送信します。
SSLクライアントは、SSLサーバーのデジタル証明書のデジタル署名を検証し、サーバーが選択したCipherSuiteが受け入れ可能であることを確認します。
…
マイクロソフトの要約も同様です。TLSハンドシェイクもこの点で似ています。
ステップ2では、クライアントが「サーバー証明書を送信することを気にせず、キャッシュを使用します」と言う方法はないようです。
証明書には、クライアント、サーバー、CAのいくつかのタイプがあることに注意してください。これらのいくつかはキャッシュされます。
私の入力が何らかの形で役立つかどうかはわかりませんが、ここで私が経験したことがあります。カスタムドメインを備えた紺aのWebサイトがあります。ドメイン名のSSLバインディングを設定する前に、クロームのhttpsでアクセスしようとしました。Chromeは、サイトは完全に理にかなっている(ERR_CERT_COMMON_NAME_INVALID)セキュリティで保護されていないことを教えてくれましたが、証明書をアップロードしてazureでSSLバインディングを設定した後も、同じエラーが発生していました。この段階で、新しいプライベートブラウザウィンドウを開く(または別のブラウザを使用する)とき、httpsは正常に機能していました。
しかし、開いているChromeセッションでは機能しませんでした。SSL状態をクリアしてみましたが、同じ結果になりました。クロムを完全に再起動した後に機能しました。
私はおそらく何かにだまされましたが、証明書がキャッシュされているように見えました...
以下のような攻撃を検出するために、このようなAのchachingシステムを実装するためにいくつかのブラウザの開発者の計画がありますDiginotarへの攻撃 2011年には。
しかし、現時点では、そのようなシステムは現在のブラウザではアクティブになっていません。したがって、サーバー証明書を更新するときにこの状況を考慮する必要はありません。