HeadlinesBriefing favicon HeadlinesBriefing.com

SAML: Un fractal de mal diseño

Hacker News •
×

Nacido de la academia y criado en departamentos de TI corporativos, el protocolo de autenticación Security Assertion Markup Language (SAML) sigue siendo un pilar en estas organizaciones. Sin embargo, es hora de que se retire. Con el auge de las empresas de software como servicio (SaaS) a finales de la década de 2000, los departamentos de TI necesitaban una forma para que los usuarios se autenticaran en muchos servicios web nuevos. SAML y la floreciente industria de inicio de sesión único (SSO) satisfacieron esta necesidad. Sin embargo, SAML está siendo aplastado bajo el peso de su propia complejidad. Es hora de deprecarlo y pasar a alternativas modernas como OpenID Connect (OIDC).

SAML 101: Lo insidioso de SAML es que realmente es en su mayor parte sencillo de entender, pero está construido sobre una base de arena, polvo de huesos y cenizas; funciona... si asumes que la validación de firmas XML es confiable. Pero la validación de firmas XML está profundamente maldita, y es tan complicada que la mayoría de las implementaciones de SAML desplegadas envuelven libxmlsec, una base de código C complicada que nadie lee.— Thomas Ptacek, 2023

SAML fue creado en 2002 por el Comité Técnico de Servicios de Seguridad (SSTC) de la Organización para el Avance de Estándares de Información Estructurada (OASIS). XML, a pesar de tener algunas cualidades redentoras, es bastante complejo en comparación con alternativas más nuevas como JSON. Además, un comité de subcomités teniendo reuniones es una receta para el diseño de protocolos "kitchen-sink". Y ciertamente, ahora hemos metido cuatro (¡!) protocolos de seguridad basados en XML en uno: Security Services Markup Language (S2ML) de Netegrity, AuthXML de Securant, XML Trust Assertion Service Specification (X-TASS) de VeriSign, e Information Technology Markup Language (ITML) de Jamcracker.

Sin embargo, el deseo de tal protocolo era innegable. A medida que Internet pasó de Web 1.0 a Web 2.0, los usuarios y las organizaciones necesitaban una forma fácil de autenticarse en muchos servicios web nuevos. La academia fue el mayor impulsor: Central Authentication Service (CAS) en 2002 en Yale, Shibboleth IdP en 2003 por Internet2, ADFS en 2003 por Microsoft, y simpleSAMLphp alrededor de 2007 por Uninett. Todos estos proyectos de autenticación eventualmente soportaron SAML. Una vez que se estableció esta capa base, la industria comercial la tomó y corrió hacia una industria multimillonaria. La industria de proveedores de SSO, identidad y autenticación también comenzó: Ping Identity (2002), OneLogin (2009), Okta (2009) y Duo Security (2010). Estas compañías se construyeron esencialmente sobre el protocolo SAML con la excepción de Duo, quienes introducirían su primer producto SSO en 2015, que es donde entro en la historia. Trabajé en el primer producto Access Gateway local de Duo (DAG), que se construyó sobre simpleSAMLphp y, obviamente, el protocolo SAML. Es donde me familiaricé íntimamente con el protocolo SAML y pasé muchos años de mi vida digiriendo sus largas especificaciones. Estuve allí cuando Kelby Ludwig encontró el comentario XML por...