Обзор защиты данных
Apple использует специальную технологию, называемую защитой данных, чтобы защитить данные во флеш-памяти на устройствах с системой на кристалле Apple, таких как iPhone, iPad, Apple Watch, Apple TV и компьютер Mac с чипом Apple. Благодаря защите данных устройство может реагировать на типичные события, такие как входящие телефонные вызовы, вместе с тем обеспечивая более высокий уровень шифрования данных пользователей. Некоторые системные приложения, такие как Сообщения, Почта, Календарь, Контакты и Фото, а также медданные, используют технологию защиты данных по умолчанию, а приложения сторонних разработчиков получают ее автоматически.
Реализация
Технология защиты данных реализована путем построения и контроля иерархии ключей, и она основана на технологиях аппаратного шифрования, встроенных в устройства Apple. Защита данных организована на уровне файлов: каждому файлу назначается один из классов защиты, а доступность определяется разблокированием ключей класса. Файловая система Apple (APFS) позволяет дополнительно разделять ключи по диапазонам (различные фрагменты файла могут иметь разные ключи).
Каждый раз, когда в томе данных создается файл, защита данных создает новый 256-битный ключ (ключ файла) и передает его аппаратному AES-модулю, который использует этот ключ для шифрования файла при записи во флеш-память. На устройствах с системой на кристалле A14 и A15 и устройствах семейства M1 для шифрования используется AES-256 в режиме XTS, где 256-битный ключ для каждого файла проходит через функцию формирования ключа (специальное издание NIST 800-108) для получения 256-битной поправки и 256-битного ключа шифрования. Поколения устройств с системами на кристалле от A9 до A13, S5, S6 и S7 используют AES-128 в режиме XTS, в котором 256-битный ключ файла разделяется для получения 128-битной поправки и 128-битного ключа шифрования.
На компьютере Mac с чипом Apple для технологии защиты данных по умолчанию установлен класс C (см. раздел Классы защиты данных), однако при этом используется ключ тома, а не ключ диапазона или ключ файла. Фактически это эффективно воспроизводит модель безопасности FileVault для защиты пользовательских данных. Однако, чтобы привязать иерархию ключей шифрования к паролю и получить полную защиту, пользователи все равно должны включить FileVault. Разработчики могут выбрать более высокий класс защиты, в котором используется ключ файла или ключ диапазона.