Attackers who would get access to the stored passwords could reuse them without further attacks or with little additional effort.
Obtaining the
plaintext passwords, they could then gain unauthorized access to user accounts, potentially leading to various malicious activities.
What is the potential impact?
Plaintext or weakly hashed password storage poses a significant security risk to software applications.
Unauthorized Access
When passwords are stored in plaintext or with weak hashing algorithms, an attacker who gains access to the password database can easily retrieve
and use the passwords to gain unauthorized access to user accounts. This can lead to various malicious activities, such as unauthorized data access,
identity theft, or even financial fraud.
Credential Reuse
Many users tend to reuse passwords across multiple platforms. If an attacker obtains plaintext or weakly hashed passwords, they can potentially use
these credentials to gain unauthorized access to other accounts held by the same user. This can have far-reaching consequences, as sensitive personal
information or critical systems may be compromised.
Regulatory Compliance
Many industries and jurisdictions have specific regulations and standards to protect user data and ensure its confidentiality. Storing passwords in
plaintext or with weak hashing algorithms can lead to non-compliance with these regulations, potentially resulting in legal consequences, financial
penalties, and damage to the reputation of the software application and its developers.
Recommended practices
Use secure password hashing algorithms
In general, you should rely on an algorithm that has no known security vulnerabilities. The MD5 and SHA-1 algorithms should not be used.
Some algorithms, such as the SHA family functions, are considered strong for some use cases, but are too fast in computation and therefore
vulnerable to brute force attacks, especially with bruteforce-attack-oriented hardware.
To protect passwords, it is therefore important to choose modern, slow password-hashing algorithms. The following algorithms are, in order of
strength, the most secure password hashing algorithms to date:
- Argon2
- scrypt
- bcrypt
- PBKDF2
Argon2 should be the best choice, and others should be used when the previous one is not available. For systems that must use FIPS-140-certified
algorithms, PBKDF2 should be used.
Whenever possible, choose the strongest algorithm available. If the algorithm currently used by your system should be upgraded, OWASP documents
possible upgrade methods here: Upgrading Legacy Hashes.