Using a Broken or Risky Cryptographic Algorithm
From Guidance Share
The use of a broken or risky cryptographic algorithm is an unnecessary risk that may result in the disclosure of sensitive information.
- Languages: All
- Operating platforms: All
SHA1, DES, MD5, MD4 are all examples of cryptographic algorithms that are no longer secure.
- Confidentiality: The confidentiality of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.
- Integrity: The integrity of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.
- Accountability: Any accountability to message content preserved by cryptography may be subject to attack.
- Use of a proprietary cryptographic algorithm, or a public algorithm that is known to be weak.
- Design: Use a cryptographic algorithm that is currently considered to be strong by experts in the field.
Current guidelines are: If you use symmetric encryption, check that you use Rijndael (now referred to as Advanced Encryption Standard [AES]) or Triple Data Encryption Standard (3DES) when encrypted data needs to be persisted for long periods of time. Use the weaker (but quicker) RC2 and DES algorithms only to encrypt data that has a short lifespan, such as session data.
If you use hashing, use MD5 and SHA1 when you need a principal to prove it knows a secret that it shares with you. For example, challenge-response authentication systems use a hash to prove that the client knows a password without having the client pass the password to the server. Use HMACSHA256 with Message Authentication Codes (MAC), which require you and the client to share a key. This can provide integrity checking and a degree of authentication.