Доступ к защищенной паролем базе данных SQLite на Android?

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


person Omitz    schedule 04.04.2011    source источник


Ответы (2)


Я не думаю, что платформа Android поддерживает защиту паролем в базах данных. Лучше всего зашифровать ваши данные. См. вопрос SO: Шифрование паролей Android Sqlite

person Morrison Chang    schedule 04.04.2011

Вы можете зашифровать SQLiteDatabases. Android не поддерживает полное шифрование базы данных, поэтому вам придется реализовать это самостоятельно, если вы хотите.

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

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

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

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

person Joseph Earl    schedule 04.04.2011