What is the difference between two-step verification and two-factor authentication (2FA)? Is one more secure than...
the other? In which scenarios would each be beneficial in the enterprise?
The two terms, two-step verification and two-factor authentication, are synonymous, though the former is now being used more widely by the likes of Google, Microsoft and Apple as it better conveys how the actual authentication process works. In the past, two-step verification was used to describe processes that used the same authentication factors, while two-factor authentication described processes that involved different factors, such as entering a password on a website and receiving a numerical code on a mobile device. Today, the two terms are both used to describe authentication that involves a secondary factor that is different from the first.
Authentication is a vital element of access control and data security because users can be assigned access rights and be authorized to perform certain actions only after successful authentication is performed. The ways in which someone can be authenticated fall into three categories based on what are known as the factors of authentication:
- Knowledge factors or something you know, such as a password, PIN or shared secret;
- Ownership factors or something you have, such as an ID card, hardware or software token, or a mobile phone; and
- Inherence factors -- more commonly called biometrics -- such as fingerprints, face and voice. It also includes behavioral biometrics such as keystroke dynamics.
Security research has determined that the best way to establish positive identification is to use elements from at least two of these factors for verification. Using multiple factors from the same category doesn't constitute multifactor authentication; for example, a password and a shared secret don't constitute 2FA because they don't use a different authentication factor. Most people have experienced the two-step verification or two-factor authentication process when they withdraw money from an ATM. Money is only dispensed when the correct combination of a bank card (ownership factor) and a PIN (knowledge factor) are presented.
Due to the number of phishing attacks trying to steal users' network credentials or online account passwords, many online services have introduced 2FA to prevent unauthorized access to accounts, even if a hacker manages to steal a user's password. To try and simplify the concept, the term two-step verification is becoming more commonplace as users are required to provide a second piece of information after they've provided their password in order to access their account. Typically, after correctly entering their password (knowledge factor), an online service will send the user a text message to their phone (ownership factor) with a unique security code that needs to be entered on the sign-in page to complete the user verification process.
Enterprises should require that network administrators and other privileged-access users log in to systems using two-factor authentication tools to ensure that access to sensitive data remains controlled and compliant. It should also be mandatory when accessing any systems that store sensitive information because it reduces the chances of stolen credentials being used to log in to a network or system, as the attacker also has to have obtained the second authentication factor required to pass the verification process.
Ask the Expert:
Want to ask Michael Cobb a question about application security? Submit your questions now via email. (All questions are anonymous.)
Read more on multifactor authentication methods in the enterprise
Learn more about vulnerabilities in two-factor authentication systems
Dig Deeper on Two-factor and multifactor authentication strategies
Related Q&A from Michael Cobb
Explore the differences between symmetric vs. asymmetric encryption algorithms, including common uses and examples of both, as well as their pros and... Continue Reading
Pirated software is still a major concern nowadays. Uncover how to prevent software piracy and protect your organization's intellectual property. Continue Reading
Shellcode is a set of instructions that executes a command in software to take control of or exploit a compromised machine. Read up on the malware ... Continue Reading