Безопасность и SQLite в Android - PullRequest
0 голосов
/ 12 ноября 2011

Я разрабатываю видеоигру для Android. Это будет онлайн-игра, в которой будет храниться статистика пользователя, достижения, объекты и т. Д. В локальной базе данных SQLite.

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

Итак, что я могу сделать? Есть ли возможность сделать БД действительно безопасной? Пароль? Шифрование

Спасибо

Ответы [ 3 ]

1 голос
/ 13 ноября 2011

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

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

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

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

EDIT:

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

0 голосов
/ 18 декабря 2011

Возможно шифрование данных SQLite, , подробнее см. Здесь .

Это также может помочь .

0 голосов
/ 13 ноября 2011

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

Я бы не стал слишком сумасшедшим, если у вас нет серьезной игры.

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