Cómo proteger la clave API en la aplicación de Android

3

Estaba trabajando en una aplicación de Android que se comunicaba con el servidor RESTFull. Hicimos una clave API que se insertó en el encabezado de las solicitudes GET y POST . Esta clave API se almacenó en cadenas. La aplicación ya no se usa y el servidor está inactivo.

Encontré el archivo app.apk y sentí curiosidad por su seguridad, por lo que descompilé su fuente y encontré la clave de la API de esta manera. No usamos ProGuard porque no teníamos tiempo.

La pregunta es cómo almacenar las Claves de la API en las aplicaciones de Android, porque de esta manera también puedo obtener la clave de la API Google Maps .

    
pregunta magic-sudo 17.11.2016 - 16:52
fuente

1 respuesta

7

Entonces, ¿está preguntando si puede almacenar la Clave de la API en la aplicación, pero también protegerla contra el robo? Esto no es posible.

Existe una posible solución para hacer más difícil el robo. Use el cifrado OTP XOR para que la clave API se divida en dos partes que deben combinarse.

La primera parte se almacena en tu aplicación.

La segunda parte se descarga desde el equipo de su servidor y luego se almacena en los datos privados de la aplicación, preferiblemente de tal manera que no haga obvio su propósito. Alternativamente, podría "no almacenar" la segunda parte (manténgala en Application Memory o Intent Extras solamente) pero luego tendrá que descargarla del servidor cada vez que se inicie la aplicación.

Luego puede usar Progard para hacer que la aplicación general sea más difícil de entender.

Por supuesto, esto solo hace que el robo sea más difícil, y en realidad no asegura la clave contra el robo.

Si realmente necesita asegurar la clave, entonces tendrá que dirigir todas las solicitudes a la API de Google Maps a través de un servidor proxy que usted controla. Ese servidor proxy puede agregar la clave API a cada solicitud según sea necesario.

    
respondido por el George Bailey 17.11.2016 - 17:00
fuente

Lea otras preguntas en las etiquetas