

An SHA384 hash of the AuxKC Image4 data structure and the kext receipt are included in the LocalPolicy. This receipt contains the list of kexts that were actually included in the AuxKC, because the set could be a subset of the UAKL if banned kexts were encountered. As part of the AuxKC construction, a kext receipt is also generated. This approach allows Permissive Security flows for developers or users who aren’t part of the Apple Developer Program to test kexts before they are signed.Īfter the AuxKC is created, its measurement is sent to the Secure Enclave to be signed and included in an Image4 data structure that can be evaluated by iBoot at startup. If SIP is disabled, the kext signature isn’t enforced. If System Integrity Protection (SIP) is enabled, the signature of each kext is verified before being included in the AuxKC.

The kernel management daemon ( kmd) is then responsible for validating only those kexts found in the UAKL for inclusion into the AuxKC. The authorization used for the above flow is also used to capture an SHA384 hash of the user-authorized kext list (UAKL) in the LocalPolicy. The combination of the 1TR and password requirement makes it difficult for software-only attackers starting from within macOS to inject kexts into macOS, which they can then exploit to gain kernel privileges.Īfter a user authorizes kexts to load, the above User-Approved Kernel Extension Loading flow is used to authorize the installation of kexts. This action also requires entering an administrator password to authorize the downgrade. Kexts must be explicitly enabled for a Mac with Apple silicon by holding the power button at startup to enter into One True Recovery (1TR) mode, then downgrading to Reduced Security and checking the box to enable kernel extensions. Kernel extensions in a Mac with Apple silicon

Protecting user data in the face of attack.Protecting keys in alternate boot modes.Encryption and Data Protection overview.UEFI firmware security in an Intel-based Mac.Additional macOS system security capabilities.recoveryOS and diagnostics environments.Contents of a LocalPolicy file for a Mac with Apple silicon.LocalPolicy signing-key creation and management.Boot process for iOS and iPadOS devices.Secure intent and connections to the Secure Enclave.Face ID, Touch ID, passcodes, and passwords.
