Oauth 2.0: identificación del cliente y secreto del cliente expuestos, ¿es un problema de seguridad?
Cuando una aplicación cliente de Android oauth 2.0 tiene sus credenciales (ID de cliente y secreto del cliente), es muy fácil descompilar la aplicación y recuperar las credenciales.
¿Cuáles son las consecuencias al exponer el ID del cliente y el secreto ?
- ¿Cuál es la forma correcta de validar google concedido tokens OAuth en un servidor node.js?
- Evitar el bloqueo del dispositivo en android mientras mi actividad está en ejecución Y el dispositivo está conectado al cargador
- Uso de un certificado autofirmado para crear una conexión cliente-servidor segura en android
- ¿Cómo la emulación de tarjeta basada en software (HCE) garantiza la seguridad NFC?
- RSA PKCS1-OAEP padding es compatible con bouncycastle?
- Android: el resultado de AsyncTask no se devuelve a la actividad principal
- Android - Almacenamiento de datos confidenciales en la base de datos sqlite
- Enigma de encriptación
- ¿Cómo debo codificar para resistir la "piratería con un solo clic"?
- ¿Qué tan seguro acceder a mi aplicación de Android con facebook-id?
- Protección de las claves de twitter en Android
- Xamarin Código de Seguridad
- ¿Qué tan seguras son las API de GeoLocation en dispositivos móviles?
Sé que esto no será una buena respuesta StackOverflow, pero no me siento capaz de explicar mejor que el modelo de amenaza y las consideraciones de seguridad (RFC 6819). Así que aquí está el párrafo sobre la obtención de un secreto de cliente y sus consecuencias relativas.
Tenga en cuenta que una aplicación para 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 sus credenciales confidenciales, pero sigue siendo capaz de proteger Tokens y el código de autorización.
También interesante para su caso es un ejemplo sobre los teléfonos inteligentes .
Sé que los RFC no son la lectura más divertida, pero son bastante claros.
De acuerdo con esto es una cuestión 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, aquí está lo que dice:
La dependencia de OAuth en la autorización basada en navegador crea un problema de implementación heredada para aplicaciones móviles o de escritorio que, por defecto, no se ejecutan en el navegador del usuario. Además, desde una perspectiva puramente de seguridad, la principal preocupación es cuando los implementadores almacenan y ofuscan la combinación clave / secreto en la propia aplicación cliente. Esto hace que la rotación de las teclas sea casi imposible y permite el acceso no autorizado al código fuente o binario descompilado 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 desensamblar el class.dex con la herramienta disembler de Android, dexdump:
dexdump - d classes.dex
Lo anterior entra en mucho más detalle y es una lectura muy buena.
Sólo una observación: el ID del cliente no es un secreto por diseño, por lo que en realidad no hay necesidad de protegerlo.
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 ser utilizado solo para la autenticación del cliente.
- Detección del interruptor de encendido / apagado GPS en los teléfonos Android
- Android – ¿Está bien poner valores @IntDef dentro de @interface?