web-dev-qa-db-ja.com

x.509 CRL:次の更新?

X.509証明書失効リストには、次のリストが発行されることが予想される時期を指定するフィールドが含まれています。私はこのフィールドの重要性を理解しようとしています...証明書が「使用しない」リストに記載されることがあり、これは常に更新する必要があることを知っています。しかし、私は定期的にCRLを更新しているような気もするので、とにかくこのフィールドを持つことの意味は何ですか?固定スケジュールを使用しないのはなぜですか?

6
SwaroopGiwali

2つの異なるセマンティクスがあり、nextUpdateフィールドを使用して次のことを伝えます。

  1. 新しいCRLが利用可能になる日付。これにより、新しいダウンロードに値するようになります(同様に、nextUpdateフィールドで指定された日付の前に、キャッシュされたCRLは最新と見なされます)。
  2. 特定のCRLが廃止されたと見なされるまでの日付。

CRLがオーバーラップし、移行がスムーズになり、ネットワークトラフィックが1日中広がることが期待されます。通常、CAは1時間ごとに新しいCRLを生成します(最新の情報を利用できるようにするため)が、特定のCRLが1日(24時間)有効であることを「許可」します。 CRLは多少大きくなる可能性があるため、ダウンロードにはコストがかかるため、実装では、実用的でない場合は頻繁に実行しないほうがよいでしょう。ただし、各CAには独自のポリシーがあるため、汎用の証明書バリデーターは、特定のCAが使用するスケジュールの種類を事前に知ることができません。証明書とCRLのデータを通じて学習する必要があります。

最初の意味は X.509 が要求するものです。しかし、誰もが第二の意味でそれを使用しています。実際には、X.509の実装(たとえば、WebブラウザでWebサーバーの証明書を検証する場合)は、nextUpdateendOfValidityの日付であるかのように処理します。最近、マイクロソフトはnextPublishという新しい拡張機能を定義しました。これは最初の意味を想定しています(拡張機能は、付録A.1の thisドラフト 、OCSPコンテキスト)。この拡張機能(これまでのところ、標準ではなくMicrosoftに限定されているようです)は、nextUpdateの意味に関して一般的な慣習が理論から逸脱していることを何らかの形で認めています。

8
Thomas Pornin

これは、いくつかの理由で使用されます。

  • HTTPなどのプルベースのサービスからCRLをより最適にフェッチできるため、応答時間ごとにポーリング時間を設定できます。
  • 次の更新時刻以降に表示されるCRLは通常の更新であると見なされ、before次の更新はセキュリティパッチと見なされるため、CRL全体がローカルキャッシュで置き換えられます。
  • 新しいCRLをプッシュする必要なく、証明書の有効期限が切れた後にCRLをトリミングできます。これは、証明書の有効期限が切れた後、最初のregular更新時(つまり、次の更新時)にCRLエントリを自動的に削除することによって行われます。

詳細については、 RFC328 のセクション5.1.2.5を参照してください。

3
Polynomial