Description
The software uses a one-way cryptographic hash against an input that should not be reversible, such as a password, but the software does not also use a salt as part of the input.
In cryptography, salt refers to some random addition of data to an input before hashing to make dictionary attacks more difficult.
Modes of Introduction:
– Implementation
Likelihood of Exploit:
Related Weaknesses
Consequences
Access Control: Bypass Protection Mechanism, Gain Privileges or Assume Identity
If an attacker can gain access to the hashes, then the lack of a salt makes it easier to conduct brute force attacks using techniques such as rainbow tables.
Potential Mitigations
Phase: Architecture and Design
Effectiveness: High
Description:
Phase: Architecture and Design
Effectiveness: Limited
Description:
If a technique that requires extra computational effort can not be implemented, then for each password that is processed, generate a new random salt using a strong random number generator with unpredictable seeds. Add the salt to the plaintext password before hashing it. When storing the hash, also store the salt. Do not use the same salt for every password.
Be aware that salts will not reduce the workload of a targeted attack against an individual hash (such as the password for a critical person), and in general they are less effective than other hashing techniques such as increasing the computation time or memory overhead. Without a built-in workload, modern attacks can compute large numbers of hashes, or even exhaust the entire space of all possible passwords, within a very short amount of time, using massively-parallel computing and GPU, ASIC, or FPGA hardware.
Phase: Implementation, Architecture and Design
Effectiveness:
Description:
When using industry-approved techniques, use them correctly. Don’t cut corners by skipping resource-intensive steps (CWE-325). These steps are often essential for preventing common attacks.
CVE References
- CVE-2008-1526
- Router does not use a salt with a hash, making it easier to crack passwords.
- CVE-2006-1058
- Router does not use a salt with a hash, making it easier to crack passwords.