Защита данных для конкретных приложений на iOS

Я видел некоторые документы и видеоролики из WWDC о защите данных в iOS5, и это кажется очень приятным, поскольку он может зашифровать все ваши данные приложения и защитить его при условии, что ваше устройство заблокировано. Однако я вижу две основные проблемы с этим общесистемным механизмом защиты данных:

1- Если кому-то удастся украсть мой iPhone, пока он не заблокирован (что обычно происходит в случае с «кражей и запуском»), он может подключить мой iPhone к ноутбуку и получить доступ к моим незашифрованным данным

2- он заставляет меня определять общесистемный код доступа, который кажется естественным для некоторых пользователей, но все еще громоздкий для многих пользователей. И кажется оскорбительным, что я заставляю своих пользователей определять код доступа на системном уровне, даже несмотря на то, что мое приложение является единственным, где его действительно может потребоваться шифрование. И это еще более оскорбительно, поскольку четырехзначный пароль не является такой хорошей защитой от нападений грубой силы.

Поэтому мой вопрос заключается в следующем. Есть ли простой способ зашифровать мои данные с помощью кода доступа, специфичного для моего приложения, так что каждый раз, когда пользователь запускает приложение, они должны вводить пароль, но им не нужно определять его на системном уровне? Если нет, могу ли я хотя бы подключиться к стандартным API защиты данных с таким кодом доступа, специфичным для приложения? Если нет, стоит ли написать собственный уровень шифрования поверх основных данных, чтобы включить такой сценарий? Или это может быть добавлено к будущим версиям iOS (в этом случае я, вероятно, буду придерживаться общесистемных паролей и теперь обновляю их позже)?

2 Solutions collect form web for “Защита данных для конкретных приложений на iOS”

Несколько api для защиты данных в других операционных системах (например, DPAPI на окнах) позволяют разработчикам предоставлять дополнительную энтропию для процесса деривации ключей, используемого для защиты данных. В этих системах вы можете легко получить эти данные из числа контактов. Без этого вывода вы не сможете сгенерировать ключ и прочитать данные.

Я смотрел и не мог найти ничего подобного на iOS, но я не являюсь объективным программистом c так откровенно, что чтение документации для Apple является для меня болью, и я не выглядел слишком тяжело.

В зависимости от вашего варианта использования вы можете включить защиту данных в своем приложении, но если пользователь не использует код доступа, он не даст вам большой защиты. Я не знаю, будет ли включение этого права принудительным кодом доступа.

Вы можете пойти по пути, требуя, чтобы приложение запускало пин-код, а затем используйте этот пин-код вместе с некоторыми другими данными для генерации ключа для общих криптографических функций.

https://developer.apple.com/reference/security

  • iOS: убедитесь, что пользователь должен ввести пароль перед покупкой In-App
  • iOS MAILCore: как я могу загружать почтовые вложения и показывать их в веб-виде?
  • Текст UITextField не отображается в центре
  • persistentstorecoordinator sqlite код ошибки: 522 'не ошибка'
  • Определить, находится ли точка внутри MKCircle в iPhone sdk ios 7
  • используя веб-просмотр для воспроизведения видео с youtube в приложении iphone
  • Как это работает didReceiveMemoryWarning для iOS 6
  • Установить таблицу таблицы динамических ячеек. Высота содержимого таблицы до высоты стола. Ios
  • Sidemenu с навигационной панелью, которая выводит только контент
  • Поиск потокового видео в ios с использованием Wowza Media Server
  • Как отлаживать «Ошибка Xcode CodeSign: отсутствует файл прав Entitlements.plist» в Xcode 4?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.