Включить шифрование на диске iOS

Для моего приложения только для iOS 6+ я хотел бы включить шифрование на диске, предлагаемое из iOS.

Я прочитал это руководство и я видел видео «Защита данных пользователя» на WWDC 2012 (сеанс 714). Однако я не мог заставить его работать.

Вот шаги, которые я выполнил:

1- В Центре разработки для iOS я создал новый идентификатор приложения с:

Включить защиту данных

2- В Xcode я добавил файл прав с ключом:

Права Xcode

3- На устройстве я активировал блокировку паролем.

Если я не ошибаюсь, это должно быть все. Теперь я ожидаю, что пока устройство (в моем случае: iPhone 5) заблокировано, защищенные файлы недоступны. Но... если я использую iExplorer, я могу легко получить доступ к файлам, созданным моим приложением, даже когда устройство заблокировано. Но это именно то, чего я хочу избежать. Я что-то забыл?


person Dev    schedule 28.02.2013    source источник
comment
Более новое руководство для него может быть по адресу developer.apple.com/documentation/uikit/ core_app/   -  person Cœur    schedule 25.03.2019


Ответы (2)


Причина, по которой вы можете получить доступ к файлам без разблокировки устройства, заключается в том, что была создана сумка для ключей условного депонирования. Это объясняется в Руководстве по безопасности iOS (pdf) от Apple:

Сумка для ключей условного депонирования используется для синхронизации iTunes и управления мобильными устройствами (MDM). Этот набор ключей позволяет iTunes выполнять резервное копирование и синхронизацию, не требуя от пользователя ввода пароля, а также позволяет серверу MDM удаленно сбрасывать пароль пользователя. Он хранится на компьютере, который используется для синхронизации с iTunes, или на сервере MDM, который управляет устройством.

Пакет ключей Escrow улучшает взаимодействие с пользователем во время синхронизации устройств, что потенциально требует доступа ко всем классам данных. Когда заблокированное паролем устройство впервые подключается к iTunes, пользователю предлагается ввести пароль. Затем устройство создает сумку для ключей условного депонирования и передает ее хосту. Сумка для ключей Escrow содержит точно такие же ключи класса, которые используются на устройстве, защищенные вновь сгенерированным ключом. Этот ключ необходим для разблокировки сумки для ключей условного депонирования и хранится на устройстве в классе «Защищено до проверки подлинности первого пользователя». Вот почему пароль устройства необходимо ввести перед резервным копированием с помощью iTunes в первый раз после перезагрузки.

Если вы перезагрузите телефон, вы не сможете получить доступ к файлам, не разблокировав его один раз.

person jatoben    schedule 28.02.2013
comment
Похоже, ссылка, приведенная выше, битая. Обновленная ссылка: apple.com/business/docs/iOS_Security_Guide.pdf. - person Dmitry Varavkin; 21.04.2015

Если вы хотите, чтобы эти файлы были доступны только, когда устройство разблокировано (+ около 10 секунд льготного периода), установите для защиты файлов значение NSFileProtectionComplete. Обязательно реализуйте методы делегата, чтобы знать, когда данные станут [не]доступными.

person Timur Kuchkarov    schedule 22.03.2013