インターネットセキュリティは、多くの場合、安全性、機能性、およびユーザーエクスペリエンスの微妙なダンスになります。 代表的な例は、失効した証明書に関してCAから提供された情報をブラウザーに接続するための継続的な闘争です。 このFAQは、この目的で長期間使用されてきた主要なメカニズムを定義しています。 CRL, OCSP, OCSP Stapling & 必需品、そして最近では、 CRライト.
CAが発行した証明書の失効ステータスを公開する最初の試みは、 証明書失効リスト(CRL)。 CRLは、スケジュールされた有効期限が切れる前にCAがこれまでに失効させたすべての証明書の単なるリストです。 これらはCAによって定期的に更新され、ブラウザは各HTTPS接続の前にそれらを確認する必要がありました。 時間の経過とともに、CRLのサイズは大きくなり、各ブラウザがCRLをレビューするタスクも大きくなりました。 大規模な(そして増大する)CRLのダウンロードと解析に必要な時間が長くなるにつれて、ユーザーの遅延も増大しました。 これらの問題を軽減するために、ブラウザとCAは、オンライン証明書ステータスプロトコル(OCSP)を開発および実装しました。
オンライン証明書ステータスプロトコル(OCSP) SSL /の失効ステータスを判断するためにWebブラウザが使用するインターネットプロトコルです。TLS HTTPSWebサイトによって提供される証明書。 SSL /中TLS 証明書は常に有効期限付きで発行されます。証明書が期限切れになる前に取り消される必要がある特定の状況があります(たとえば、関連する秘密鍵が侵害された可能性がある場合)。 したがって、Webサイトの証明書の現在の有効性は、有効期限に関係なく、常にクライアントが確認する必要があります。
最も単純な形式では、OCSPは次のように機能します。
1. WebブラウザーがHTTPS Webサイトから証明書を受信します。
2. Webブラウザーは、証明書を発行した認証局(CA)が運営するサーバーであるOCSPレスポンダーに要求を送信します。
3. ブラウザーへのOCSPレスポンダーの署名付き応答は、証明書が有効であるか、取り消されているかを示します。
残念ながら、OCSPには多くの問題がありました。 多くのOCSP実装は信頼性が十分でなかったため、せっかちなブラウザや他のクライアントソフトウェアにソフトフェイルモードでOCSPチェックを実装するように強いていました。 つまり、応答中にOCSPサーバーに時間内に到達できなかった場合、証明書は有効であると見なされ、HTTPS接続が続行されます。
中間者攻撃では、盗まれた証明書を使用して信頼できるHTTPS接続にアクセスし、すべてのOCSPクエリまたは接続をブロックすることでこれを悪用しました。 これにより、機密情報が悪意のある人物と共有され、ソリューションとしてOCSPステイプルが発生する可能性があります。
証明書失効リスト(CRL)の帯域幅とスケーリングの問題を解決するために最初に導入されましたが、OCSPはそれ自体でいくつかのパフォーマンスとセキュリティの問題をもたらしました。 OCSPステープリング。 OCSPステープリングの場合:
1. Webサーバーは、証明書の署名済みOCSP応答をOCSPレスポンダーに要求して取得します。これは、最大7日間キャッシュできます。
2. サーバーは、キャッシュされたOCSP応答を、証明書と共に(または「ステープル」して)WebブラウザーへのHTTPS応答に含めます。
3. WebサイトがステープルされたOCSP応答なしで盗まれた失効した証明書を提供する潜在的な攻撃を防ぐために、証明書に必須のステープル拡張を使用して証明書を発行し、証明書にOCSPステープルを義務付けることができます。
MITM攻撃者による悪意のある動きに動機付けられて、CAおよびブラウザベンダーは、次のようなSSL証明書の拡張機能を導入しました。 OCSPマストステープル (で定義 RFC 7633、「OCSP Must-Staple」とは呼ばれていません)。
OCSP Must-Stapleでは、証明書にOCSP Staplingが必要です。 ブラウザーがOCSP Staplingなしで証明書と接触すると、拒否されます。 Must-Stapleはダウングレード攻撃の脅威を軽減するだけでなく、CAのOCSPレスポンダーへの不要なトラフィックを減らし、応答性と全体的なOCSPパフォーマンスを向上させます。
CRライト は、取り消されたすべてのSSL /に関する情報を送信する新しく提案された標準です。TLS 直接ブラウザに証明書。 これは、取り消されたCAに関する情報を直接ブラウザーに統合することにより、ブラウザーとCA間のすべての煩わしいプロセスと信頼できない接続を潜在的にカットします。
主な懸念事項は、保存される膨大な量の情報であり、CRLのサイズが大きくなり、増大していること、そしてOCSPプロセスの主要な問題のXNUMXつであることがわかります。 CRLiteはブルームフィルターを使用します 大量のデータを圧縮し、ブラウザでの管理を容易にします。
証明書が新しすぎる場合、つまり、どの更新プログラムにもまだ含まれていないことを意味し、ブラウザはOCSP(ステープルまたはアクティブクエリ)を使用します。