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