Защитите файл sqlite на IOS - PullRequest
1 голос
/ 23 июня 2011

У меня есть данные, которые я потратил месяцы на сбор, очистку и структурирование.Приложение, которое я создаю, сможет искать данные.До сих пор я храню файл sqlite в файловой системе пользователя, а не на удаленном сервере, потому что я хочу, чтобы результаты поиска были мгновенными, чтобы пользователи могли получать наилучшие результаты независимо от скорости их соединения.

Но ятолько что обнаружил, что кто-то с взломанным телефоном может просто «украсть» хранилище информации в моем файле sqlite.

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

Можно ли как-нибудь предотвратить это?

Спасибо за помощь!

Ответы [ 2 ]

6 голосов
/ 23 июня 2011

То, что вы хотите, это форма DRM. В конечном счете, DRM не может помешать выделенному злоумышленнику получить доступ к базовым данным. Теоретически, все, к чему пользователь может получить доступ, может быть использовано вредоносным приложением.

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

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

0 голосов
/ 31 октября 2014

Вы можете использовать Зашифрованные данные ядра для защиты ваших данных.

Эта библиотека фактически расшифровывает вашу базу данных во время выполнения.Вы можете оставить свой PASSCODE в вашем .m файле.(Я предполагаю, что трудно получить PASSCODE в жестком коде из объектного файла)

И, как сказал @jonathan, если кто-то захочет получить ваши данные, он получит.

РЕДАКТИРОВАТЬ:

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

Возможно ли перепроектировать мое приложение для iPhone?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...