
Glossary
Term | Definition |
---|---|
Address Space Layout Randomization (ASLR) | A technique employed by iOS to make the successful exploitation by a software bug much more difficult. By ensuring memory addresses and offsets are unpredictable, exploit code can’t hard code these values. In iOS 5 or later, the position of all system apps and libraries are also randomized, along with all third-party apps compiled as position-independent executables. |
AES | Advanced Encryption Standard. |
AES crypto engine | A dedicated hardware component that implements AES. |
AES-XTS | A mode of AES defined in IEEE 1619-2007 meant to work for encrypting storage media. |
APFS | Apple File System. |
Apple Identity Service (IDS) | Apple’s directory of iMessage public keys, APNs addresses, and phone numbers and email addresses that are used to look up the keys and device addresses. |
Apple Push Notification service (APNs) | A worldwide service provided by Apple that delivers push notifications to iOS and iPadOS devices. |
Apple Security Bounty | A reward given by Apple to researchers who report a vulnerability that affects the latest shipping operating systems and, where relevant, the latest hardware. |
Boot Camp | Boot Camp supports the installation of Microsoft Windows on a Mac. |
Boot Progress Register (BPR) | A set of SoC hardware flags that software can use to track the boot modes the device has entered, such as DFU mode and Recovery mode. Once a Boot Progress Register flag is set, it can’t be cleared. This allows later software to get a trusted indicator of the state of the system. |
Boot ROM | The very first code executed by a device’s processor when it first boots. As an integral part of the processor, it can’t be altered by either Apple or an attacker. |
CKRecord | A dictionary of key-value pairs that contain data saved to or fetched from CloudKit. |
Data Protection | File and Keychain protection mechanism for iOS. It can also refer to the APIs that apps use to protect files and Keychain items. |
Data Vault | A mechanism—enforced by the kernel—to protect against unauthorized access to data regardless of whether the requesting app is itself sandboxed. |
Device Firmware Upgrade (DFU) mode | A mode in which a device’s Boot ROM code waits to be recovered over USB. The screen is black when in DFU mode, but upon connecting to a computer running iTunes, the following prompt is presented: “iTunes has detected an (iPad, iPhone, or iPod touch) in Recovery mode. The user must restore this (iPad, iPhone, or iPod touch) before it can be used with iTunes.” |
DMA | Direct memory access enables hardware subsystems to access main memory. |
Elliptic Curve Diffie-Hellman Exchange (ECDHE) | Elliptic Curve Diffie-Hellman Exchange with ephemeral keys. ECDHE allows two parties to agree on a secret key in a way that prevents the key from being discovered by an eavesdropper watching the messages between the two parties. |
ECDSA | A digital signature algorithm based on elliptic curve cryptography. |
Effaceable Storage | A dedicated area of NAND storage, used to store cryptographic keys, that can be addressed directly and wiped securely. While it doesn’t provide protection if an attacker has physical possession of a device, keys held in Effaceable Storage can be used as part of a key hierarchy to facilitate fast wipe and forward security. |
eSPI | Enhanced Serial Peripheral Interface bus for synchronous serial communication. |
Exclusive Chip Identification (ECID) | A 64-bit identifier that’s unique to the processor in each iOS device. When a call is answered on one device, ringing of nearby iCloud-paired devices is terminated by briefly advertising through Bluetooth Low Energy (BLE) 4.0. The advertising bytes are encrypted using the same method as Handoff advertisements. Used as part of the personalization process, it’s not considered a secret. |
File system key | The key that encrypts each file’s metadata, including its class key. This is kept in Effaceable Storage to facilitate fast wipe, rather than confidentiality. |
Group ID (GID) | Like the UID, but common to every processor in a class. |
Hardware security module (HSM) | A specialized tamper-resistant computer that safeguards and manages digital keys. |
iBoot | Code that loads XNU, as part of the secure boot chain. Depending on the SoC generation, iBoot may be loaded by LLB or directly by the boot ROM. |
Integrated circuit (IC) | Also known as a microchip. |
Joint Test Action Group (JTAG) | Standard hardware debugging tool used by programmers and circuit developers. |
Keybag | A data structure used to store a collection of class keys. Each type (user, device, system, backup, escrow, or iCloud Backup) has the same format. A header containing: Version (set to four in iOS 12 or later), Type (system, backup, escrow, or iCloud Backup), Keybag UUID, an HMAC if the keybag is signed, and the method used for wrapping the class keys—tangling with the UID or PBKDF2, along with the salt and iteration count. A list of class keys: Key UUID, Class (which file or Keychain Data Protection class), wrapping type (UID-derived key only; UID-derived key and passcode-derived key), wrapped class key, and a public key for asymmetric classes |
Keychain | The infrastructure and a set of APIs used by iOS and third-party apps to store and retrieve passwords, keys, and other sensitive credentials. |
Key wrapping | Encrypting one key with another. iOS uses NIST AES key wrapping, in accordance with RFC 3394. |
Low-Level Bootloader (LLB) | On Mac computers with a two-stage boot architecture, code that’s invoked by the Boot ROM, and in turn loads iBoot, as part of the secure boot chain. |
Media key | Part of the encryption key hierarchy that helps provide for a secure and instant wipe. On iOS, iPadOS, tvOS, and watchOS, the media key wraps the metadata on the data volume (and thus without it access to all per-file keys is impossible, rendering files protected with Data Protection inaccessible). On macOS, the media key wraps the keying material, all metadata, and data on the FileVault protected volume. In either case wipe of the media key renders encrypted data inaccessible. |
Memory controller | The subsystem in the SoC that controls the interface between the SoC and its main memory. |
Mobile device management (MDM) | A service that lets the user remotely manage enrolled devices. Once a device is enrolled, the user can use the MDM service over the network to configure settings and perform other tasks on the device without user interaction. |
NAND | Nonvolatile flash memory. |
Per-file key | The 256-bit key used to encrypt a file on the file system using AES128-XTS, where the 256-bit is split to provide both the 128-bit tweak key and the 128-bit cipher key. The per-file key is wrapped by a class key and is stored in the fileʼs metadata. |
Provisioning profile | A plist signed by Apple that contains a set of entities and entitlements allowing apps to be installed and tested on an iOS device. A development Provisioning Profile lists the devices that a developer has chosen for ad hoc distribution, and a distribution Provisioning Profile contains the app ID of an enterprise-developed app. |
Recovery mode | Recovery mode is used to restore an iOS device or Apple TV if iTunes (for iOS devices-only) doesn’t recognize the user’s device or says it’s in Recovery mode, the screen is stuck on the Apple logo for several minutes with no progress bar, or the connect to iTunes screen appears. |
Ridge flow angle mapping | A mathematical representation of the direction and width of the ridges extracted from a portion of a fingerprint. |
Software seed bits | Dedicated bits in the Secure Enclave AES engine that get appended to the UID when generating keys from the UID. Each software seed bit has a corresponding lock bit. The Secure Enclave Boot ROM and OS can independently change the value of each software seed bit as long as the corresponding lock bit hasn’t been set. Once the lock bit is set, neither the software seed bit nor the lock bit can be modified. The software seed bits and their locks are reset when the Secure Enclave reboots. |
SSD controller | Hardware subsystem that manages the storage media (solid-state drive). |
System Coprocessor Integrity Protection (SCIP) | System coprocessors are CPUs on the same SoC as the application processor. |
System on Chip (SoC) | An integrated circuit (IC) that incorporates multiple components into a single chip. The application processor, Secure Enclave and other coprocessors are components of the SoC. |
System Software Authorization | Combines cryptographic keys built into hardware with an online service to ensure that only legitimate software from Apple, appropriate to supported devices, is supplied and installed at upgrade time. |
Tangling | The process by which a user’s passcode is turned into a cryptographic key and strengthened with the device’s UID. This ensures that a brute-force attack must be performed on a given device, and thus is rate limited and can’t be performed in parallel. The tangling algorithm is PBKDF2, which uses AES keyed with the device UID as the pseudorandom function (PRF) for each iteration. |
T2 DFU mode | Device Firmware Upgrade mode for the Apple T2 Security Chip. |
UEFI firmware | Unified Extensible Firmware Interface, a replacement technology for BIOS to connect firmware to the operating system of a computer. |
Uniform Resource Identifier (URI) | A string of characters that identifies a web-based resource. |
Unique ID (UID) | A 256-bit AES key that’s burned into each processor at manufacture. It can’t be read by firmware or software, and is used only by the processor’s hardware AES engine. To obtain the actual key, an attacker would have to mount a highly sophisticated and expensive physical attack against the processor’s silicon. The UID isn’t related to any other identifier on the device including, but not limited to, the UDID. |
XNU | The kernel at the heart of the iOS and macOS operating systems. It’s assumed to be trusted, and enforces security measures such as code signing, sandboxing, entitlement checking, and ASLR. |