¿Por qué usar "App Secret" en aplicaciones móviles?

4

Veo que algunos SaaS requieren importar "App Secret" en su aplicación también con "Application Key". Entiendo la "Clave de aplicación", pero no puedo entender el "Secreto de la aplicación". Aquí es por qué:

  1. Puedo descompilar la aplicación y obtener el secreto de la aplicación fácilmente.
  2. Si está cifrando el tráfico entre usted y el servidor con él, y su sistema operativo no me permite descompilar su aplicación, todavía puedo alterar sus datos al replicar la solicitud de tráfico y enviarla millones de veces.

¿Por qué usar "App Secret" en aplicaciones móviles? ¿No podemos decir que en realidad es público porque es fácilmente accesible desde el exterior? La clave de la aplicación también es accesible, ¿cuál es la diferencia? ¿Es debido a la falta de experiencia de ese SaaS?

    
pregunta xecute 22.09.2014 - 15:30
fuente

1 respuesta

4

Los secretos de la aplicación están relacionados con el "Flujo de autenticación del servidor web" (en particular, OAuth2), que es la forma en que un servidor se autentica ante el otro que tiene acceso a los recursos que proporciona el servidor. Puede considerarlo como una "contraseña de autorización", donde la contraseña le permite al servicio que llama acceder al servicio al que se llama.

Los clientes móviles no deben ser confiables, y nunca deben usar un secreto de aplicación; Este es un riesgo de seguridad inherente, ya que puede permitir que una aplicación maliciosa acceda al servicio. Una vez que el secreto de una aplicación está disponible, el servicio debe modificarse para evitar que las aplicaciones malintencionadas abusen del servicio en nombre de los usuarios.

Tenga en cuenta que no puede usar los ataques de reproducción con OAuth2 porque usa un número aleatorio para saltear cada transacción, aunque el problema de la descompilación sigue siendo un factor muy importante. De hecho, se han escrito artículos sobre la cantidad extrema de aplicaciones de Android que son vulnerables debido a que se filtraron los secretos de la aplicación.

Una vez que tenga una aplicación secreta, puede emular la aplicación a la que corresponde la clave secreta y no puede distinguir la diferencia entre una aplicación autorizada y publicada y un clon malicioso. Muchos desarrolladores no entienden que la aplicación secreta es el equivalente de una contraseña o una clave de cifrado privada, y debe tratarse como tal.

Los clientes móviles y otras aplicaciones que no sean de confianza (aplicaciones basadas en el navegador web) deben usar el "flujo de autenticación del cliente", en el que solo se usa la clave de la aplicación.

    
respondido por el phyrfox 22.09.2014 - 15:43
fuente

Lea otras preguntas en las etiquetas