![](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/ru_RU/52d714626638d3391623c853be0c593b.png)
Технология защиты запечатыванием ключей (SKP)
На устройствах Apple, которые поддерживают защиту данных, ключ шифрования ключей (KEK) защищен (или запечатан) измерениями программного обеспечения в системе, а также привязкой к UID, который доступен только из Secure Enclave. На компьютере Mac с чипом Apple для дополнительной защиты ключа шифрования ключей (KEK) используется информация о политике безопасности системы, поскольку macOS поддерживает критически важные изменения политики безопасности (например, отключение безопасной загрузки или SIP), которые не поддерживаются на других платформах. На компьютере Mac с чипом Apple эта защита распространяется на ключи FileVault, поскольку система FileVault реализована с использованием технологии защиты данных (класс C).
Ключ, полученный в результате связывания пароля пользователя, долгосрочного ключа SKP и аппаратного ключа 1 (UID из Secure Enclave), называется ключом на основе пароля. Этот ключ используется для защиты пользовательского хранилища ключей (на всех поддерживаемых платформах) и ключа KEK (только в macOS), а затем включает биометрическую или автоматическую разблокировку с помощью других устройств, таких как часы Apple Watch.
![Процесс защиты запечатыванием ключей для Mac с чипом Apple.](https://help.apple.com/assets/6537FB06A074DBB5E802EA07/6537FB31280588A5490B6E1D/ru_RU/242de57780ca0d788d61277f17d25905.png)
Монитор загрузки Secure Enclave фиксирует измерение загружаемой операционной системы Secure Enclave. Когда загрузочное ПЗУ процессора приложений измеряет манифест Image4, добавленный в низкоуровневый загрузчик, этот манифест также содержит измерение всех других загруженных парных системных прошивок. В политике LocalPolicy содержатся основные конфигурации безопасности для macOS, которые загружены. Кроме того, в ней содержится поле nsih
, в котором указан хеш манифеста Image4 macOS. Манифест Image4 в macOS содержит измерения всех парных прошивок macOS и основных объектов загрузки macOS, таких как загрузочная коллекция ядра или корневой хеш подписанного системного тома (SSV).
Если злоумышленнику удастся неожиданно изменить любой из измеренных компонентов прошивки, программного обеспечения или конфигурации безопасности, это приведет к изменению измерений, которые хранятся в реестрах оборудования. В результате изменения измерений корневой ключ измерения системы (SMDK), сгенерированный криптографическим оборудованием, будет иметь другое значение, что сломает печать, наложенную на иерархию ключей. В результате этого станет невозможным доступ к ключу измерения системы устройства (SMDK), что, в свою очередь, сделает невозможным доступ к ключу KEK и к данным.
Однако, когда система не подвергается атаке, в ней должны быть установлены подлинные обновления программного обеспечения, которые вносят соответствующие изменения в измерения прошивки и в поле nsih
политики LocalPolicy с учетом новых измерений macOS. В других системах, в которых предпринимается попытка внедрить измерения системы, но в которых отсутствует проверенный источник доверия, пользователю нужно выключить систему безопасности, обновить прошивку, а затем заново включить систему безопасности, чтобы можно было зафиксировать новое базовое измерение. Это значительно повышает риск стороннего вмешательства в прошивку во время обновления программного обеспечения. Дополнительная защита системы обеспечивается в результате того, что в манифесте Image4 содержатся все необходимые измерения. Оборудование, которое расшифровывает SMDK с помощью SMRK, когда во время обычной загрузки измерения совпадают, также может зашифровать SMDK для предполагаемого будущего SMRK. Путем указания измерений, которые ожидаются после обновления программного обеспечения, оборудование может зашифровать SMDK, доступ к которому имеется в текущей операционной системе, чтобы доступ сохранился в будущей операционной системе. Аналогично, когда клиент законным образом вносит изменения в настройки безопасности в политике LocalPolicy, SMDK должен быть зашифрован для будущего SMRK на основе измерения для LocalPolicy, которое низкоуровневый загрузчик вычисляет при следующей перезагрузке.