¿Dónde almacenar la información global sensible, como las claves API en la aplicación de Android?
Necesito almacenar información confidencial en una aplicación de Android. Si lo pongo en un archivo de recursos, parece que es trivial que otra aplicación pueda navegar y leer ese archivo simplemente usando PackageManager.getResourcesForApplication () .
¿Dónde está el lugar correcto para poner la información como esta que no queremos que la gente pueda fácilmente fisgonear?
- Uso de software / hardware con respaldo Android Keystore y posibles desventajas de seguridad / usabilidad
- ¿Cómo mantener seguro el secreto del consumidor de OAuth y cómo reaccionar cuando está comprometido?
- ¿Es seguro que almacena información de tarjeta creadit en android?
- Java.lang.SecurityException: Permiso Denial: Intención inicial {act = android.intent.action.MAIN cat =
- ¿Por qué no conectar android a la base de datos directamente?
¿Debería estar en un archivo java compilado? ¿O los archivos de clase también son fácilmente legibles? Además, si están en archivos java, ¿es posible hacer referencia a ellos desde archivos XML que los necesitan (por ejemplo, para la clave api de google maps)?
- Almacenamiento de clave secreta en KeyStore sin el parámetro ProtectionParameter
- ¿Cómo verificar la aplicación instalada en tiempo de ejecución para evitar el ataque de phishing?
- Cómo entregar el código de la aplicación de Android a otro desarrollador: administración de la gestión de claves
- Seguridad de facturación InApp y invocación de métodos remotos
- DevicePolicyManager wipeData no borrar la configuración de correo electrónico
- Almacenamiento de claves en Android
- "Flujo no representa una tienda de claves PKCS12" después de almacenar con una nueva contraseña en el dispositivo Android
- ¿Cómo evitar la ingeniería inversa de un archivo APK?
Su APK se recuperará del dispositivo y se desgarra de todos modos. (Después de todo, algunos dispositivos están arraigados.) Lo que sea que codifique allí, no importa dónde, será encontrado y extraído. Por supuesto, si la ganancia potencial justifica el esfuerzo. De lo contrario, la seguridad por la oscuridad, como la ofuscación, puede ser el camino a seguir.
Manejar secretos reales debe basarse en algún tipo de entrada, en particular las contraseñas.
Felizmente, las claves API, si se utilizan como se supone que, no son necesariamente un verdadero secreto.
Google tiene algunas buenas recomendaciones sobre esto bajo facturación . Para resumir: utilice el servidor remoto, ofusque y use nonces aleatorios seguros. Nada es seguro en tu apk ya que siempre puede ser ingeniería inversa y la ofuscación sólo funciona contra ataques simples.
Si sólo desea denegar el acceso a sus datos de otras aplicaciones, puede utilizar SharedPreferences. Simplemente use Contex.getSharedPreferences ( nombre de archivo / prefs /, Context.MODE_PRIVATE); Según la documentación MODE_PRIVATE significa que el archivo creado sólo puede ser accedido por la aplicación que llama (o todas las aplicaciones que comparten el mismo ID de usuario).
- Cómo hacer navegación personalizada ver animaciones como ésta
- La galería onItemClick y onTouchEvent no funcionan juntas desde la versión android 3.0