Difference between revisions of "GID Key"

From The iPhone Wiki
Jump to: navigation, search
(Note about 3.0GM/3.0 pseudo GID Key.)
(adding quote from apple document)
Line 1: Line 1:
The '''GID-key''' (device group ID key) is the AES 256-bit key shared by all devices with the same application processor. This key differs between each SoC. (i.e. The [[S5L8900]] has a different key from the [[S5L8930]].)
+
The '''GID key''' (device group ID key) is the [https://en.wikipedia.org/wiki/Advanced_Encryption_Standard AES (Advanced Encryption Standard)] 256-bit key shared by all devices with the same application processor. This key differs between each [https://en.wikipedia.org/wiki/System_on_a_chip SoC (System on a Chip)] - in other words, the [[S5L8900]] (chip for iPhone 3G and other devices of that generation) has a different key from the [[S5L8930]] (A4 chip for iPhone 4, iPod touch 4g, etc.).
   
  +
Apple explains GID keys in its official [https://www.apple.com/br/privacy/docs/iOS_Security_Guide_Oct_2014.pdf iOS security guide] (page 9):
It was used to generate [[AES Keys#Key 0x837|Key 0x837]].
 
  +
<blockquote>"The device’s unique ID (UID) and a device group ID (GID) are AES 256-bit keys fused (UID) or compiled (GID) into the application processor during manufacturing. No software or firmware can read them directly; they can see only the results of encryption or decryption operations performed using them. The UID is unique to each device and is not recorded by Apple or any of its suppliers. The GID is common to all processors in a class of devices (for example, all devices using the Apple A8 processor), and is used as an additional level of protection when delivering system software during installation and
  +
restore. Integrating these keys into the silicon helps prevent them from being tampered with or bypassed, or accessed outside the AES engine. The UID and GID are also not available via JTAG or other debugging interfaces."</blockquote>
   
  +
It was used to generate [[AES Keys#Key 0x837|AES Key 0x837]]. See [[AES Keys]] and [[KBAG]].
In [[iOS]] 3.0GM/3.0, a pseudo GID Key was used. This allowed getting [[Firmware Keys|firmware decryption keys]] for these firmwares only without the device and with tools such as GitKeys or OpenSSL.
 
  +
  +
In [[iOS]] 3.0GM/3.0, a pseudo GID Key was used. This allowed getting [[Firmware Keys|firmware decryption keys]] for only these firmwares without the device and with tools such as GitKeys or OpenSSL.
   
 
== Attack ==
 
== Attack ==
Line 12: Line 16:
 
* [http://www.cl.cam.ac.uk/~sps32/ECRYPT2011_2.pdf Side-channel attacks: new directions and horizons (Part 2)]
 
* [http://www.cl.cam.ac.uk/~sps32/ECRYPT2011_2.pdf Side-channel attacks: new directions and horizons (Part 2)]
 
* [http://www.cl.cam.ac.uk/~sps32/qvl_proj.html Research project: developing new technology for efficient side-channel analysis]
 
* [http://www.cl.cam.ac.uk/~sps32/qvl_proj.html Research project: developing new technology for efficient side-channel analysis]
 
== See also ==
 
* [[AES Keys]]
 
   
 
[[Category:Decryption]]
 
[[Category:Decryption]]

Revision as of 08:36, 10 March 2015

The GID key (device group ID key) is the AES (Advanced Encryption Standard) 256-bit key shared by all devices with the same application processor. This key differs between each SoC (System on a Chip) - in other words, the S5L8900 (chip for iPhone 3G and other devices of that generation) has a different key from the S5L8930 (A4 chip for iPhone 4, iPod touch 4g, etc.).

Apple explains GID keys in its official iOS security guide (page 9):

"The device’s unique ID (UID) and a device group ID (GID) are AES 256-bit keys fused (UID) or compiled (GID) into the application processor during manufacturing. No software or firmware can read them directly; they can see only the results of encryption or decryption operations performed using them. The UID is unique to each device and is not recorded by Apple or any of its suppliers. The GID is common to all processors in a class of devices (for example, all devices using the Apple A8 processor), and is used as an additional level of protection when delivering system software during installation and restore. Integrating these keys into the silicon helps prevent them from being tampered with or bypassed, or accessed outside the AES engine. The UID and GID are also not available via JTAG or other debugging interfaces."

It was used to generate AES Key 0x837. See AES Keys and KBAG.

In iOS 3.0GM/3.0, a pseudo GID Key was used. This allowed getting firmware decryption keys for only these firmwares without the device and with tools such as GitKeys or OpenSSL.

Attack

It would be great to perform some sort of side channel attack on this to extract it: