[liberationtech] Android Full-Disk Encryption Cracked

Dev Random c1.devrandom at niftybox.net
Mon Jun 10 20:08:26 PDT 2013


It's important for the data-at-rest password to have lots of entropy.
But using a long password for unlocking the screen annoys the user, and
they will choose a shorter one. Therefore it's important to separate them.

See this open source app to set them separately:
https://play.google.com/store/apps/details?id=org.nick.cryptfs.passwdmanager

The screen unlock password is used for authentication while the OS is
running, so throttling is enough to defend against password guessing.

On 04/29/2013 12:09 PM, Seth David Schoen wrote:
> Griffin Boyce writes:
> 
>> Hashkill can now determine the master password for Android's full-disk
>> encryption scheme.
>>
>> image showing the process: http://i.imgur.com/bFUf7lR.png
>> script: https://github.com/gat3way/hashkill
>>
>> Thoughts?
> 
> It seems like this is just a tool for doing dictionary and
> brute force attacks against these passwords, not a class-break
> that is inherently able to decrypt every single Android device.
> 
> So, if your Android FDE passphrase is long and unpredictable
> enough, this tool should still not be able to crack it.
> 
> There are a lot of problems about disk encryption on small
> mobile devices.  One that was highlighted by Belenko and
> Sklyarov at Black Hat EU 2012 is that mobile device CPUs are
> relatively slow, so it's difficult to do very large numbers of
> iterations of key derivation functions, which would make
> brute-force cracking slower.
> 
> http://www.elcomsoft.com/WP/BH-EU-2012-WP.pdf
> https://en.wikipedia.org/wiki/Key_derivation_function
> 
> The more KDF iterations that are used, the slower _both_
> unlocking by the legitimate authenticated user and offline
> cracking will be.  But if the legitimate user's device has
> a slow CPU, the user may not accept the human-perceptible
> delays that would result from using a lot of iterations.
> 
> This tradeoff is a pretty fundamental problem.  The user
> wants to unlock their device using a very short, easy-to-
> remember code.  They want the device to be able to unlock
> quickly when this code is entered, using information that
> can be calculated from the code in a short time on a
> comparatively slow mobile CPU.  Then they also want someone
> with a very fast cracking device like a desktop GPU not to
> be able to brute-force that same code quickly.
> 
> Belenko and Sklyarov also observed that some mobile crypto
> applications were just not using KDFs at all or were using
> them improperly, but I don't know of an indication that
> that's true of the official Android FDE.  Another problem
> is that, especially if people are using touchscreens, they
> may want a very short unlock PIN rather than a long
> passphrase, which will inherently favor cracking.  (For
> example, if you imagine a system with a 5-digit numeric
> PIN, you can quickly conclude that there is no number of
> KDF iterations that will be acceptable to the mobile device
> user and be a practical deterrent to a brute-force attacker
> with even a single desktop GPU, at least for KDFs that can
> be implemented efficiently on a GPU.)
> 
> I don't think this problem is very well appreciated by
> mobile device crypto users!
> 
> Two ways to address this that come to mind would be using
> tamper-resistant hardware (which apparently Apple is doing
> for crypto in iOS devices) to store or generate the
> decryption keys using cryptographic secrets kept inside
> the particular device itself, and finding some way for
> the user to somehow input a much higher entropy unlock
> password.
> 




More information about the liberationtech mailing list