¿Proporcionar OAuth para aplicaciones móviles representa una amenaza para la seguridad?

4

Veamos el flujo de trabajo básico de OAuth:

LaideabásicaesqueelConsumidor(Aplicación)lepidealusuarioqueleotorgueaccesoalProveedordeservicios.Elservicioprotegealusuariopreguntándolecadavezquelaaplicaciónquiereunanuevaclavedeacceso.

Elproblemarealaquíesqueelservicionosabemuchosobreelconsumidor.Enelcasodequeunaaplicaciónmóvilseaunconsumidor,nisiquieraconocesuURL.

Entonces,cuandoaparecelapáginadeaccesodeconcesión,elservicionosabequiénrealmentequiereacceder.Asíelusuarioseconfunde.

¿Cuáleslasoluciónaesteproblema?

Enelcasodeunaaplicaciónweb,sepodríanusarclavesprivadaspreviamentecompartidas.Peronoesunaopciónparaunaaplicaciónmóvil(yaqueesimposibleocultarlaclaveprivada).

¿Esrealmenteunaamenazadeseguridad?Supongoqueelusuariodebesaber,desdeelcontexto,aquéaplicaciónhasolicitadoacceso.Pero,¿porquétantossitioswebrequierenunaclave"secreta"? (lo que no es realmente un secreto cuando se trata de una aplicación móvil)

Editar

Probablemente, no estaba lo suficientemente claro. Intentemoslo de nuevo. Aquí hay una imagen explicativa:

Comopuedever,eselusuarioquiendebeasegurarsedequelaaplicaciónadecuadatengaacceso.

Peroelmensaje"No sé quién intenta acceder al servicio", aunque es preciso, es muy confuso.

¿Existe una técnica para identificar la aplicación de manera confiable?

    
pregunta Vanuan 22.05.2013 - 20:49
fuente

2 respuestas

5

Entonces, creo que el problema que está describiendo se resuelve, en cierta medida, agregando los ID de cliente a la solicitud de autenticación. La aplicación proporciona una identificación al proveedor de servicios y, a continuación, el proveedor limita el token proporcionado para que solo sea válido para esa aplicación.

Sin embargo, eso no resuelve el problema de una aplicación malintencionada que podría proporcionar un ID de cliente falsificado deliberadamente (si se utilizan).

La cuestión es que, en dispositivos móviles, la aplicación ya es confiable, una vez que el usuario ha instalado la aplicación, ha elegido confiar en ella. No creo que haya mucho que pueda hacer el proveedor de servicios para proteger a los usuarios de aplicaciones maliciosas, una vez que el usuario haya elegido instalarlas.

Estaba viendo un video de Eran Hammer (advirtiendo el lenguaje de NSFW), donde menciona que el servicio los proveedores forzaban a los clientes móviles a hacer vistas web para el inicio de sesión del usuario (para evitar que la aplicación móvil acceda directamente a las credenciales de los usuarios) y que la aplicación móvil estaba superponiendo esto y obteniendo las credenciales de los usuarios, para que no tuvieran que hacerlo. molestar al usuario por ellos en el futuro.

En última instancia, no creo que sea posible proteger completamente a los usuarios de una aplicación una vez que hayan decidido confiar en ella al instalarla.

    
respondido por el Rоry McCune 24.05.2013 - 14:20
fuente
0

Creo que la forma correcta de hacerlo sería configurar un servicio web para gestionar el inicio de sesión a través de OAuth y hacer que la aplicación solo se conecte a su servicio web. Desde allí, el servicio web podría manejar el inicio de sesión de la misma manera en que OAuth normalmente funcionaría (y protegería la clave secreta). Luego puede usar el mecanismo que desee para asegurarse de que la aplicación solo se conecte a su servicio web para iniciar sesión.

    
respondido por el AJ Henderson 22.05.2013 - 21:47
fuente

Lea otras preguntas en las etiquetas