2011-02-04 14 views
64

¿Hay un equivalente al llavero de iOS en Android?Android Llavero para credenciales de usuario

Mi comprensión de la API de preferencias es que no está encriptada. Para mi aplicación no importa wether estas credenciales se mantengan en ambos dispositivos (es decir, un caso de uso diferente a iPhone-like Keychain in Android?)

también miraba el API de KeyStore pero parece que abandonar el almacenamiento real de las credenciales de usuario se registra para el desarrollador de la aplicación.

Gracias por su ayuda!

Respuesta

9

Respuesta corta, no hay uno. Pero puede esperar que el sistema de archivos sea seguro.

Cada aplicación opera bajo un usuario diferente, y el sistema de ficheros se utiliza para almacenar datos de la aplicación está fijada por los permisos de usuario normales UNIX. Por lo tanto, el acceso a los archivos de cada aplicación es de forma predeterminada. El sistema de archivos también puede estar encriptado.

Esta página desde el sitio del desarrollador de lo explica mejor: http://developer.android.com/guide/topics/security/security.html

+18

Cuando se bloquea un dispositivo iOS con un código de contraseña o PIN, éstos se utilizan como parte de la clave privada. El pirateo de 6 minutos solo se aplica a dispositivos desbloqueados. –

+1

Y solo para elementos públicos de llavero ... – Sulthan

+3

¿Qué sucede cuando el usuario cambia el código de acceso de iOS? de/re-encripta el llavero? –

-3
+33

... que parece almacenar solo claves y certs, y ** no ** credenciales de usuario, que es lo que le interesa al interrogador. –

+3

@SixtenOtto puede almacenar credenciales de usuario cifradas con alguna clave, y almacenar esa clave en llavero . Por supuesto, hay más trabajo por hacer, pero es factible. –

3

Ampliando la respuesta de @ DJPlayer:

Algunos artículos relevantes. El tercero incluye una aplicación github que demuestra el uso del proveedor del almacén de claves para generar claves y luego encriptar cadenas.

Véase también Android Storage Options de formas de almacenar la contraseña cifrada - mi recomendación es Shared Preferencias.

Tenga en cuenta que según el segundo artículo con acceso raíz y un poco de conocimiento de cómo su aplicación usa el almacén de claves (que podría obtenerse descompilando su apk), es posible secuestrar la clave privada y usarla para descifrar encriptada materiales (por ejemplo: la contraseña PERSISTED)

+1

Para el tercer artículo, una vez que las claves se generan y luego se usan para cifrar el texto sin formato, ¿dónde se almacenan las cadenas encriptadas? –

1

en realidad existe:

mediante la integración de Smart Lock para contraseñas en su aplicación para Android, que puede firmar automáticamente a los usuarios a su aplicación usando las credenciales que han guardado . Los usuarios pueden guardar las credenciales de nombre de usuario y contraseña y las credenciales del proveedor de identidades federadas .

Integre Smart Lock for Passwords en su aplicación mediante el API de credenciales para recuperar las credenciales guardadas al iniciar sesión. Utilice credenciales recuperados con éxito para firmar el usuario en, o utilizar la API Credenciales a rápidamente a bordo de los nuevos usuarios rellenando parcialmente signo de la aplicación en o formulario de registro. Indique a los usuarios después del inicio de sesión o registrarse para almacenar sus credenciales para futura autenticación automática .

https://developers.google.com/identity/smartlock-passwords/android/

+0

Esta API realmente no facilita el almacenamiento de tokens OAuth arbitrarios, etc. Parece que proporciona más una manera para que el usuario inicie sesión en su aplicación. Para las aplicaciones que proporcionan acceso seguro a otros servicios, no es útil. Realmente no responde la pregunta original – yano

+0

Puede verlo desde una perspectiva diferente. Si solo puede almacenar usuario y contraseña, ¿por qué no persiste solo y mantiene el token en la memoria solamente? Cada vez que la aplicación se reinicia se vuelve a autenticar. No es brillante, pero actualmente parece la forma más segura. – neteinstein

Cuestiones relacionadas