The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Nonce
Nonce is a signing method that randomizes Apple's cryptographic signature hash blobs (SHSH blobs) and is used with the BBTicket (baseband signing ticket), the APTicket (firmware signing ticket), and SEP (Secure Enclave).
Method
The device bootloaders (baseband, firmware, and SEP) generate a random number at the restore, then send them to iTunes which sends them to Apple. Then Apple sends the APTicket / BBTicket SHSH certificate with the number generated. This level is the most critical: the number within the certificate is matched to the number generated on device, and if they match iTunes will prepare the matched certificate and finally will stitch the randomized blobs to the firmware. If the blobs don't match the restore will fail and the bootloaders will reject the certificate.
Usage
BBTicket
- No iPod touch (or iPad Wi-Fi) has been signed with the BBTicket, since by definition it has no baseband.
- iPhone (bootloaders can be neutered to cancel this signchecks). iPhone 3G, iPhone 3GS and iPad Wi-Fi+3G - if the baseband is higher or equal (or just higher on bootloader 3.9 on iPhone). Some bootloaders allow downgrade of the baseband if it is still signed.
- iPhone 4 (iPhone3,1), iPhone 4 (iPhone3,3), iPhone 4S, and iPad 2 (iPad2,2) and iPad 2 (iPad2,3) - AT+XNONCE - restores the baseband only if Apple is still signing it. On bootloaders 2.8, 2.13, Trek and Phoenix, both the AT+XNONCE and the "higher or equal" checks happen.
APTicket
- Devices with the S5L8900 get SHSH blobs without APTicket on 4.0 - 4.2.1, even though they are not required and can be avoided with Pwnage+Pwnage 2.0.
- Devices with the S5L8720 get SHSH blobs without APTicket from 3.1.1 and on, even though Bootrom 240.4 doesn't require them and they can be avoided with the 0x24000 Segment Overflow
- Devices with the S5L8920, S5L8922, S5L8930 and S5L8940 got SHSH blobs without APTicket between 3.0 - 4.3.5, and they can not be avoided (except for the Bootrom 359.3 with the 0x24000 Segment Overflow)
- Devices with the S5L8920, S5L8922, S5L8930, S5L8940, S5L8942, S5L8945, S5L8950, and S5L8955 get APTicket SHSH blobs on 5.0+. The SHSH requirement can not be avoided (except for the Bootrom 359.3 with 0x24000 Segment Overflow), and the APTicket requirement can only be avoided on devices vulnerable to the limera1n Exploit, or if the device is on iOS 5.1.1 or lower.
- Devices with the S5L8960, S5L8965, T7000, T7001, S7002, S8000, S8001, S8003, T8010, and T8011 get APTickets exclusively (with SepNonce, which also needs to match) and they cannot be avoided, but can be utilized with the prometheus method.
Jailbreak difficulties
With nonce signatures, signatures can't be cached, because signatures will not match if they have been reused. In other words, the widely used replay attack is no longer possible unless the nonce(s) (SepNonce + ApNonce on 64 bit, ApNonce only on 32 bit) the device generates matches the one on the APTicket.