¿Cómo asegurar las credenciales básicas de autenticación REST de Android contra la ingeniería inversa?

1

Por lo que sé, en la autenticación básica de la API REST, el nombre de usuario y la contraseña para acceder a los recursos del servicio web están incorporados en el código de la aplicación. Por otro lado, parece no es difícil de aplicar ingeniería inversa al archivo .apk de una aplicación para obtener el código Java que contiene las credenciales REST.

¿Entonces me pregunto si hay formas de asegurar las credenciales contra la revelación de ingeniería inversa?

    
pregunta Karlom 30.05.2016 - 03:55
fuente

1 respuesta

2

La mejor práctica es no almacenar las credenciales de acceso dentro del programa. Las aplicaciones no siempre contienen (a menos que estén mal diseñadas) credenciales específicas dentro de ellas para acceder a la API.

Si bien la adición de credenciales en el código puede disuadir a los atacantes generales, no detendrá a los atacantes que pueden abrir el paquete y extraer los detalles. Como algo que puede ser descifrado por unos pocos se considera vulnerable, la forma correcta de implementarlo sería la siguiente.

  1. No agregue credenciales en la APLICACIÓN
  2. Cuando la aplicación está instalada, genere credenciales y regístrese con el servidor. (podría ser un nombre de usuario y contraseña o podría ser un certificado del lado del cliente)
  3. Obtenga un token de acceso con estas credenciales.
  4. Use el token de acceso para acceder a la API

Como puede controlar de manera eficiente el proceso de registro y puede permitir el acceso a partes seguras de la API según el token de acceso, su implementación debería ser lo suficientemente segura si usa SSL / TLS para ellos.

    
respondido por el BMC 30.05.2016 - 06:14
fuente

Lea otras preguntas en las etiquetas