2010-04-20 11 views
13

Mi aplicación Android utiliza una clave secreta para generar un token con fines de autenticación. ¿Hay una manera más segura de almacenar esto que simplemente poner esto en el almacén de datos? Creo que para el iPhone, lo almacenamos en el llavero. Soy consciente de android.accounts.AccountManager, pero esto parece dar a otras aplicaciones la posibilidad de acceder a la contraseña (si el usuario selecciona la opción incorrecta) y parece menos segura.Almacenar una clave secreta en Android

Respuesta

6

Android (lamentablemente) no proporciona una manera de hacerlo. El enfoque que he usado antes es encriptar este token con otra clave generada dentro de la aplicación.

Su clave de aplicación se puede generar algorítmicamente. Esto, sin embargo, es tan seguro como su algoritmo. Una vez que se conoce esto, esto es equivalente a almacenar el token en texto sin formato.

+0

No creo que a nadie le resulte demasiado difícil encontrar la función si realmente quisiera. Sin embargo, esto supongo que esto es mucho más esfuerzo que solo leer una clave de texto sin formato – Casebash

+0

Verdadero. Es más seguridad de la oscuridad que cualquier otra cosa. Otro enfoque es almacenar el token cifrado usando alguna contraseña especificada por el usuario. Esto es lo más seguro, pero el usuario tendrá que autenticarse con la aplicación cada vez que se inicie su aplicación. – Prashast

+0

No es seguro en absoluto. Es el equivalente a la ofuscación. Te protegerá del navegador informal y del script kiddie pero no de los sombody que quieran saber la respuesta. Pero si solo te preocupan los guionistas, entonces es una buena solución. –

4

Puede almacenar la clave en las Preferencias de su aplicación. Esto protegerá la clave para que no sea leída por otras aplicaciones debido a las restricciones subyacentes del sistema de archivos del sistema Android.

Pero esto no protegerá la clave para que no sea leída por el usuario.

+7

Es cierto, PERO PUEDO OBTENER SU CLAVE EN UN MINUTO SI HACE ESTO! prueba apktool y puedes obtener todo strings.xml. Acabo de hacerlo en una famosa aplicación social para Android y obtuve su propia clave de consumidor y su secreto, el secreto de Facebook, el ID de Google Analytics ... Me tomó 2 minutos. –

1

si puede ejecutar la herramienta apk, entonces está en depuración y va a rootear el dispositivo. No hay más protección en el llavero en iOS cuando es jailbroken

+1

Es culpa del usuario que el sistema no sea seguro – Casebash

0

Puede almacenar datos secretos cifrándolos con una clave generada por Android Keystore System y luego almacenar el resultado si lo desea.

Cuestiones relacionadas