Процесс загрузки для iPhone и iPad
На каждом этапе загрузки используются компоненты, которые подписаны Apple с использованием криптографических методов для гарантии целостности и того, чтобы загрузка продолжалась только после проверки цепочки доверия. Среди этих компонентов — загрузчики системы, ядро, расширения ядра и прошивка для немодулированной передачи по сотовой сети. Эта безопасная последовательность загрузки предназначена для того, чтобы убедиться, что в низкоуровневое программное обеспечение не были внесены изменения.
Сразу после включения iPhone и iPad процессор приложений исполняет код загрузочного ПЗУ, которое доступно только для чтения. Этот постоянный код, называемый аппаратным корнем доверия, закладывается в процессе изготовления чипа и считается безоговорочно надежным. Код загрузочного ПЗУ содержит открытый ключ корневого центра сертификации (ЦС) Apple. Перед выполнением загрузки устройство использует этот ключ, чтобы проверить, подписан ли загрузчик системы iBoot компанией Apple. Этот этап является первым звеном цепочки доверия, каждое звено в которой проверяет, подписано ли следующее звено компанией Apple. Когда iBoot завершает свои задачи, он проверяет и запускает ядро iOS или iPadOS. На устройствах с A9 или более старым процессором серии А добавляется еще один этап: загрузочное ПЗУ загружает и проверяет низкоуровневый загрузчик, который в свою очередь загружает и проверяет iBoot.
В случае неудачи при проверке следующих этапов дальнейшие действия системы зависят от оборудования.
Boot ROM не может загрузить LLB (на более старых устройствах): режим обновления прошивки устройства (DFU).
Низкоуровневый загрузчик или iBoot: режим восстановления.
В любом из этих случаев необходимо подключить устройство к Finder (в macOS 10.15 и новее) или iTunes (в macOS 10.14 и более ранних версиях) через USB и восстановить заводские настройки.
Для ограничения доступа к пользовательским данным в разных режимах сопроцессор Secure Enclave использует реестр процесса загрузки (BPR), который обновляется перед переходом в следующие режимы:
Режим обновления прошивки устройства (DFU). Устанавливается загрузочным ПЗУ на устройствах с системой на кристалле Apple A12 или новее.
Режим восстановления. Устанавливается iBoot на устройствах с системой на кристалле Apple A10, S2 или новее.
На устройствах с поддержкой сотовой связи подсистема немодулированной передачи по сотовой сети запускает дополнительный процесс безопасной загрузки с использованием подписанного программного обеспечения и ключей, проверенных процессором немодулированной передачи.
Secure Enclave также выполняет безопасную загрузку, которая проверяет, что специализированное программное обеспечение (sepOS) проверено и подписано компанией Apple.