ルートCAが期限切れになると、コード署名証明書はどうなりますか?


9

これまでのところ明確です:コード署名証明書自体の有効期限が切れると、タイムスタンプで署名された場合に備えて、署名されたコードが検証/受け入れられます。そうでない場合、署名されたコードも期限切れになります。

しかし、私のCA自体が期限切れになるとどうなりますか(ルートCA、つまり発行CA)。

  • タイムスタンプが付けられていても、コードは受け入れられますか?
  • 期限切れのルート証明書と発行CA証明書がまだ存在している必要がありますか(信頼されたルートCA証明書ストアなど)?これは私の仮定ですが、CAが降格されても、署名されたものを実行するクライアントはCAを信頼する必要がありますか?そうでなければ、信頼チェーンは壊れますよね?
  • CRLまたはAIAの欠如は問題を引き起こしますか?

回答:


12

しかし、私のCA自体が期限切れになるとどうなりますか(ルートCA、つまり発行CA)。

文字通り、何も。もう少し詳しく説明しましょう。

署名にタイムスタンプが付けられていない場合、署名は次の条件を満たす限り有効です。

  • データは改ざんされていません
  • 署名証明書は有効期限です
  • チェーン内のどちらの証明書も取り消されていません
  • ルート証明書は信頼されています

署名証明書の有効期限が切れた、失効した、または何らかの方法で無効になった場合、署名は無効と見なされます。簡潔でシンプル。

デジタル署名のタイムスタンプの目的は、署名されたコンテンツに拡張された信頼を提供することです。署名証明書は短期間有効であり、基本的な信頼設定は長期間の(おそらくアーカイブされた)署名には適していません。通常(タイムスタンプなし)、署名証明書が更新されるたびに署名を再作成する必要があります。それはどこにも行かない方法です。

タイムスタンプをデジタル署名に追加すると、信頼条件が次のリストに変更されます。

  • データは改ざんされていません
  • 署名証明書は署名時に*有効*でした:署名時間は署名証明書の有効期間内です
  • どちらの証明書も署名生成の「に」取り消されなかった
  • 署名証明書とタイムスタンプ証明書の両方が信頼されたルートCAにチェーンされます(それらの時間の有効性に関係なく、トラストストアにある必要があります)。

ここでの変更点:署名は、証明書の有効期限が切れた後も有効のままです。つまり、署名とタイムスタンプ証明書のチェーン全体が(ルート証明書とともに)期限切れになる可能性があり、信頼を壊すことはありません。チェーン内の証明書は取り消すことができます。唯一の要件:証明書が失効した場合、失効時間(CRLから取得)は、署名の作成後の時間に設定する必要があります(署名時間はタイムスタンプによって識別されます)。前の文は、どちらの証明書も署名時に取り消されなかったことを証明するために、署名されたCRLが必要であることを意味します。

これが、最新のWindowsシステムが古くなって有効期限が切れたルート証明書を出荷する理由です。それらはまだ古い署名の検証に使用され、タイムスタンプが付けられています。

しばらく前に、この件について詳細に説明したブログ投稿を書きました:デジタル署名とタイムスタンプ


あなたのブログ投稿は、この件に関して非常に良い記事です!
ThoriumBR 2017年

このトピックは、ITプロフェッショナル(および開発者)の間で非常に混乱しているので、ブログの投稿で整理してみました。
Crypt32

しかし、CRLの要点は完全には明確ではありません。有効期限が切れたCAの(最後の)CRLがまだ必要ですか?
dr_pepper285 2017年

はい、CRLは必須です。最後に必要ではなくThisUpdate、署名後に公開する必要があります(フィールド)。このCRLは、両方のチェーン(署名とタイムスタンプ)のどちらの証明書も署名時に取り消されなかったことを証明できます。
Crypt32 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.