2015-11-25 2 views
0

Я понимаю, что кто-то мог понять некоторые вопросы, я по поводу Data Protection функции:защиты данных, брелок и SQLite файлов Core Data в

  1. ли нужно/рекомендуется включить Data Protection для шифрования и защиты SQLite файлы, управляемые Core Data? Если да, то что мне делать, чтобы шифровать и защищать такие файлы?

  2. Я последовал за учебник для использования Keychain и он сказал, что полный уровень Data Protection должен быть включен для App ID в Apple Member Center, так что я и сделал. Однако он ничего не сказал о том, чтобы включить Data Protection в проект Xcode, поэтому я этого не сделал. Кажется, что я могу получить доступ к Keychain в моем приложении iOS без проблем, но это выглядит странно ... Должен ли я также включить Data Protection в настройках цели?

Большое спасибо

+0

Кто вы защищаете данные от пользователя устройства или стороннего пользователя, который получает доступ к устройству. – zaph

ответ

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

  2. Если кто-то получает доступ к устройству, которое разблокировано (PIN-код/​​сенсорный идентификатор был удален или аутентифицирован), то они могут делать практически все, что захотят, с устройством (брелок и автоматически зашифрованные данные) t остановить их (в лучшем случае вы можете замедлить их).

Единственное, что вы можете сделать, на самом деле явно шифровать данные, которые требует его с помощью ключа, который явно введенную пользователем каждый раз, когда вам нужно для шифрования/дешифрования. Этот ключ можно временно сохранить в памяти, но вы никогда не сможете записать его на диск. Таким образом, пользователь должен ввести ключ для использования данных, и ключ может исходить только от пользователя.

+0

Спасибо. Я действительно хотел бы защитить все данные в одной из моих моделей данных Core Data, поскольку он хранит конфиденциальные данные пользователя. Итак, как я могу зашифровать соответствующие файлы 'SQLite'? Я не нахожу никакого учебника по этому поводу ... – AppsDev

+0

Даже с Google для 'шифрования базы данных данных SQL? – Wain

+0

Спасибо, я посмотрю, но я считаю, что не использовать 'Data Protection' ... – AppsDev