Подтвердить что ты не робот

Android: как защитить данные в базе данных SQLite?

В настоящее время я разрабатываю Android-игру, которая сохраняет данные в базу данных SQLite. Это не очень "чувствительные" данные, но я не хочу, чтобы пользователи могли изменять его (по понятным причинам игрового баланса, так как это было бы обманом). И довольно легко получить доступ и изменить SQLite db , когда ваш телефон укоренен (на рынке есть много приложений).

Так что я должен даже беспокоиться об этом или подумать, что пользователи с укоренившимся телефоном могут делать все, что захотят, включая обман и их выбор? Или я могу как-то зашифровать данные, которые я не хочу им изменять, или добавить контрольную сумму MD5 или что-то подобное?

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

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

Спасибо.

4b9b3361

Ответ 1

Доступ к корням для всех и безопасность взаимоисключающие.

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

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

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

Обновление: Сохранение ключей API в Android, достаточно ли обфустация? - довольно похожая проблема - это защита ключей API, но такая же ситуация с вашими параметрами.

Ответ 3

Я думаю, что на основе вашего требования лучший метод использует согласованность данных, например MD5, счет и время, затем поместите счет и время и MD5 в таблицу, затем каждый раз, когда вы хотите использовать эту строку DB, проверьте MD5 оценки и времени, если один в БД и тот, который был рассчитан, одинаковы, строка согласована, иначе она была взломана!

Ответ 4

Вы можете найти свое счастье в файлах настроек. Посмотрите здесь