If a certificate is revoked before its expiry time and added to a CRL, is it removed from the CRL after the certificate validity period expires? RFC 5280 seems to imply this:
A complete CRL lists all unexpired certificates, within its scope, that have been revoked for one of the revocation reasons covered by the CRL scope. A full and complete CRL lists all unexpired certificates issued by a CA that have been revoked for any reason. (Note that since CAs and CRL issuers are identified by name, the scope of a CRL is not affected by the key used to sign the CRL or the key(s) used to sign certificates.)
The removeFromCRL (8) reasonCode value may only appear in delta CRLs and indicates that a certificate is to be removed from a CRL because either the certificate expired or was removed from hold.
However, if this is the case, how would this situation be resolved securely?
- A certificate is issued
- The cert is compromised and revoked, added to the CRL
- The Attacker signs something with the revoked certificate
- The certificate expires
- The cert is removed from the CRL, clients update their local copies of the CRL
- A client receives the data and signature from the attacker and verifies it.
From my understanding, a signature that was created during the validity period (i.e. before expiration) of the certificate will stay valid even after the cert expires, as the cert was valid at that time. So, how would the client determine that the cert was revoked when the signature was created, if the information is no longer part of the CRL?
This question was marked as a potential duplicate of this one. The replies to that question seem to indicate that expired certs are not removed from CRLs. If someone can clear up the discrepancy, I would be grateful.