¿Qué tan seguros son los archivos SQLite y SharedPreferences en Android?
security (2)
Primero, un poco de mi experiencia. He estado trabajando en grandes sistemas web durante más de una década, Android es algo que he estado buscando durante los últimos dos meses; como puedes imaginar, la brecha es bastante amplia :)
Mirando la parte de documentación de seguridad y permisos y almacenamiento de datos de Android, hablando directamente con los desarrolladores, leyendo libros y tutoriales, está bastante claro cómo funciona todo el modelo. Sin embargo, no pude encontrar una respuesta si los archivos SQLite y SharedPreferences son lo suficientemente seguros como para almacenar información delicada no encriptada (por ejemplo, tokens OAuth). ¿Es posible que alguien los agarre de alguna manera? Citando la documentación de Android:
Cualquier información almacenada por una aplicación tendrá asignada la ID de usuario de esa aplicación, y normalmente no será accesible para otros paquetes.
Es la parte no accesible normalmente que me da pelo gris adicional :)
Gracias, las respuestas útiles son apreciadas :)
¿Es posible que alguien los agarre de alguna manera?
Eso depende de alguien. Como indica el Sr. Burov, los usuarios de teléfonos rooteados pueden obtener lo que quieran. Los usuarios ordinarios y otras aplicaciones no pueden, por defecto.
Es la parte no accesible normalmente que me da pelo gris adicional :)
Por defecto, los archivos son seguros. Puede hacer que sean legibles por todo el mundo o editables por el mundo si lo desea.
¿No sería posible descompilar el archivo apk y encontrar la clave de cifrado también en ese caso?
Eso depende de contra quién te estás defendiendo. Si te estás defendiendo de otras aplicaciones, haz que el usuario proporcione la clave de cifrado. Si defiende al usuario, está jodido, al igual que todas las implementaciones de DRM están atornilladas.
Bueno, hay un montón de aplicaciones editor de SharedPreferences en el mercado, por lo que definitivamente no son seguras. También en los dispositivos rooteados, la base de datos puede ejecutarse fácilmente, ya que el usuario tiene acceso completo al sistema de archivos de los teléfonos. Por lo tanto, si desea que su aplicación esté totalmente segura, cifre sus datos.