Possession factors are things that a person owns. The two most common types of possession factors are software tokens and hardware tokens.
Software tokens often take the form of one-time passwords (OTPs). OTPs are usually 4–8 digit, single-use passcodes that expire after a set amount of time. Software tokens can be sent to a user's phone by text message, email or voice message. Tokens can also be generated by an authenticator app installed on the device.
With a software token, the user's device acts as the possession factor. The 2FA system assumes that only the legitimate user has access to any information delivered to or generated by that device.
While SMS text-based OTPs are some of the most user-friendly possession factors, they are also the least secure. Users need an internet or cellular connection to receive these authentication codes, and hackers can use sophisticated phishing or man-in-the-middle attacks to steal them.
OTPs are also vulnerable to SIM cloning, in which criminals create a functional duplicate of the victim's smartphone's SIM card and use it to intercept their text messages.
Authenticator apps—such as Google Authenticator, Authy, Microsoft Authenticator and Duo—can generate tokens without a network connection. A user pairs the authenticator app with a service, often by scanning a QR code. The app then continuously generates time-based one-time passwords (TOTPs) for the paired service. Each TOTP expires in 30–60 seconds, making it difficult to steal.
Some authenticator apps use push notifications rather than TOTPs. When a user log in to an account, the app sends a push notification to their iOS or Android operating system, which they must tap to confirm the attempt is legitimate.
While authenticator apps are harder to crack than text messages, they're not foolproof. Hackers can use malware to steal TOTPs directly from authenticators. They can also launch MFA fatigue attacks, in which they flood a device with fraudulent push notifications in the hopes that the victim accidentally confirms one.
Hardware tokens are dedicated devices—such as key fobs, ID cards or dongles—that function as security keys. Some hardware tokens plug into a computer's USB port and transmit authentication information to the login page. Other tokens generate verification codes for the user to enter manually when prompted.
While hardware tokens are difficult to hack, they can be stolen—as can users' mobile devices containing software tokens. According to IBM's Cost of a Data Breach Report, lost and stolen devices are a factor in as many as 9% of data breaches.