Acceder

Ver la Versión Completa : SEGURIDAD: Almacenamiento de claves/passwords


elreymon
26/08/09, 12:34:20
Me gustaría que alguien me pudiera dar una descripcion técnica (criptográfica) sobre cómo almacena ANDROID las claves privadas del usuario. Es decir, ¿como las cifra (si es que las cifra)? ¿usando que algoritmos y qué llaves?

El motivo es sencillo. Un usuario normal proporciona al teléfono 2 tipos de contraseñas que deben ser protegidas:

1.- La de la cuenta principal de Google usada para el teléfono (=sincronizar: GMail, Calendar, etc)
2.- Las contraseñas que han sido marcadas en el navegador de ANDROID como "recordadas".

No es muy dificil imaginar una situación en la que pierdes el teléfono y llega a manos de alguien que (ántes de formatearlo) quiera aprovecharse u obtener todas esas contraseñas almacenadas en el teléfono. Acceder al sistema de archivos almacenado en la memoria interna o en la SD debe ser casi trivial, y a partir de ahí obtener las mencionadas contraseñas. ¿Como proteje ANDROID al usuario frente a esto?

sueko
03/11/09, 13:37:16
Nadie dice nada sobre este tema?
me parece muy interesante.

elreymon
04/11/10, 17:44:12
Por fin he encontrado la respuesta. Y es bastante desagradable.
Resulta que directamente las claves no se cifran. ¡Con un par!.
Es decir, cualquiera puede leerlas directamente. Los pasos son:

1. Conectar movil al pc via USB para poder usar el comando adb.
2. Desde el terminal ejecuta adb pull /data/data/com.android.browser/databases/webview.db
3. Instala sqlit3 (apt-get install sqlite3 on Ubuntu)
4. Ejecuta: sqlite3 webview.db
5. Y finalmente ejecuta: SELECT * FROM password;

El único requisito es poder acceder al fichero webview.db, para lo que se necesita ser root. Cosa no muy dificil hoy en día (en el que existen one-click-root aplications, o bien si ya tienes el teléfono rooteado tu mismo). Espero que este problema se resuelva en futuras versiones de Android ....