google cliente auth android security oauth-2.0

android - google - Oauth 2.0: ID de cliente y secreto de cliente expuesto, ¿es un problema de seguridad?



oauth login google (3)

Según esto, es un problema de seguridad: http://software-security.sans.org/blog/2011/03/07/oauth-authorization-attacks-secure-implementation

En caso de que el enlace deje de funcionar, esto es lo que dice:

La dependencia de OAuth en la autorización basada en navegador crea un problema de implementación heredado para aplicaciones móviles o de escritorio que, de forma predeterminada, no se ejecutan en el navegador del usuario. Además, desde una perspectiva de seguridad pura, la principal preocupación es cuando los implementadores almacenan y ofuscan la combinación clave / secreta en la propia aplicación del Cliente. Esto hace que la rotación de claves sea casi imposible y permite el acceso no autorizado al código fuente descompilado o al binario donde se almacena el secreto del consumidor. Por ejemplo, para comprometer las credenciales del cliente para el cliente de Twitter en Android, un atacante puede simplemente desmontar classes.dex con la herramienta de desensamblador de Android, dexdump:

dexdump - d classes.dex

Lo anterior entra en mucho más detalle y es una lectura bastante buena.

Cuando una aplicación de cliente Android oauth 2.0 tiene sus credenciales (ID de cliente y Secreto de cliente) codificadas, es muy fácil de descompilar y recuperar las credenciales.
¿Cuáles son las consecuencias al exponer la identificación del cliente y el secreto ?


Solo un comentario: la identificación del cliente no es un secreto por diseño, por lo que en realidad no hay necesidad de protegerla.

Consulte la sección 2.2 en RFC 6749 ("El marco de autorización de OAuth 2.0"):

El identificador del cliente no es un secreto; está expuesto al propietario del recurso y NO DEBE usarse solo para la autenticación del cliente.


Sé que esta no será una buena respuesta de , pero no me siento capaz de explicarlo mejor que el Modelo de amenazas y Consideraciones de seguridad (RFC 6819). Así que aquí está el párrafo sobre la obtención de un secreto del cliente y sus consecuencias relativas.

Tenga en cuenta que una aplicación de Android es un cliente público (una aplicación nativa para ser más específica), por lo que, como usted dice, no puede mantener confidenciales sus credenciales, pero aún puede proteger Tokens y el Código de autorización.

También es interesante para su caso un ejemplo sobre los smartphones .

Sé que las RFC no son la lectura más divertida, pero son bastante claras.