しかし、私のCA自体が期限切れになるとどうなりますか(ルートCA、つまり発行CA)。
文字通り、何も。もう少し詳しく説明しましょう。
署名にタイムスタンプが付けられていない場合、署名は次の条件を満たす限り有効です。
- データは改ざんされていません
- 署名証明書は有効期限です
- チェーン内のどちらの証明書も取り消されていません
- ルート証明書は信頼されています
署名証明書の有効期限が切れた、失効した、または何らかの方法で無効になった場合、署名は無効と見なされます。簡潔でシンプル。
デジタル署名のタイムスタンプの目的は、署名されたコンテンツに拡張された信頼を提供することです。署名証明書は短期間有効であり、基本的な信頼設定は長期間の(おそらくアーカイブされた)署名には適していません。通常(タイムスタンプなし)、署名証明書が更新されるたびに署名を再作成する必要があります。それはどこにも行かない方法です。
タイムスタンプをデジタル署名に追加すると、信頼条件が次のリストに変更されます。
- データは改ざんされていません
- 署名証明書は署名時に*有効*でした:署名時間は署名証明書の有効期間内です
- どちらの証明書も署名生成の「前に」取り消されなかった
- 署名証明書とタイムスタンプ証明書の両方が信頼されたルートCAにチェーンされます(それらの時間の有効性に関係なく、トラストストアにある必要があります)。
ここでの変更点:署名は、証明書の有効期限が切れた後も有効のままです。つまり、署名とタイムスタンプ証明書のチェーン全体が(ルート証明書とともに)期限切れになる可能性があり、信頼を壊すことはありません。チェーン内の証明書は取り消すことができます。唯一の要件:証明書が失効した場合、失効時間(CRLから取得)は、署名の作成後の時間に設定する必要があります(署名時間はタイムスタンプによって識別されます)。前の文は、どちらの証明書も署名時に取り消されなかったことを証明するために、署名されたCRLが必要であることを意味します。
これが、最新のWindowsシステムが古くなって有効期限が切れたルート証明書を出荷する理由です。それらはまだ古い署名の検証に使用され、タイムスタンプが付けられています。
しばらく前に、この件について詳細に説明したブログ投稿を書きました:デジタル署名とタイムスタンプ