Difference between revisions of "Using single-factor authentication"

From OWASP
Jump to: navigation, search
(Examples)
(Related problems)
Line 68: Line 68:
 
==Related problems ==
 
==Related problems ==
  
* Using password systems
+
* [[Using password systems]]
  
 
==Categories ==
 
==Categories ==

Revision as of 12:15, 16 April 2006



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

  • Languages: All
  • Operating platform: All

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

Related problems

Categories