Overview
The use of single-factor authentication can lead to
unnecessary risk of compromise when compared with the
benefits of a dual-factor authentication scheme.
Consequences
- Authentication: If the secret in a single-factor
authentication scheme gets compromised, full
authentication is possible.
Exposure
period
- Design: Authentication methods are determined at
design time.
Platform
Required
resources
Any
Severity
High
Likelihood
of exploit
High
Avoidance
and mitigation
- Design: Use multiple independent authentication
schemes, which ensures that - if one of the methods is
compromised - the system itself is still likely safe
from compromise.
Discussion
While the use of multiple authentication schemes is
simply piling on more complexity on top of authentication,
it is inestimably valuable to have such measures of
redundancy.
The use of weak, reused, and common passwords is rampant
on the internet. Without the added protection of multiple
authentication schemes, a single mistake can result in the
compromise of an account. For this reason, if multiple
schemes are possible and also easy to use, they should be
implemented and required.
Examples
In C:
unsigned char *check_passwd(char *plaintext){
ctext=simple_digest("sha1",plaintext,strlen(plaintext)...);
if (ctext==secret_password())
// Log me in
}
In Java:
String plainText = new String(plainTextIn)
MessageDigest encer = MessageDigest.getInstance("SHA");
encer.update(plainTextIn);
byte[] digest = password.digest();
if (digest==secret_password())
//log me in