¿Es segura una contraseña API en una aplicación móvil?

2

Quiero permitir que los clientes utilicen nuestra API en sus aplicaciones móviles, es decir, las que desarrollan.

Nunca he desarrollado para dispositivos móviles, así que no sé si tener la clave secrAPI de los clientes almacenada en la aplicación es seguro. Supongo que podrán conectarse mediante SSL desde la aplicación para que la transmisión sea segura.

De lo que estoy leyendo en línea en todas partes es sugerir el uso de oAuth. Pero oAuth requiere un inicio de sesión del usuario del cliente, lo que no es posible en este caso, ya que los usuarios del cliente no tendrán una cuenta con nuestro servicio.

    
pregunta Guesser 27.10.2017 - 11:57
fuente

2 respuestas

6

Cualquier cosa almacenada en un dispositivo de usuario debe ser asumida como legible por ese usuario. Esto es independiente de si se almacena en el almacenamiento de archivos, el registro del sistema operativo, el código compilado o simplemente se guarda en la RAM. Tampoco hace ninguna diferencia si la aplicación es una aplicación móvil, una aplicación de escritorio o una aplicación web (para los datos disponibles en el cliente).

Con el código compilado puede inspeccionar el binario directamente, usar una herramienta para descompilarlo o ejecutar el código y tomar un volcado de memoria y luego inspeccionarlo.

Si desea restringir las llamadas a su API únicamente al código controlado por sus clientes, tendrán que autenticar a sus usuarios y reenviar las solicitudes a través de sus propios servidores.

    
respondido por el Hector 27.10.2017 - 12:47
fuente
1

Es justo decir que cualquier secreto almacenado en una aplicación cliente es vulnerable. Los secretos almacenados en manifiestos o incrustados en código son bastante fáciles de extraer. La ofuscación y el endurecimiento de la aplicación pueden hacer esto más difícil. Almacenar secretos en archivos seguros o almacenes de claves es mejor, pero nunca es completamente seguro. Si el secreto es lo suficientemente valioso, puede ser robado.

Un resumen de la seguridad de la API móvil que comienza con las claves de la API y funciona a través de OAuth2 se encuentra en enlace .

OAuth2 tiene múltiples flujos dependiendo de sus requisitos. El flujo más común, la concesión de código de autorización, utiliza tanto la autenticación de cliente (piense la clave de API) como la autenticación de usuario. Si solo desea la autenticación del cliente, puede usar un flujo de credenciales de cliente más simple. AppAuth es un marco de trabajo de OAuth disponible para iOS y Android. Publiqué un tutorial para Android de AppAuth en enlace .

Para obtener una guía sobre cómo se pueden comprometer los secretos en una aplicación de Android, eche un vistazo a enlace . Y si desea ver cómo eliminar los secretos de su aplicación (requiere una biblioteca de demostración de terceros), puede trabajar en enlace .

    
respondido por el Skip Hovsmith 30.10.2017 - 17:40
fuente

Lea otras preguntas en las etiquetas