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

¿Cómo puedo almacenar datos secretos en mi aplicación para Android API de nivel 14 a 17?

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

  • ¿Cómo puede la aplicación de configuración iniciar la actividad no exportada de una aplicación?
  • Pide patrón de desbloqueo - Android
  • Está utilizando una implementación insegura de X509TrustManager
  • Almacenamiento de claves en Android
  • Controlar el acceso de las API de terceros a los recursos del sistema Android?
  • Android Google Play Advertencia: Vulnerabilidad de procesador de errores SSL
  • Cómo guardar el token de acceso de Oauth de forma segura en android
  • ¿Es necesaria la clave API en la certificación de SafetyNet?
  • Android M y aplicaciones de administración de dispositivos
  • Advertencia de Google Play: controlador WebViewClient.onReceivedSslError
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.