
Защита данных на устройствах Apple
На устройствах Apple с технологией защиты данных каждый файл защищен уникальным ключом файла (или диапазона). Ключ, который защищен с помощью алгоритма защиты ключей NIST AES, дополнительно защищается одним из нескольких ключей класса в зависимости от того, доступ к какому файлу нужно получить. Затем защищенный ключ файла сохраняется в метаданных файла.
Устройства с файловой системой APFS могут поддерживать клонирование файлов (технология копирования при записи обеспечивает копирование с нулевыми затратами). Если файл клонируется, каждая из половин клона получает новый ключ для приема входящих операций записи, поэтому новые данные записываются на носитель с новым ключом. Со временем файл может разделиться на несколько диапазонов (или фрагментов), каждый из которых связан с отдельным ключом. Однако все диапазоны, составляющие файл, будут защищены одним и тем же ключом класса.
При открытии файла выполняется расшифровка его метаданных с помощью ключа файловой системы, что приводит к раскрытию обернутого ключа файла и класса его защиты. Ключ файла (или диапазона) расшифровывается с помощью ключа класса, а затем передается аппаратному модулю AES, который выполняет расшифровку файла при чтении из флеш-памяти. Вся обработка защищенного ключа файла выполняется в Secure Enclave; ключ файла никогда не раскрывается непосредственно процессору приложений. Во время загрузки компьютера процессор Secure Enclave согласовывает динамический ключ с модулем AES. Ключи файла расшифровываются в Secure Enclave, а затем снова защищаются с помощью динамического ключа и отправляются обратно процессору приложений.
Метаданные всех файлов шифруются случайным ключом тома, который создается при первой установке операционной системы, а также при использовании функции «Стереть контент и настройки». Этот ключ зашифрован и обернут внутрь дополнительного ключа для долгосрочного хранения, который известен только Secure Enclave. Ключ обертывания изменяется каждый раз, когда пользователь стирает данные на устройстве. В системах на кристалле A9 и новее Secure Enclave использует энтропийное кодирование, системы антиповтора и другие методы, чтобы обеспечивать возможности стирания и защиты ключа обертывания. Подробнее см. в разделе Защищенное энергонезависимое хранилище.
Аналогично ключам файлов и диапазонов, ключ метаданных тома данных никогда не раскрывается процессору приложений напрямую; вместо этого Secure Enclave предоставляет динамическую версию для каждой загрузки. Во время хранения зашифрованный ключ файловой системы дополнительно оборачивается внутрь «стираемого ключа», хранящегося в стираемом накопителе, или внутрь ключа для обертывания ключа носителя, защищенного механизмом антиповтора Secure Enclave. Этот ключ не обеспечивает дополнительную конфиденциальность данных. Он предназначен для быстрого стирания по запросу (запрос может быть инициирован пользователем с помощью функции «Стереть контент и настройки» или администратором с помощью команды удаленного стирания от сервиса управления устройствами, Microsoft Exchange ActiveSync или iCloud).
Важно! Такой способ стирания ключа делает все файлы криптографически недоступными.
Содержимое файла может шифроваться с помощью одного или нескольких ключей файла (или диапазонов), которые защищаются с помощью ключа класса и сохраняются в метаданных файла, которые, в свою очередь, шифруются с помощью ключа файловой системы. Ключ класса защищен аппаратным UID. Кроме того, ключи некоторых классов защищены код‑паролем пользователя. Такая иерархия обеспечивает и гибкость, и эффективность. Например, для изменения класса файла достаточно еще раз защитить его с помощью ключа файла, а изменение код‑пароля приводит просто к повторной защите ключа класса.