Comparación de los 3 principales proveedores de identidades federadas: OpenID, OAuth, SAML8 min read

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
  • El siguiente diagrama explica un caso de uso para un escenario de OpenID:

    identidad_OpenID

    Consideraciones de seguridad

    OpenID tuvo algunas vulnerabilidades interesantes en el pasado, por ejemplo:

    • 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.
      • 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 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

        El siguiente diagrama explica un caso de uso para un escenario SAML:

        Identidad federada_SAML

        Consideraciones de seguridad

        • Un grupo de investigadores presentó un trabajo en 2011 donde utilizaban una vulnerabilidad de XML Signature Wrapping para suplantar a cualquier usuario.

        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 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
        • El siguiente diagrama explica un caso de usuario para un escenario OAuth:

          Consideraciones de seguridad

          • 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.
            • 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *