web-dev-qa-db-ja.com

中間CAが取り消されるとどうなりますか?

現在、私は、製品がリモートWebサービスに(TLS/SSLを介して)安全に接続できるようにする証明書マネージャーに取り組んでいます。セキュリティのために、証明書失効リストチェック(またはCRLチェック)を使用して、特定の証明書が失効しているかどうかを確認します。それでも、いくつかの問題は私には不明確です:

  • 完全なチェーンのすべてのCRLをフェッチして、証明書の有効性を確認する必要がありますか?
  • 中間CAが取り消された場合はどうすればよいですか?すべての証明書もCRLに追加されますか?証明書を新しい(妥協のない)バージョンに置き換えることはできますか?
23

証明書の有効性を確認するには、完全なチェーンのすべてのCRLをフェッチする必要がありますか?

もちろんです。 CAは、発行する証明書に対してのみCRLを構築します。 CA自体のステータスは、発行元CAのCRLを介して確認する必要があります。注:これは再帰的な検索です。コードを記述したり、システムをテストしたりするときは、発行CAの複数の「世代」が存在する可能性があり、自己署名ルート以外のすべての証明書を確認することに注意してください。ルートCAにはCRLが関連付けられていません。ルートが侵害された場合、そのルートはトラストストアから手動で削除する必要があります。

中間CAが取り消された場合はどうすればよいですか?

CAによって署名されたものを信頼しない。証明書は、それを発行したCAと同じくらい優れています。 CAが信頼できなくなると、そのCAが発行した証明書は信頼できなくなります。

取り消されたCAから発行されたすべての証明書が無効であるというCRLを取得することを期待しないでください。 CAがアクティブな場合、これは非常に大きなCRLを作成します。これは、トランスポート、解析、および一般的に何でも行うのが非常に困難になります。また、CAのキーが失われた場合、このCRLを作成できない可能性があります。

実際には、信頼できるストアからCAを削除するのが賢明です。トラストストアからCAを削除すると、トラストストアからCAチェーンを構築するすべてのアプリケーションで、証明書の検証がすぐに失敗します。証明書チェーンの構築は通常、OCSP/CRLチェックの前に行われるため、ストアから取り消されたCAをトリミングすることにより、追加の手順や潜在的な帯域幅からアプリケーションを節約できます。

取り消される中間CAもかなり大きなイベントです-正直なところ、私は実際にそれを経験したことがありません。非常に安全なシステムで作業している場合は、CAが取り消されたことをできる限り広範囲に公開します。特に、長期間キャッシュされているCRLで動作している可能性のあるシステム。

また、このCAによって署名された証明書を保持している場合は、できるだけ早く再認定戦略を策定し始めます。

すべての証明書もCRLに追加されますか?

いいえ。2つの異なるCRLが機能していることに注意してください。-発行元CAのCA(ルートCAまたはチェーン内の別のCA)-発行元CAの証明書のステータスを確認するCRLを発行します-発行元CA-CRLを発行しますこのCAが発行した証明書のステータスを確認します。

ルートからエンドエンティティまでの証明書がn個のCAチェーンがある場合、n-1個のCRLが含まれます。

証明書を新しい(妥協のない)バージョンに置き換えることはできますか?

はい...ちょっと。妥協は、CAの秘密鍵の信頼性のなさを反映しています。 CAには新しい秘密鍵が必要です。これにより、CAは本質的に新しいCAになります。

技術的には、同じ識別名でCAの名前を変更することは可能です-それに運用上の価値がある場合。しかし実際には、すべての人間が違いを理解できるように、新しいDNを使用して新しいCAを立ち上げるのが私の誘惑です。

これは、後部の大きな痛みになります。新しいCAのユーザーは、次のことを行う必要があります。-侵害された証明書を削除し、新しいCA証明書に置き換えます。-すべてのエンドエンティティ証明書を、新しいCAによって署名された証明書で再認証します。

エンドエンティティをrecertifyするかrekeyするかは、セキュリティポリシーの問題であることに注意してください。侵害されたシステムがエンドエンティティの秘密キーにアクセスできなかった場合、同じ秘密キーに新しいCAキーで再署名できます。証明書要求のストアをファイルに保持している場合は、それらを新しいCAに再送信して、大量の鍵生成を保存できます。

ただし、場合によっては、CAシステムが秘密鍵をエスクローに入れることがあります。つまり、中央の場所(通常はCAシステムの近く)では、ユーザーが鍵を紛失して更新が必要になった場合に備えて、秘密鍵が安全に保管されます。これは、暗号化証明書の場合に特に一般的です。暗号化キーが取り消された後でも、暗号化されたデータを取得する必要がある場合があるためです。

これらのケースでは、CAが侵害された場合、鍵エスクローが侵害された可能性がかなりあります。つまり、エスクローのキーのすべてのユーザーは、新しいキーのペアを生成し、新しい証明書を要求する必要があります。

過去のこと-再認証が許可されるかどうかに関するポリシーの問題。新しい証明書には新しい有効期間が設定されるため、有効期間を十分に制限できないため、「更新/再認証なし」と呼ばれるセキュリティ機能がある可能性があります。

21
bethlakshmi

はい、チェーン内のすべての証明書のすべてのCRLをフェッチする必要があります。証明書は、有効な証明書チェーンの最後に差し込むことができる場合にのみ、他の証明書の検証を含め、あらゆる目的に使用できると見なすことができますand失効ステータスが確認されています。もちろん、CRLは、承認された公開鍵に関して署名を検証できなければ信頼できません。これは、いくつかの追加の証明書チェーンも意味する場合があります。

証明書が取り消されると、その内容は使用可能と見なされなくなります。失効は、発行元のCAによって証明書に追加された暗号署名の「キャンセル注文」と見なすことができます。「この署名は、数学的には良さそうに見えても、有効と見なしてはなりません」。失効は、証明書の有効期限の日付の代わりと見なすこともできます。

中間CA証明書が取り消されると、使用できなくなります。チェーンの一部として使用することはできません。そのため、そのCAが発行した証明書の1つを検証する場合は、同じCA名とキーを持ち、取り消されていないanother中間CA証明書を見つける必要があります。

証明書は任意の理由で取り消される場合があります。最終的には、CRLを発行して取り消しステータスをアサートする担当者がいるため、証明書は取り消されます。証明書が取り消される理由として考えられるのは、対応する秘密鍵が侵害された(盗まれた)ことです。その時点で、鍵泥棒によって署名された可能性があるため、その鍵で署名されたものはもう信頼されません。その場合(キーの侵害)、中間CA証明書が取り消されるだけでなく、中間CAが新しいキーを生成するため、その中間CAの他の証明書はすべて新しいキーを使用します。正味の効果は、その中間CAによって以前に発行された証明書が再び有効なチェーンの一部として再び表示されることは決してないということです。それらを取り消しても意味がありません。

13
Thomas Pornin
  • はい。証明書は、ルートまでの証明書のチェーン全体が有効で、取り消されていない場合にのみ有効であるため、すべてを確認する必要があります。
  • 中間CAが取り消された場合、有効なCAによって子証明書を再発行する必要があります。有効な中間体を「スワップイン」する方法はありません。明確にするために、「再発行」とは「同じ名前を参照して作成されたまったく新しい証明書」を意味します
  • 親証明書が取り消されたときに、子証明書がCRLに配置されるとは思わない。確かにそれは可能ですが、ロジスティックス的には苦痛であり、私はそれを行う人を知りません。これはまさに私の推測ですが、私はこの点で簡単に間違っている可能性があります。
6
gowenfawr