безопасность данных iphone - PullRequest
       0

безопасность данных iphone

1 голос
/ 06 ноября 2010

Я новичок в IPhone Dev,

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

Спасибо заранее;

edit : если я зашифрую данные и расшифрую их во время выполнения, я потеряю:

  • поиск с использованием SQL
  • производительности

Ответы [ 3 ]

0 голосов
/ 06 ноября 2010

Вы смотрели на токийский кабинет?Там может быть что-то, что вы могли бы сделать через хранение двоичных объектов.(... просто мысль.)

0 голосов
/ 10 июня 2012

Взгляните на http://sqlcipher.net/, который использует AES (прозрачно) для хранения данных в SQLite - он должен быть достаточно сильным для вашего варианта использования.

Остальное зависит от вашей ситуации:

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

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

Следует помнить одну особую ситуацию - смена пароля.Это можно сделать с помощью повторного импорта данных в новую зашифрованную базу данных.Суть:

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

Надеюсь, это поможет ...

0 голосов
/ 06 ноября 2010

Поскольку база данных SQLite - это просто файл в папке / Documents - вы можете расшифровать его при запуске приложения и повторно зашифровать при выходе.Для этого в iPhone уже встроены функции открытого ключа и AES.

Возможно, вы захотите использовать пароль, который также ввел пользователь.

Обязательно сделайте это ватомарный / идемпотентный способ, так что если процесс шифрования / дешифрования / копирования / перемещения / переименования будет прерван, вы не повредите файлы!

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