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
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.
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.
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. –
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
Es culpa del usuario que el sistema no sea seguro – Casebash
Puede almacenar datos secretos cifrándolos con una clave generada por Android Keystore System y luego almacenar el resultado si lo desea.
- 1. ¿Cómo cero una clave secreta en java?
- 2. Ocultar clave secreta en el repositorio público
- 3. Clave secreta convertida en bytes, ¿cómo volver a convertirla en clave secreta?
- 4. Solución anti-piratería para una clave secreta en la aplicación de Android?
- 5. Mantener una clave secreta en secreto con Amazon Web Services
- 6. Find $ secreta en $ a == MD5 (. $ B $ secreta)
- 7. Carga en Amazon S3 sin acceso y clave secreta
- 8. Mantener la clave secreta SECRETO - dentro de la aplicación de Android ... cualquier idea
- 9. Cómo almacenar clave privada y clave pública en KeyStore
- 10. ¿Dónde debo almacenar una clave externa?
- 11. Almacenar una contraseña
- 12. cuando tienes una clave secreta en tu proyecto, ¿cómo se puede presionar a GitHub?
- 13. Cálculo de un hash SHA con una cadena + clave secreta en Python
- 14. Almacenar objetos en Android
- 15. Android: ¿Cómo almacenar cookies?
- 16. Complemento de Rails para clave de API + firma de clave secreta
- 17. ¿Cómo es posible no exponer su clave secreta con una biblioteca JavaScript OAuth?
- 18. ¿Cómo puedo excluir una clave secreta de un proyecto Xcode de fuente abierta?
- 19. ¿Por qué la sesión de CherryPy no requiere una clave secreta?
- 20. Ficha secreta de rieles
- 21. GnuPG: "Error en el Descifrado: clave secreta no disponible" Error de GPG en Windows
- 22. Cómo almacenar una clave pública en un contenedor de clave RSA a nivel de máquina
- 23. Cómo exportar clave ASC privada/secreta para descifrar archivos GPG en Windows
- 24. ¿Cuáles son los riesgos de exponer la clave oauth no tan secreta? ¿Hay alguna solución?
- 25. ¿Cómo mantener la aplicación secreta en secreto?
- 26. ¿Se puede descubrir una cadena "secreta" en una aplicación Obj-C compilada?
- 27. Dónde almacenar la clave de cifrado
- 28. Almacenar datos estáticos en Android: ¿recurso personalizado?
- 29. almacenar más datos en Android Account Manager
- 30. Aclaración sobre la clave pública de Android?
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
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
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. –