OpenID
OpenID es un estándar abierto patrocinado por Facebook, Microsoft, Google, PayPal, Ping Identity, Symantec y Yahoo. OpenID permite autenticar a los usuarios mediante unos servicios de terceros llamados proveedores de identidad. Los usuarios pueden elegir utilizar sus proveedores de OpenID preferidos para iniciar sesión en los sitios web que aceptan el esquema de autenticación de OpenID.
La especificación de OpenID define tres roles:
- El usuario final o la entidad que busca verificar su identidad
- La parte de confianza (RP), que es la entidad que busca verificar la identidad del usuario final
- El proveedor de OpenID (OP), que es la entidad que registra la URL de OpenID y puede verificar la identidad del usuario final
- Ataques de suplantación de identidad: Dado que la parte confidente controla el proceso de autenticación (si es necesario) ante el proveedor de OpenID, es posible que una parte confidente deshonesta reenvíe al usuario a un proveedor de OpenID falso y recoja las credenciales del usuario para el proveedor de OpenID legal.
- Fallas de autenticación: En marzo de 2012, tres investigadores presentaron un documento que ponía de manifiesto dos vulnerabilidades en OpenID. Ambas vulnerabilidades permiten a un atacante hacerse pasar por cualquier usuario a un sitio web si éste no comprueba adecuadamente si la respuesta del proveedor de OpenID contiene una dirección de correo electrónico debidamente firmada.
- El principal, que suele ser el usuario que busca verificar su identidad
- El proveedor de identidad (idP), que es la entidad que es capaz de verificar la identidad del usuario final
- El proveedor de servicios (SP), que es la entidad que busca utilizar el proveedor de identidad para verificar la identidad del usuario final
- Un grupo de investigadores presentó un trabajo en 2011 donde utilizaban una vulnerabilidad de XML Signature Wrapping para suplantar a cualquier usuario.
- El usuario final o la entidad propietaria del recurso en cuestión
- El servidor de recursos (OAuth Provider), que es la entidad que aloja el recurso
- El cliente (OAuth Consumer), que es la entidad que busca consumir el recurso tras obtener la autorización del cliente
- Se ha encontrado un fallo de vulnerabilidad de fijación de sesión en OAuth 1.0. Un atacante puede fijar un token para la víctima que se autoriza. El atacante entonces utiliza el token fijado.
- OAuth 2.0 fue descrito como un protocolo intrínsecamente inseguro ya que no soporta firma, encriptación, vinculación de canal o verificación del cliente. El protocolo depende totalmente de la seguridad de la capa de transporte subyacente (por ejemplo, SSL/TLS) para proporcionar confidencialidad e integridad.
El siguiente diagrama explica un caso de uso para un escenario de OpenID:
Consideraciones de seguridad
OpenID tuvo algunas vulnerabilidades interesantes en el pasado, por ejemplo:
SAML
El Lenguaje de Marcado de Aserción de Seguridad (SAML) es un producto del Comité Técnico de Servicios de Seguridad OASIS. Data de 2001, SAML es un estándar abierto basado en XML para el intercambio de datos de autenticación y autorización entre las partes.
La especificación SAML define tres funciones:
El siguiente diagrama explica un caso de uso para un escenario SAML:
Consideraciones de seguridad
OAuth
OAuth es otro estándar abierto. Se remonta a 2006, OAuth se diferencia de OpenID y SAML en que es exclusivamente para fines de autorización y no de autenticación.
Las especificaciones de OAuth definen los siguientes roles:
El siguiente diagrama explica un caso de usuario para un escenario OAuth:
Consideraciones de seguridad
Esta tabla explica las principales diferencias entre los tres protocolos:
OpenID |
OAuth |
SAML |
|
Fechas de | |||
Versión actual |
OpenID 2.0 |
OAuth 2.0 |
SAML 2.0 |
Propósito principal |
Inicio de sesión único.On para consumidores |
Autorización de la API entre aplicaciones |
Inicio de sesión únicoOn para usuarios empresariales |
Protocolos utilizados |
XRDS, HTTP |
JSON, HTTP |
SAM, XML, HTTP, SOAP |
Nº. de CVEs relacionados |
Otros protocolos
Hay un número creciente de otras opciones de identidad federada. Aquí hay algunos ejemplos.
Higgins: Higgins es un nuevo protocolo de código abierto que permite a los usuarios controlar qué información de identidad se libera a una empresa.
Windows CardSpace: CardSpace es el nuevo metasistema de identidad de Microsoft que proporciona interoperabilidad entre los proveedores de identidad y las partes de confianza con el usuario en control. Sin embargo, este protocolo está retirado y Microsoft está trabajando en un sustituto llamado U-Prove.
MicroID: MicroID es una nueva capa de identidad para la web y los microformatos que permiten a cualquier persona reclamar de forma sencilla la propiedad verificable sobre sus propias páginas y contenidos alojados en cualquier lugar.
Liberty Alliance: Liberty Alliance es un gran protocolo de orientación comercial que proporciona confianza de identidad interempresarial. Es el mayor protocolo de confianza de identidad existente desplegado en todo el mundo.