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