web-dev-qa-db-ja.com

通常のOCSPとOCSPステープルの正確な違いは何ですか?

オンライン証明書ステータスプロトコル( [〜#〜] ocsp [〜#〜] )と OCSP staplingの正確な違いは何ですか? 「...オンライン証明書ステータスプロトコル(OCSP)への代替アプローチ」のように思われますか?

7
Bob Ortiz

OCSPステープリングは、通常のOCSPよりも効率的で、より優れたプライバシーを提供します。

OCSPプロトコルは、証明書がまだ有効であるか、取り消されているかを判別するために使用されます。たとえば、TLSを介してWebサイトに安全に接続したいとします。証明書が失効または期限切れになっていないことを確認するために、ブラウザーは対応する認証局にOCSP要求を発行できます。証明書の有効性について署名された確認を受け取ったら、TLSハンドシェイクを続行します。

このプロセスにはいくつかの欠点があります。CAへの連絡には時間がかかり、ブラウジング体験が遅くなります。また、CAのトラフィック量が増える可能性があり、訪問しているWebサイトをCAに開示します。そうでない場合は確認できないため、OCSPレスポンダーの可用性に常に依存する必要があります。確認の欠如または接続の中止にもかかわらず証明書。これらの理由により、Google Chrome サポートが終了しました 通常のOCSPの場合。

OCSPステープリングは、サーバーに定期的にOCSPクエリを発行させることで、これらの問題を回避します。ユーザーに有効性チェックを実行させる代わりに、WebサーバーはTLSハンドシェイク中にOCSP応答を提示します。応答がCAによって署名され、タイムスタンプが含まれているため、改ざんを防止するため、サーバーがOCSPクエリ自体を実行することはセキュリティ上の問題ではありません。サーバーは応答をキャッシュするので、CAはOCSP要求で溢れることがなくなり、ユーザーとして第三者に連絡して証明書を検証してプライバシーを保護する必要がなくなります。

13
Arminius

@Arminiusの答えに追加するもの:

  • クライアントが開始したOCSPリクエストとOCSPステープリングは、依然として問題を共有しています-応答しないOCSPレスポンダー。クライアントであろうと、認証されているサーバーであろうと、OCSP応答を取得している場合でも、レスポンダは同じです。レスポンダがダウンすると、セキュリティ保証全体がバラバラになります。

有効なOCSP応答がない場合は、2つの方法で処理されます。

  1. ハードフェイル-接続が危険にさらされている可能性があり、ユーザーが警告をクリックして問題のサーバーを閲覧できるようにする必要があることを示す警告がページにブラウザーに表示される場合があります。

  2. ソフトフェイル-ブラウザは(レスポンダから、またはOCSPステープルの場合はサーバーから送信された証明書から)有効なOCSP応答を取得しようとしますが、失敗した場合は接続を続行し、有効なOCSP応答がないことを無視します。

可用性を維持するために、ブラウザーは通常、2番目のアプローチを優先します。

1つの方法が他の方法よりも安全であるとは言いがたいです。 OCSPの定番は、レスポンダーの負荷を減らし、正規の要求によってDOS-dになる可能性を減らします。サーバー側でキャッシュされた応答により、処理速度が大幅に向上し、ブラウザーの負荷が軽減されてOCSPの負荷が増大します。ただし、攻撃者は引き続きOCSPレスポンダーをDDOSし、正規のサーバーでさえ有効なOCSPステープルを取得できない可能性があります。

しかし、OCSP Staplingは、CloudflareのNick Sullivanによるブログの this 短いが素晴らしい投稿で説明されているように、パフォーマンスを大幅に向上させました。応答しないOCSPレスポンダーの問題を回避でき、ocsp応答が常に表示されることを保証する方法を見つけることができる場合、証明書はocsp-must -staple拡張。これは、配置されている場合、ocspの主食がない場合と比較してより強力なセキュリティ保証を意味します。

3
harshc