Шифрование файла базы данных SQLite на iOS - PullRequest
3 голосов
/ 21 января 2011

Мой клиент спросил меня, возможно ли зашифровать его файл SQLite для iOS.
Я проверил эти два ресурса:

Файл шифрования и дешифрования Sqlite (с использованием базовых данных)
http://support.apple.com/kb/HT4175

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

Запросы Core Data будут выполняться как обычно, верно? Я имею в виду, что нет снижения производительности и другого API.

1 Ответ

4 голосов
/ 21 января 2011

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

В основном, что является причиной, почему стоит зашифровать хранилище?*

Основываясь на цепочке ответов, я думаю, что использование зашифрованного варианта SQLLite по адресу:

http://sqlcipher.net/

является хорошим решением.Это шифрует содержимое базы данных до того, как оно попадает в хранилище, и это здорово.Злоумышленник все еще может найти ключ, используемый в вашем коде для расшифровки базы данных, но любой уровень защиты, который вы можете добавить, поможет.Я не думаю, что вы могли бы использовать это с CoreData (так как он построен поверх встроенных библиотек sqllite), но вы, вероятно, могли бы использовать его с оболочкой, такой как FMDB:

https://github.com/ccgus/fmdb

...