Difference between revisions of "Nonce"

From The iPhone Wiki
Jump to: navigation, search
m (APTicket: 0x24000 Segment Overflow is its proper name.)
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''Nonce''' is a signing method that randomizes Apple's cryptographic signature hash blobs ([[SHSH]] blobs) and is used with the BBTicket (baseband signing ticket) and the APTicket (firmware signing ticket).
+
'''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==
 
==Method==
The device bootloaders (baseband or firmware) 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.
+
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==
 
==Usage==
 
===BBTicket===
 
===BBTicket===
 
*No iPod touch (or iPad Wi-Fi) has been signed with the BBTicket, since by definition it has no baseband.
 
*No iPod touch (or iPad Wi-Fi) has been signed with the BBTicket, since by definition it has no baseband.
*[[M68ap|iPhone 2G]] (bootloaders can be neutered to cancel this signchecks). [[N82ap|iPhone 3G]], [[N88ap|iPhone 3GS]] and [[K48ap|iPad Wi-Fi+3G]] - if the baseband is higher or equal (or just higher on bootloader 3.9 on iPhone 2G). Some bootloaders allow downgrade of the baseband if it is still signed.
+
*[[M68AP|iPhone]] (bootloaders can be neutered to cancel this signchecks). [[N82AP|iPhone 3G]], [[N88AP|iPhone 3GS]] and [[K48AP|iPad Wi-Fi+3G]] - if the baseband is higher or equal (or just higher on bootloader 3.9 on [[M68AP|iPhone]]). Some bootloaders allow downgrade of the baseband if it is still signed.
*[[N90ap|iPhone 4 GSM]], [[N92ap|iPhone 4 CDMA]], [[N94ap|iPhone 4S]], and [[K94ap|iPad 2 Wi-Fi+3G (GSM)]] and [[K95ap|iPad 2 Wi-Fi+CDMA]] - [[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.
+
*[[N90AP|iPhone 4 (iPhone3,1)]], [[N92AP|iPhone 4 (iPhone3,3)]], [[N94AP|iPhone 4S]], and [[K94AP|iPad 2 (iPad2,2)]] and [[K95AP|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===
 
===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 [[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 [[iBoot-240.4]] doesn't require them and they can be avoided with the [[0x24000 Segment Overflow]]
+
*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 [[iBoot-359.3]] 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]] and [[S5L8940]] get APTicket SHSH blobs on 5.0+, and they can not be avoided (except for the [[iBoot-359.3]] with 24kpwn)
+
*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==
 
==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.
+
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.
   
 
==See also==
 
==See also==

Revision as of 03:06, 10 September 2017

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

APTicket

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.

See also