Как я должен защитить базу данных SQLite в iOS? - PullRequest
7 голосов
/ 27 ноября 2010

Я занимаюсь разработкой приложения для iOS для здравоохранения. Я бы хотел, чтобы данные моих пользователей были зашифрованы, поэтому, если их iPhone украдут, вор не сможет получить доступ к информации о его здоровье. Законный владелец ДОЛЖЕН иметь возможность доступа к своей информации (которая отличается от этого вопроса ).

Я рассматриваю возможность использования SQLCipher для шифрования всей БД и помещения пароля SQLCipher в связку ключей.

Это хорошая техника?

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

Ответы [ 2 ]

4 голосов
/ 27 ноября 2010

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

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

2 голосов
/ 27 ноября 2010

Я думаю, что ваше решение имеет смысл. Это обеспечивает довольно хорошую безопасность и делает ваше приложение простым в использовании.

Главное, что вы получаете с цепочкой для ключей, это то, что резервные копии пользователей защищены, потому что содержимое цепочки для ключей не резервируется с помощью iphone. (Но я думаю, вы уже это знаете)

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

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

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