Utilice KeyPairGeneratorSpec para el nivel de API de Android <18?
Quiero almacenar datos secretos en el almacén de claves privado de mi aplicación.
Sin embargo, como estaba trabajando en el código para hacer esto, Android Studio advirtió que KeyPairGeneratorSpec.Builder(context)
requiere el nivel 18 de API y estoy dirigiendo 14 como mínimo. Unesdoc.unesco.org
- Certificado de fijación en Android con Robospice
- Simular la solución para la alerta de seguridad - implementación insegura de X509TrustManager
- Cadena es null al recuperar clave privada
- Webview evitar la alerta de seguridad de google jugar con la implementación de onReceivedSslError
- ¿Cómo evitar el uso de keystore y contraseña perdidas?
¿Cómo puedo almacenar datos secretos en mi aplicación para Android API de nivel 14 a 17?
- ¿Cómo se implementa el sandbox de aplicación en Android?
- Android Store Store API 23, use setUserAuthenticationRequired sin escáner de huellas dactilares
- ¿Cómo compartir datos seguros entre dos o más aplicaciones en android?
- Advertencia SSL de google play
- Google Play Advertencia Implementación incorrecta de la facturación de Google Play inApp
- ¿Cuál es el mejor lugar para almacenar claves secretas en una aplicación para Android?
- Causa de "Esta aplicación contiene código que intenta omitir las protecciones de seguridad de Android"
- Alerta de seguridad sobre libpng en mi consola de juegos de google
La AndroidKeyStore que normalmente es respaldada por hardware (pero no necesariamente así) fue introducida formalmente en el nivel 18 de API como se puede ver y se describe aquí: http://developer.android.com/training/articles/keystore.html
Nikolay Elenkov escribió una pequeña aplicación para probar la AndroidKeyStore que puedes encontrar aquí: https://github.com/nelenkov/android-keystore
Hay algunos trucos que puedes usar para llevarlo a clase de trabajo en el nivel 17 de la API si crees en AOSP, pero no hay garantía de que funcionará en todos los dispositivos, por lo que es inútil. Definitivamente no lo conseguirá trabajando en nada antes de eso.
Realmente no es necesario usar la AndroidKeyStore para almacenar su clave privada a menos que esté super paranoico sobre la seguridad y exija que sea respaldado por hardware o en un proceso aislado (proceso de keystore en dispositivos no respaldados por hardware).
Si genera un par de claves en su aplicación y lo guarda en un archivo de almacén de claves en su área de datos, ninguna otra aplicación de Android podrá leer su clave lo suficientemente segura para la mayoría de las aplicaciones. Incluso puede permitir que el usuario proteja el almacén de claves con una contraseña de su elección.
Hay alguna buena información sobre la generación de un par de claves en el software que utiliza Java y Android se puede encontrar aquí:
Android RSA Generación de pares de claves – ¿Debo usar Java estándar / Bouncy Castle / Spongy Castle / JSch / Other?
https://docs.oracle.com/javase/7/docs/api/java/security/KeyStore.html