Apple has a cryptochip which, beside managing the encryption keys, tunnels authentication and provides throttling of failed attempts, as well as the ability to trigger a device wipe after several failed attempts to authenticate. This allows for a reasonable security using a 4 digits PIN.
I did not find any information about the existence of such a hardware mechanism in Android-based devices. The closest could be the TEE (Trusted Execution Environment)
The TEE is a secure area of the main processor in a smart phone (or any connected device). It ensures that sensitive data is stored, processed and protected in an isolated, trusted environment
My understanding is that this is essentially an implementation of a TPM, which only secures the encryption keys, and specifically does not handle the authentication itself.
In that case, how does Android ensure that the throttling of failed authentication attempts is not by-passed during an offline attack?
Specifically:
- decryption of a bare disk extracted from the device is not possible (the key generated by the TEE is robust)
- decryption of a disk in the device with the help of the TEE must be protected against - via throttling or wipe after a given number of attempts.
A description of the implementation of the latter is what I am looking for.
Note: I am aware that there are security bugs which help to bypass a security setup. This happens everywhere and on every device and is hopefully fixed with patches. This is not the subject of my question - I am specifically interested in hardware mechanisms designed to protect against seemingly insecure authentication mechanisms (which a 4 digits PIN, in the absence of these systems, would be an example of).
EDIT: also see this answer about TEE itself (as a complement to the question above)