A Few Thoughts on Cryptography talks about "Why Apple can't decrypt your iPhone." Unreadable write-once storage is key.
Apple's A7 and later processors have a feature called the Secure Enclave. This is a cryptographic co-processor that is fabricated with a unique ID (UID). Apple's iOS Security white paper states:
"Each Secure Enclave is provisioned during fabrication with its own UID (Unique ID) that is not accessible to other parts of the system and is not known to Apple. When the device starts up, an ephemeral key is created, entangled with its UID, and used to encrypt the Secure Enclave’s portion of the device’s memory space."
The Secure Enclave has its own secure boot process, software update system, and handles cryptographic key management and Touch ID fingerprint processing. Its memory is encrypted and its communication with the application processor is limited to a mailbox and shared data buffers.
Pumping up the puny password
The iPhone takes the normal pathetic user password and add the 256-bit UID to the mix. The UID and your password are mixed to create a unique key for encrypting iPhone contents — most of them, anyway.
It is the UID that is hidden in the non-readable Secure Enclave location. Here's a diagram explaining how the hardware and passcode keys work together to secure file contents:
The Storage Bits take
Apple has gone to some trouble to improve privacy. I'm sure Google and licensees have as well, but it's harder to achieve the level of integration Apple has when you don't control the hardware.
The real question is whether Apple and Google will be able to withstand the pressure from multiple national governments to keep our phones secure. I hope so.
Comments welcome. Are you feeling better or worse about iPhone security?