¿Qué es OAuth? Funcionamiento, ventajas y desventajas de este estándar

En ocasiones, algunos servicios en línea deben interactuar entre sí, por ejemplo, si el acortador URL Bitly quisiera publicar en su timeline de Twitter, en lugar de solicitarle ingresar su contraseña, se emplea un protocolo llamado Open Authorization (OAuth), mencionan los especialistas en protección de datos. OAuth ayuda a los usuarios a simplificar el proceso de acceso a algunas plataformas, aunque es importante tener algunas consideraciones, pues se trata de nuestra información personal.

OAuth es un protocolo de autorización estándar abierto que ayuda a las aplicaciones para obtener un “acceso designado seguro”, permitiendo que servicios como Facebook autoricen a compañías como ESPN.com acceso al perfil de usuario sin necesidad de compartir las credenciales de acceso del interesado. Si un sitio de terceros (en este ejemplo ESPN) sufriera un incidente de seguridad de datos, la contraseña de Facebook del usuario permanece a salvo.

En lugar de compartir las contraseñas de los usuarios, OAuth emplea tokens de autorización para demostrar una identidad entre consumidores y proveedores de servicios, permitiendo que una aplicación interactúe con otra sin poner de por medio una contraseña, mencionan los expertos en protección de datos.

Acorde a los especialistas, OAuth se trata de la autorización, no de autenticación; en lugar de compartir datos con otras plataformas, OAuth trabaja como un token de autorización sin involucrar la información confidencial del usuario. Para explicarlo con un ejemplo cotidiano, piense en OAuth como un ticket de valet parking, este ticket autoriza al valet para arrancar un auto y entregarlo al cliente, mas no le brinda acceso a la guantera, cajuela o a cualquier bien que se encuentre dentro del automóvil.

Tres factores intervienen en un proceso de OAuth: usuario, consumidor y proveedor de servicios. A continuación se muestra un ejemplo que involucra a los tres actores: el usurario JOHN, el consumidor BITLY, y el prestador de servicios TWITTER. JOHN desea que BITLY pueda publicar enlaces recortados en su timeline de TWITTER, lo que involucra el siguiente proceso:

  • El usuario muestra su intención
  • JOHN (Usuario): “Hola, BITLY, quisiera que publicaras enlaces directamente en mi timeline de TWITTER”.
  • BITLY (Consumidor): “Bien, necesito solicitar permiso”.
  • El consumidor obtiene el permiso
  • BITLY: “Un usuario desea que yo pueda publicar en su timeline. ¿Podría obtener un token de solicitud?
  • TWITTER (Proveedor de servicios): “Claro. Aquí hay una ficha y un secreto”. El secreto se emplea para evitar la falsificación de solicitudes.
  • El usuario es redirigido al proveedor de servicios
  • BITLY: “OK, JOHN, te redirigiré a Twitter para que puedas aprobar la solicitud, lleva esta ficha contigo.
  • JOHN: “Bien”.

Aquí comienzan los problemas. Si BITLY fuese una compañía maliciosa podría abrir una ventana parecida a un cuadro de solicitud de TWITTER que en realidad podría tratarse de una ventana de phishing para extraer las credenciales de acceso del usuario. Especialistas en protección de datos del Instituto Internacional de Seguridad Cibernética (IICS) recomiendan a los usuarios siempre verificar la URL del sitio al que son redirigidos al momento de realizar una solicitud OAuth.

  • El usuario concede el permiso
  • JOHN: “TWITTER, me gustaría autorizar este token de solicitud que BITLY me dio”.
  • TWITTER: “Bien, solo para estar seguro, ¿autorizas a BITLY a publicar en tu timeline usando tu cuenta de TWITTER?
  • JOHN: “Sí”
  • TWITTER: “Bien, vuelve a BITLY para confirmar que tienen permiso para usar su token de solicitud.
  • El consumidor obtiene un token de acceso
  • BITLY: “TWITTER, ¿puedo cambiar este token de solicitud por un token de acceso?”
  • Twitter: “Claro. Aquí está su token de acceso y el secreto”.
  • El consumidor accede a los recursos protegidos
  • BITLY: “Me gustaría publicar este enlace en el timeline de JOHN usando mi token de acceso.
  • TWITTER: “Muy bien”.

Como puede apreciarse, JOHN nunca compartió sus credenciales de acceso con BITLY, sino que se concedió un acceso usando OAuth de forma segura. Acorde a los especialistas en protección de datos, JOHN podrá acceder a TWITTER y revisar los permisos que ha concedido a BITLY y otros consumidores, así como revocarlos en cualquier momento que desee.

El principal inconveniente es que este estándar no es infalible, por lo que algunos actores de amenazas podrían aprovecharse de algún usuario desprevenido para obtener amplios accesos a sus cuentas en línea e incluso robar sus credenciales de acceso, exponiendo a las víctimas a otra clase de ataques.