Two-step verification and two-factor authentication both aim to help users secure their Apple ID, adding a secondary authentication factor to strengthen security. While Apple ID and password are “something you know”, two-step verification (and two-factor authentication) are both based on “something you have”.
However, Apple doesn’t make it easy. Instead of using a single two-factor authentication solution (like Google), the company went for two different processes with similar usability and slightly different names. What are the differences between the two verification processes, and how do they affect mobile forensics? Let’s try to find out.
Before we begin, let’s look at Apple’s official documentation about the two verification methods.
Long story short, two-step verification protects access to certain activities with users’ Apple ID since 2013. This method introduces an extra verification step in addition to the password. Generally speaking, the secondary verification step is required when signing into Apple ID or iCloud or making a purchase from a new device (more information is available in the Apple support article linked above). What’s important, however, is how Apple delivers codes that serve as the secondary authentication factor.
There are as many as four different methods that can be used to receive codes for two-factor authentication.
Delivery of secondary authentication codes:
Enabling two-step verification:
Apple views two-factor authentication (first released in 2015 with iOS 9) as an improvement over the previously used two-step verification. The new and improved security method is built directly into iOS 9 and OS X El Capitan, and cannot be used on devices running older versions of iOS. At this time, two-factor authentication availability is still limited to some regions; the method will roll out slowly to all regions.
In this new authentication method, Apple ditched offline recovery keys and app-specific passwords.
Delivery of secondary authentication codes:
Enabling two-factor authentication:
As you can see, it is now possible to generate and use authentication codes offline by requesting them from a trusted device:
These offline authentication codes work similar to Google’s and Microsoft’s implementations, meaning that a new code is generated every 30 seconds. Unlike Google’s and Microsoft’s authenticator apps, Apple uses a unique seed for each trusted device, meaning that each trusted device generates a unique authentication code. This, however, means that users can revoke 2FA authorization from each individual device (as opposed to Google’s or Microsoft’s approach that invalidates all Authenticator apps initialized with a certain seed).
In addition to Recovery Keys, Apple ditched app-specific passwords. When activating two-factor authentication, users who have at least one device without support for 2FA (such as an iPhone with iOS 8 or older) will see the following prompt:
Some of your devices are not ready for two-factor authentication. If you continue you will have to add a six-digit verification code to the end of your password any time you enter password on an old device
We tested this, and received a somewhat confusing result. The first time we tried making an App Store purchase from an iPhone 5C running iOS 8.3, we were prompted to enter the password with a 6-digit code appended at the end. A trusted device displayed the prompt and the code. However, when we tried to use that phone to make a purchase on the next day, the regular Apple ID password worked. We did not have to attach the 6-digit code. However, our trusted device still displayed the prompt and the code – yet we didn’t have to use it. We’ll continue investigating the issue.
One more thing that’s new with two-factor authentication is what happens when one loses access to all of their trusted devices (and registered phone numbers).
If this is the case, one will need to make a request to Apple to regain access to Apple ID with two-factor authentication account recovery:
https://support.apple.com/en-us/HT204921
If you’re using Elcomsoft Phone Breaker to acquire iOS backups from Apple iCloud, and if that Apple ID is protected with either two-step verification or two-factor authentication, you will need access to the secondary authentication factor in order to be able to download the data. If two-factor authentication is enabled on a given Apple ID, Elcomsoft Phone Breaker will automatically prompt to enter the secondary authentication code.
Elcomsoft Phone Breaker and 2SV/2FA:
When using Elcomsoft Phone Breaker with accounts protected with either 2SV or 2FA, please note the following:
At this time, we are actively working on implementing full support for Apple’s two-factor authentication into Elcomsoft Phone Breaker. The upcoming release will be able to automatically detect accounts with 2FA enabled, prompting for a 2FA code and saving an authentication token to bypass 2FA the next time you use it.