
Безопасность процесса аттестации
Безопасность процесса аттестации
Когда в конфигурации ACME указан ключ с аппаратной привязкой или сервис управления устройствами запрашивает аттестацию DeviceInformation, устройство предпринимает указанные ниже шаги.
Операционная система запрашивает у Secure Enclave ключ с аппаратной привязкой, который называется аттестованным ключом. Для аттестации ACME этот ключ является частью выданного удостоверения сертификата. Для аттестации
DeviceInformationключ генерируется операционной системой и повторно используется при всех последующих аттестацияхDeviceInformationв течение всего срока действия регистрации.Операционная система запрашивает аттестацию оборудования у Secure Enclave. При этом указывается аттестованный ключ, код свежести и список свойств, для которых требуется аттестация.
Secure Enclave генерирует и возвращает новую аттестацию оборудования.
Операционная система отправляет аттестацию оборудования на серверы аттестации Apple.
Серверы аттестации проверяют запрос и либо отказываются выдавать сертификат аттестации, либо генерируют аттестацию, содержащую только те свойства и значения, которые удалось подтвердить. Открытый ключ сертификата аттестации соответствует аттестованному ключу.
Операционная система предоставляет полученный сертификат аттестации сервису управления устройствами или системе ACME.
Подробнее о проверке предоставленного сертификата аттестации см. в статье Проверка аттестации управляемых устройств (на английском языке) на сайте для разработчиков Apple.
Об аттестации оборудования
Когда Secure Enclave генерирует аттестацию оборудования, в нее, помимо прочего, включаются нижеперечисленные элементы.
Идентификаторы материнской платы.
Открытый ключ аттестованного ключа.
Хеши нижеперечисленных программных компонентов, рассчитанные в процессе загрузки и хранящиеся в аппаратных реестрах (аналогично защите запечатыванием ключей):
прошивка Secure Enclave (sepOS);
манифест Image4, прикрепленный к LLB и также содержащий измерения всей остальной прошивки, объединенной в пару с системой;
манифест Image4 операционной системы, содержащий измерение всей остальной прошивки, объединенной в пару с ОС.
Другие значения, уникальные для устройства, например ECID и ChipID.
На компьютерах Mac — данные LocalPolicy.
Код свежести.
Если Secure Enclave не может развернуть аттестованный ключ, Secure Enclave отказывается генерировать аттестацию оборудования. Это гарантирует, что аттестованный ключ привязан к этому конкретному хранилищу Secure Enclave, а все остальные аттестованные свойства связаны с этим ключом.
Все эти элементы объединяются в специальную двоичную структуру и подписываются UIK. Это привязывает аттестацию оборудования к конкретному удостоверению, которое может быть подтверждено аттестациями Apple, позволяя привязывать запрос к конкретной записи об активации, а следовательно — к конкретной записи об изготовлении.
Генерация сертификата аттестации
Получив запрос на аттестацию, серверы аттестации Apple выполняют перечисленные ниже действия.
Выполняется проверка подписи ключа удостоверения пользователя (UIK) в аттестации оборудования. Если подпись недействительна, аттестация не генерируется.
Выполняется поиск значения
ucrtв записях Apple об активации, соответствующих открытому ключу UIK. Если значениеucrtне найдено, аттестация не генерируется.Выполняется поиск значения
scrt, соответствующего значениюucrtданного устройства. Значениеscrt— это сертификат, выдаваемый серверами Apple в процессе изготовления на основе ключа удостоверения процессора (SIK). SIK генерируется хранилищем Secure Enclave, и его открытый ключ передается устройством в процессе изготовления. SIK используется в процессе активации, чтобы подтвердить, что Secure Enclave активирующего устройства владеет соответствующим личным ключом. SIK остается неизменным в течение всего срока работы устройства и служит уникальным идентификатором. С помощьюscrtизвлекается запись об изготовлении устройства. Если эта запись не найдена, аттестация не генерируется.Выполняется проверка того, что идентификаторы аппаратных компонентов соответствуют записям об изготовлении. Если идентификаторы компонентов не соответствуют записям об изготовлении, аттестация не генерируется.
В аттестацию копируется код свежести (при его наличии).
Если это запрошено аттестацией, выполняются нижеперечисленные действия.
Вычисленные хеши программных компонентов сравниваются с известными хешами в записях о сборках. Если найдено совпадение, в аттестацию вставляется официальный номер версии. Если совпадений не найдено, OID пропускается, и его значение остается пустым.
При сборке образов LLB, Secure Enclave или основной операционной системы хеши вычисляются и записываются в базу данных о сборках вместе с официальными номерами версий этих образов.
На основе ECID и ChipID вычисляется UDID.
Если устройство является компьютером Mac, значения запрошенных OID копируются из LocalPolicy в аттестацию.
Практическим результатом этих проверок является то, что аттестация не генерируется, если серверы аттестации не могут определить устройство как подлинное оборудование Apple. Каждое из свойств включается в сертификат аттестации, только если серверы аттестации могут подтвердить значение этого свойства, за исключением кода свежести, который включается в сертификат без проверок.