Two-Factor Authentication (2FA) is the least complex version of Multi-Factor Authentication (MFA), a technology invented to add an extra layer of security to the now considered old-fashioned and insecure simple login procedure using a username and a password. Given the number of leaked login credentials for various websites (Yahoo, LinkedIn, Twitter to name a few), this extra layer is now a critical identity management tool.
It works by preventing hackers from accessing a user account from a different machine or from a different location (resulting in a different IP). With 2FA-enabled login procedures, legitimate users receive a text message providing them with a verification code. That code is needed to complete the login procedure.
By definition, 2FA depends on two different methods of identity confirmation of the user. In the example above, the user knows the login credentials and has control over the phone that receives the text. Other factors that are often used are:
- Knowing a PIN or TAN code (ATM withdrawals, money transfers)
- Having access to an email account (when verification codes are sent by mail)
- Secret questions (often frowned upon as they are sometimes easy to guess)
- Physical keys (card readers, USB keys)
- Biometrics (fingerprint readers, iris scanners)
- Mobile devices that can scan barcodes or QR codes and calculate a login code for one time use (Authy, Google Authenticator)
There are some alternatives for 2FA that can also be used in combination with 2FA, or as one of the factors. Some examples are:
- Single Sign On (SSO): this is mostly used as a method to dampen the impact of using 2FA methods, particularly when given an authenticated user access to several resources. The idea is that once the user has been identified and approved, the SSO software provides access to all platforms tied to the SSO. Given the possible impact of a breach the login procedure for a SSO system is usually done by using a MFA procedure. Another consideration when choosing a SSO system is the consequences of a failure. If the SSO software goes offline, will this block the user from all the underlying resources?
- Time-based One-time Password (TOTP): this is a special authentication method that uses an algorithm that calculates a one-time login code based on the time. The server and the user that wants to login both run simultaneous calculations with the same seed and time-stamp. If the results match, the user is granted access. Obviously the clocks need to be synchronized, although there usually is some leniency built into the procedure (up to a one minute difference is generally allowed). Since losing the machine that runs the algorithm or any other way that leaks the algorithm could allow access to the wrong person, this method is generally used as one factor in a MFA method.
- Token Authentication: besides physical tokens, other tokens can be used as a means of authentication. Consider, for example, apps that run on your smartphone and can show an image to your webcam or play a sound which can be compared to an original. As this is not a very strong authentication method (for now) it is advisable to be used as one of the authentication factors and not the sole one.