que - sqlite android ejemplo
Android: ¿Cómo proteger los datos en una base de datos SQLite? (4)
Actualmente estoy desarrollando un juego para Android que guarda los datos en una base de datos SQLite. Estos no son datos realmente "confidenciales", pero no quiero que los usuarios puedan modificarlos (por razones obvias de equilibrio del juego, ya que sería trampa). Y es bastante fácil acceder y modificar una base de datos SQLite cuando su teléfono está enraizado (hay muchas aplicaciones para eso en el mercado).
Entonces, ¿debería preocuparme por eso o considerar que los usuarios con un teléfono rooteado pueden hacer lo que quieran, incluyendo trampas y esa es su elección? ¿O podría de alguna manera cifrar los datos que no deseo que modifiquen, o agregar una suma de comprobación MD5 o algo similar?
Otro enfoque sería abandonar SQLite por completo y usar algún tipo de archivos binarios con datos del juego.
Déjeme saber si alguno de ustedes ya tuvo problemas similares y cuáles son los enfoques que siguió, así como las "buenas prácticas" en la comunidad de desarrollo de juegos para Android.
Gracias.
Creo que en función de sus requisitos, el mejor método es utilizar la consistencia de los datos, por ejemplo, el puntaje y la hora de MD5, luego poner el puntaje y la hora y el MD5 en la tabla, luego, cada vez que quiera usar esa fila de DB, verifique el MD5 del puntaje y tiempo si el de DB y el que se calculó son iguales, la fila es consistente, de lo contrario, ¡fue hackeado!
El acceso root para todos y la seguridad son mutuamente excluyentes.
Cualquier aplicación o usuario con permisos de root puede leer y modificar todos y cada uno de los archivos de su sistema, así como toda la memoria principal. Eso no deja muchos lugares para almacenar una clave de cifrado potencial para la base de datos.
Puede ocultar partes de la clave en los archivos ejecutables, los archivos de configuración, etc., pero todo lo que pueda encontrar no sería más que una confusión y seguridad por oscuridad.
Si un usuario opta por otorgar acceso de root a todos, esa es su decisión, y no es su trabajo como desarrollador de aplicaciones para evitar cualquier daño que pueda causar.
Actualización: almacenamiento de claves API en Android, ¿es suficiente la confusión? es un problema bastante similar: se trata de proteger las claves de API, pero es la misma situación con respecto a sus opciones.
Puedes encontrar tu felicidad en los archivos de preferencias. Mira here
sqlcipher para Android podría ayudar aquí.