The product uses a cryptographic key or password past its expiration date, which diminishes its safety significantly by increasing the timing window for cracking attacks against that key.
Time of Introduction
Architecture and Design
Applicable Platforms
Languages
All
Common Consequences
Scope
Effect
Access Control
Technical Impact: Bypass protection
mechanism; Gain privileges / assume
identity
The cryptographic key in question may be compromised, providing a
malicious user with a method for authenticating as the victim.
Likelihood of Exploit
Low
Demonstrative Examples
Example 1
(Bad Code)
Example Languages: C and C++
if (!(cert = SSL_get_peer(certificate(ssl)) || !host)
foo=SSL_get_verify_result(ssl);
if ((X509_V_OK==foo) || (X509_V_ERRCERT_NOT_YET_VALID==foo)) //do
stuff
Potential Mitigations
Phase: Architecture and Design
Adequate consideration should be put in to the user interface in order
to notify users previous to the key's expiration, to explain the
importance of new key generation and to walk users through the process
as painlessly as possible.
Run time: Users must heed warnings and generate new keys and passwords
when they expire.
Other Notes
While the expiration of keys does not necessarily ensure that they are
compromised, it is a significant concern that keys which remain in use for
prolonged periods of time have a decreasing probability of integrity. For
this reason, it is important to replace keys within a period of time
proportional to their strength.