Android's full disk encryption can be brute-forced on devices with Qualcomm chips

Lucian Constantin |
July 5, 2016

Android smartphone makers can help law enforcement break full-disk encryption on Qualcomm-based devices.

Attackers can exploit vulnerabilities in Android devices with Qualcomm chipsets in order to extract the encrypted keys that protect users' data and run brute-force attacks against them.

The attack was demonstrated last week by security researcher Gal Beniamini and uses two vulnerabilities patched this year in Qualcomm's implementation of the ARM CPU TrustZone.

The ARM TrustZone is a hardware security module that runs its own kernel and Trusted Execution Environment independent of the main OS. On Qualcomm chips, the Trusted Execution Environment is called QSEE (Qualcomm Secure Execution Environment).

The full-disk encryption feature on Android devices relies on a randomly generated key called the device encryption key (DEK). This key is itself encrypted with another key derived from the user's PIN, password or swipe pattern.

Like iOS, Android attempts to prevent the extraction of the encrypted DEK which could allow attackers to execute brute-force password guessing attacks against it off the device, where there are no protections like software-enforced delays between failed password guesses.

This is done by binding the DEK to the device's hardware through the use of an application called KeyMaster that runs inside the Trusted Execution Environment.

However, Beniamini found that, unlike iOS, which binds the DEK to a hardware-based key called the UID that cannot be extracted by software, Qualcomm's implementation uses a key that is available to the KeyMaster application that runs inside the QSEE.

This means that breaking into QSEE could provide access to the KeyMaster key and allow the extraction of the DEK. Attackers could then run brute-force attacks against it on more powerful equipment such as a server cluster, designed for password cracking.

This reduces the security of Android's full-disk encryption to that of the user password, PIN or swipe pattern. And unfortunately, for usability reasons most users don't set complex access passwords on their mobile devices.

Beniamini's proof-of-concept attack combined a vulnerability patched in Android in January and one patched in May, but in the Android ecosystem many devices don't receive updates in a timely manner, if ever.

And even if the affected devices did receive the necessary Android patches, the problem would not disappear entirely.

"Even on patched devices, if an attacker can obtain the encrypted disk image (e.g. by using forensic tools), they can then 'downgrade' the device to a vulnerable version, extract the key by exploiting TrustZone, and use them to brute-force the encryption," Beniamini said in a blog post.