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.
Duo Security, a company that provides two-factor authentication solutions for smartphones, has run an analysis on its user base and estimated that over 50 percent of Android devices are vulnerable to Beniamini's attack. That's also because Qualcomm is the market leader for ARM CPUs used in phones and tablets.
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.
The deeper issue is that on Qualcomm's implementation, the Android FDE is not directly bound to a unique hardware-based key that only exists on the device and cannot be extracted by software. Instead, it's tied to a key that is accessible to the QSEE software and which could be leaked through future TrustZone vulnerabilities.
"Finding a TrustZone kernel vulnerability or a vulnerability in the KeyMaster trustlet, directly leads to the disclosure of the KeyMaster keys, thus enabling off-device attacks on Android FDE," the researcher concluded.
Furthermore, because Android manufacturers can digitally sign and flash TrustZone images to any device, they can comply with law enforcement requests to break Android full-disk encryption.
The fact that the Android full-disk encryption is not truly bound to a key burned into hardware is not necessarily a Qualcomm-only issue, because the current implementation is forced by the constraints of the Android KeyMaster, a Qualcomm spokeswoman said via email. Furthermore, Qualcomm's platforms provide an anti-rollback mechanism that device manufacturers can use to prevent the installation of outdated software versions, she said.
According to the spokeswoman, the two vulnerabilities exploited in this attack were initially discovered by Qualcomm internally in August and October 2014 and patches for them were made available to the company's customers and partners in November 2014 and February 2015