When reading the iOS security doc, on page 6, it discusses the OTA update process.

The OTA process, includes sending information of current version and device ID to Apple. Inside the OTA response, Apples signs the version information and device ID. A nonce is also sent by device to tackle replay attacks.

Apple also states:

The boot-time chain-of-trust evaluation verifies that the signature comes from 
Apple and that the measurement of the item loaded from disk, combined with the 
device’s ECID, matches what was covered by the signature. These steps ensure that 
the authorization is for a specific device and that an old iOS version from one 
device can’t be copied to another. The nonce prevents an attacker from saving 
the server’s response and using it to tamper with a device or otherwise alter
the system software.

My questions are:

1) Why is the signed device ID required to be part of OTA update ? If device contacts Apple, only Apple can sign a OTA response. Given a nonce is involved, the device could tell its for the request just sent. Then why is the signed device ID needed for personalizing the OTA update ?

2) They mention copying old iOS to different phone - do they imply via some USB interface or other ? How can this be accomplished ?


The iOS firmware installation process over USB requires "SHSH blobs" which contain the iOS version string and unique device ID and which are then signed by Apple. The iOS bootloader requires that signature before it will load and execute that code. I assume OTA updates are similar and as a result also require SHSH blobs.

Why is the signed device ID necessary? Ask Apple, not us. Most likely it's a defense mechanism against downgrading to vulnerable firmwares (for jailbreaking) since you need the matching SHSH blobs which Apple no longer signs if a new firmware release is available. This is actually mentioned in your quote, they want so that "an old iOS version from one device can’t be copied to another".

  • The reason is to prevent attacks against iOS devices similar to the FBI case in CA. Otherwise they could in theory have downgraded the phone's OS.
    – Ramhound
    Mar 27 '16 at 2:55
  • @Ramhound downgrading firmware can be allowed securely, by allowing downgrading but erasing the crypto keys beforehand. So the user is free to downgrade but will loose their keys, so downgrading in order to steal the keys still won't work Jun 28 '16 at 7:01
  • I already know that.
    – Ramhound
    Jun 28 '16 at 11:32

1) I believe the device ID is required so you can't take the OTA update and put it on another device.

2) Or by trying to MITM the OTA update by replaying Apple's response.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.