Relying solely on single-factor authentication, like a password, exposes systems to significant security risks because it depends on only one type of proof for verifying a user's identity.
Single-factor authentication creates a single point of failure. Since passwords are often weak, reused, or stolen, a single breach can lead directly to full account compromise. Implementing a second factor, such as a code from an app or a hardware token, adds a critical layer of defense that drastically reduces this risk. While adding authentication methods increases complexity, the security benefit is substantial. For any application handling sensitive data, requiring multi-factor authentication (MFA) is a best practice. It should be implemented wherever feasible, especially when the additional factors are user-friendly and do not overly hinder the login experience.
Impact: Bypass Protection Mechanism
If the secret in a single-factor authentication scheme gets compromised, full authentication is possible.
c
//Login if hash matches stored hash* if (equal(ctext, secret_password())) { ``` login_user(); } }
java
//Login if hash matches stored hash* if (equal(digest,secret_password())) { ``` login_user(); }
High