That presents formidable challenges to an attacker. "To read it, an attacker would need to compromise both the key of the receiving device and your iCloud password. Or re-architect the entire process without the user knowing," according to Mogull. Apple itself "could technically subvert the process...but not easily, not without changing the architecture (the notification and approval piece), and not without incurring serious legal liability now that the details have been published."
The iCloud Keychain Recovery process does back up the entire keychain in iCloud, via a secure escrow service. According to Mogull, your keychain is encrypted with a strong key, and then stored in iCloud. That strong key itself is then encrypted using the iCloud Security Code and the public key of a special, tamper-resistant, hardware encryption device called a hardware security module (HSM).
By design, then, the HSM can only take the first step in decrypting the keychain releasing the strong key that it has encrypted. According to Mogull, because the HSM doesn't store the iCloud Security Code used to encrypt that key, "it can't read the actual key used to protect the keychain."
Apple went further, he says. "Just to be safe, Apple destroyed the administrator access cards for the HSMs, and set them to delete all the keys if any unauthorized access is detected," he explains. "Then [if unauthorized access is detected], all users are sent a notification to re-enroll before they lose their keys, and re-enrolling moves them to a different HSM cluster."
"As I mentioned, part of my day job is advising large businesses and security vendors," Mogull writes. "I rarely see this level of security, and it's especially rare to destroy the administrative smart cards required to access the HSM."
And Apple went still further, he explains, with an option that lets the user, via Settings, "turn on iCloud Keychain," and follow a series of steps to use a different process to generate a cryptographically secure, unguessable iCloud Security Code to protect the keychain.
"Select this option and the original random key protecting your keychain is wrapped with a key generated using this random iCloud Security Code, is never sent to Apple, and can't be intercepted," Mogull explains. "Without this random iCloud Security Code (store it in a password management tool like 1Password or LastPass, and make a paper backup — with good handwriting! — and store it securely), there is no way to decrypt your keychain from iCloud, and it is protected even if you-know-who [meaning, the NSA] steals a copy."
The same care is taken with Apple's other Internet services, such as iMessage, Facetime, and Siri. "They're trying to secure any data that passes through the cloud, without exposing it to Apple in most cases," says WatchGuard's Nachreiner.
Sign up for Computerworld eNewsletters.