web-dev-qa-db-ja.com

あいまいなOCSP応答受け入れ要件

OCSP応答を有効なOCSP応答と見なすには、RFC 2560で言及されている6つの要件があります。

  1. 受信した応答で識別された証明書は、対応する要求で識別された証明書に対応します。
  2. 応答の署名は有効です。
  3. 署名者のIDは、要求の意図された受信者と一致します。
  4. 署名者は現在、応答に署名することを許可されています。
  5. 示されているステータスが正しいことがわかっている時刻(thisUpdate)は、十分に新しいものです。
  6. 利用可能な場合、証明書のステータス(nextUpdate)に関する新しい情報が利用可能になるまでの時間は、現在の時間よりも長くなります。

これらの要件の曖昧さは次のとおりです。

  1. なぜ3番をチェックする必要があるのですか? Comodo CAにOCSPリクエストを送信し、次にIden Trust CAから応答を受信することは可能ですか?つまり、コンピューターの信頼されたCAの1つによって応答が署名されているかどうかを確認するだけで十分ではないですか?
  2. 4番をチェックする必要があるのはなぜですか? CAのOSCPレスポンダがしばらくして不正になるケースはありますか?もしそうなら、なぜですか? (私はどの場合を意味します)?
2
Abraham

この責任は明示的に委任できるため、OCSP応答は、元の証明書に署名したのと同じエンティティによって署名される必要はありません。

これについては、RFC 2560のセクション4.2.2.2で説明されています。

4.2.2.2承認された応答者

証明書のステータス情報に署名するキーは、証明書に署名したキーと同じである必要はありません。ただし、この情報に署名するエンティティにその権限があることを確認する必要があります。したがって、証明書の発行者はOCSP応答自体に署名するか、別のエンティティにこの権限を明示的に指定する必要があります。 OCSP署名の委任は、OCSP応答の署名者の証明書に含まれるextendedKeyUsage証明書拡張にid-kp-OCSPSigningを含めることによって指定する必要があります(SHALL)。この証明書は、問題の証明書を発行したCAが直接発行する必要があります。

OCSP応答に依存するシステムまたはアプリケーションは、上記のようにid-ad-ocspSigning値の使用を検出および強制できる必要があります。それらは、1つ以上のOCSP署名機関をローカルに構成し、各署名機関が信頼されるCAのセットを指定する手段を提供する場合があります。応答の署名を検証するために必要な証明書が次の基準の少なくとも1つを満たさない場合、応答を拒否する必要があります。

  1. 問題の証明書のOCSP署名機関のローカル構成を照合します。または

  2. 問題の証明書を発行したCAの証明書です。または

  3. ExtendedKeyUsage拡張にid-ad-ocspSigningの値を含み、問題の証明書を発行したCAによって発行されます。

あなたの質問のこの部分に関して:

つまり、コンピューターの信頼されたCAの1つによって応答が署名されているかどうかを確認するだけで十分ではないですか?

これが当てはまらないことが重要です。そうでない場合、侵害されたCAは、発行された(または委任された)証明書だけでなく、any証明書のOCSP応答を改ざんする可能性があります。これはパブリックCAに限定されません。企業の内部CA(イントラネットで使用するなど)が侵害され、ユーザーが外部のWebサイトにアクセスしたときにOCSP応答を改ざんするために使用され、HPKPやその他のステープリングがバイパスされるケースを想像してください。

サブセクション4.2.2.2.1はチェック4について説明しています。失効したCAがOCSP応答を改ざんできないように、OCSPレスポンダも失効をチェックする必要があります。

4
Polynomial