Con la proliferación de servicios en Internet, especialmente los relacionados con redes sociales, el problema de la multitud de sistemas de autenticación de usuarios y de acceso a los recursos y datos personales se hace cada vez más importante. En este trabajo se describen y discuten los principales estándares y protocolos de autenticación y autorización en Internet utilizados en la actualidad, no tanto desde un punto de vista técnico de funcionamiento de los protocolos (su especificación y documentación relacionada está disponible en la red), sino desde la perspectiva de los usuarios finales de esos servicios.
Sistemas de Autenticación y Autorización en Internet (PDF; 1,30MB)
Este estudio fue realizado para el Máster en Interacción Persona-Ordenador de la Universitat de Lleida.
Para empezar, se distingue entre autenticación y autorización:
Autenticación: consiste en un sistema para certificar que el usuario es quien dice ser.
Autorización: consiste en dar acceso a una serie de recursos a un usuario o sistema […] la autorización que un usuario proporciona sobre sus recursos en un determinado sistema para que un tercer sistema tenga acceso a ellos.
El trabajo incluye una tabla-resumen de los diferentes sistemas estudiados:
Protocolo | Propósito | Última versión / estado | Ventajas | Inconvenientes |
---|---|---|---|---|
OpenID | Autenticación (federada) | 2.0 (de 2007) | Single-sign-on sin depender de ningún proveedor específico (federado). | Protocolo complejo y antiguo; potenciales problemas de seguridad, privacidad, usabilidad. Pocos incentivos para ser consumidor. |
OAuth | Autorización | 2.0 (en borrador, pero muy utilizada | Muy utilizado en servidores de Internet. | Dependencia de un servidor para la autenticación (delegada). |
OpenID OAuth Hybrid Protocol | Autenticación (federada) + autorización; interfaz única | Borrador (pero adoptado por grandes proveedores) | Una única interfaz para autenticación (OpenID) + autorización (OAuth). | Depende de que los servidores implementen ambos protocolos. |
Facebook Connect | Autenticación (delegada) + autorización + funciones red social | Abandonado en favor de OAuth 2.0 | Parte de una amplia base de usuarios y datos personales. | Muy ligado a un único proveedor. Problemas de privacidad. |
OpenID Connect | Autenticación (federada) a partir de OAuth | Propuesta (sobre OAuth 2.0) | Las mismas ventajas que OpenID con una implementación más sencilla; aprovecha las implementaciones de OAuth 2.0. | Similares a OpenID; pocos incentivos para ser consumidor. |
Y estas son las conclusiones del trabajo:
La principal motivación para el desarrollo de protocolos abiertos de autenticación y autorización en Internet es el desarrollo espectacular de redes sociales en Internet; ya no es una alternativa práctica que cada aplicación de ese tipo construya y mantenga su propia base de datos de usuarios, datos personales, relaciones, etc.
Protocolos y APIs de redes sociales como Open Graph y OpenSocial han surgido como propuestas para permitir que Internet se convierta en una verdadera red social global, donde las aplicaciones no son “jardines privados” sino que enlazan e intercambian datos y funcionalidades entre ellos. Este tipo de protocolos requieren, sin embargo, de un paso básico: el usuario debe autenticar quién es, y qué permite hacer a los demás con sus datos. Esa es la problemática en la que se ha centrado este trabajo.
En la actualidad parecen existir dos tendencias a la hora de dar soluciones a ese problema. Por un lado, los grandes servidores de redes sociales (como Facebook, Twitter o Google) pretenden convertirse en los elegidos por los usuarios como su gestor principal de identidad; eso les convierte en el repositorio donde los usuarios almacenan sus datos personales (además actualizados), lo que constituye un gran valor para las compañías. En ese sentido, es beneficioso para ellas convertirse en proveedores de autorización y autenticación, principalmente a través del protocolo OAuth 2.0, que a pesar de ser todavía un borrador, está siendo ampliamente aceptado por muchos proveedores; la lucha no es tanto por el uso de un protocolo u otro, sino por convertirse en el proveedor elegido por los usuarios. Eso significa que existe un fuerte incentivo para que los servidores se conviertan en proveedores y que terceros consuman sus datos y servicios, pero el incentivo para convertirse en consumidores de datos de terceros es menor.
Por otro lado, protocolos como OpenID y OpenID Connect representan un esfuerzo no sólo hacia la definición de protocolos abiertos, sino hacia la descentralización de la gestión de identidad y de datos personales. Si el interés de los proveedores de redes sociales es convertirse en el punto donde los usuarios tienen su identidad principal para atraer y gestionar sus datos, la propuesta de OpenID y OpenID Connect es que se pueda elegir entre diferentes servidores para ser utilizados como proveedores de identidad, y evitar esa centralización que puede provocar problemas de privacidad.
¿Hacia dónde evolucionará la situación en un futuro? Es difícil decirlo, aunque podría aventurarse que evolucionará hacia la típica situación de long tail tan habitual en Internet, en la que unos pocos sitios webs populares se conviertan en los gestores centrales de identidad de un gran número de usuarios, mientras que exista una larga cola de proveedores minoritarios pero que, en conjunto, administren la identidad de un número importante de usuarios, quizás los más preocupados por cuestiones de privacidad.