2010-04-09 31 views
10

Estoy escribiendo una aplicación en la que los usuarios a veces hacen pedidos a través de ella. Quiero dar a los usuarios la opción de guardar su información de facturación (nombre, dirección, etc.) para que se pueda restaurar rápidamente más adelante si quieren hacer otro pedido. El usuario ingresará una contraseña para proteger los datos.¿Hay alguna manera de almacenar de forma segura los datos de usuario en un dispositivo Android?

Obviamente no puedo simplemente poner esto como un archivo en el dispositivo, ya que cualquiera puede rootear/encontrar los datos. ¿Existe un método de Android incorporado para almacenar datos seguros que están bloqueados con una contraseña? Si no, ¿cuál es un buen lugar para comenzar a almacenar estos datos de forma segura utilizando Java?

Editar: Para aclarar, cuando digo que el usuario ingresará una contraseña, no me refiero a que ya encontré una manera de asegurar los datos. Solo intento transmitir el método con el que el usuario protegerá los datos en su extremo; ahora estoy tratando de encontrar la manera de mantener mi parte del trato. :)

+0

@Daniel: ¿También es fan de Braid? –

+0

@Martijn: Mucho. :) Sin embargo, debería arreglar los canales alfa en mi ícono. –

+0

Escribí (cubierto) Braid en Java. ¡Funciona bien! –

Respuesta

9

Puede utilizar las clases javax.crypto incluidas para encriptar cualquier información confidencial.

Puede ver el código fuente de la aplicación Secrets for Android para algunos ejemplos.

secretos para Android es una aplicación para almacenar de forma segura y administrar las contraseñas y secretos en su teléfono Android. Es utiliza técnicas como cifrado fuerte y cierre de sesión automático para ayudar a asegurar que sus secretos permanecen seguros (suponiendo que utiliza una buena contraseña maestra!). Los consejos sensibles al contexto lo guían a lo largo de a través de su operación, lo que facilita el uso de .

8

Es obvio que no sólo puede poner esto como un archivo en el dispositivo, ya que cualquiera puede root/encontrar los datos.

Cierto, pero si permite que el usuario defina una contraseña para el archivo de copia de seguridad, alguien que robó el archivo aún tendría que descifrar el cifrado. Pueden descubrir el algoritmo que estás usando, pero no la contraseña.

¿Hay un método integrado para Android el almacenamiento seguro de datos que está bloqueado con una contraseña?

Android en sí mismo no ofrece un almacén de archivos cifrados. Puede cifrar archivos usted mismo, que es lo que asumí que estaba haciendo cuando escribió que "el usuario ingresará una contraseña para proteger los datos".

0

Eche un vistazo a SQLCipher para Android. Puede almacenar esa información en una base de datos y luego encriptarla con AES de 256 bits. http://sqlcipher.net/sqlcipher-for-android/ El proyecto principal es propio, pero puede obtener los binarios de Android de forma gratuita a través de their GitHub,, así como algunos ejemplos de uso.

+0

¿Cómo almacenará la llave? – dimitris93

Cuestiones relacionadas