# SAML, en detalle: a sinatura dentro da carta

Published: 2026-09-24

SAML inicia a sesión en case todas as aplicacións de traballo, e a súa sinatura vive dentro do XML que asina. En detalle: a danza de inicio de sesión entre a aplicación, o navegador e o provedor de identidade, como se ve unha afirmación, por que a canonicalización ten que acordar cada byte, e por que a mesma clase de erros segue volvendo de 2012 a 2025. Impulsado por "SAML: A fractal of bad design" (312 puntos en Hacker News) de Trail of Bits.

Canonical: https://thedailydiff.dev/gl/video/2026-09-24-saml-under-the-hood/

## Que abrangue este vídeo

- SAML: o inicio de sesión que se asina a si mesmo dende dentro
- 2002: catro formatos XML, un comité, toda unha industria
- A danza de inicio de sesión: aplicación → provedor de identidade → de volta a través do teu navegador
- A aserción: a sinatura vive dentro do que asina
- Canonicalización: acordo en cada byte, ou ninguén inicia sesión

## Capítulos

- 0:00 SAML: o inicio de sesión que se asina a si mesmo dende dentro
- 0:34 2002: catro formatos XML, un comité, toda unha industria
- 0:46 A danza de inicio de sesión: aplicación → provedor de identidade → de volta a través do teu navegador
- 0:59 A aserción: a sinatura vive dentro do que asina
- 1:10 Canonicalización: acordo en cada byte, ou ninguén inicia sesión
- 1:32 2012: o verificador e o lector miran elementos diferentes
- 1:51 2018 e 2025: dous analizadores, dúas respostas diferentes
- 2:08 Por que segue fallando: un fractal de mal deseño
- 2:27 Luns: OIDC primeiro, unha biblioteca mantida, formas estritas
- 2:43 Veredicto, en detalle: REVERT

## Transcrición traducida

Traducido da narración orixinal en inglés. O audio e os subtítulos dispoñibles son controlados por YouTube.

### SAML: o inicio de sesión que se asina a si mesmo dende dentro

0:00 SAML é o XML que inicia a sesión en case todas as aplicacións de traballo que posúes, e a súa sinatura vive dentro do documento que asina, como un notario que engrapa o seu selo dentro do sobre que está a selar. Dez anos despois de que un comité o escribise, os investigadores probaron catorce frameworks SAML. Once caeron. E esta semana, unha publicación de Trail of Bits chamándoo un fractal de mal deseño chegou á primeira páxina de Hacker News. En tres minutos: como funciona a danza de inicio de sesión, onde se esconde a sinatura,

0:27 e por que a solución na que todos están de acordo é un protocolo diferente. Isto é The Daily Diff, en detalle.

### 2002: catro formatos XML, un comité, toda unha industria

0:34 Dous mil dous. Un comité de seguridade en Oasis fusiona catro formatos XML de provedores nun só. As universidades adóptano primeiro, logo Okta constrúe unha empresa sobre el, o máis rápido que un documento de comité se converteu en ingresos. Abres a aplicación.

### A danza de inicio de sesión: aplicación → provedor de identidade → de volta a través do teu navegador

0:46 Non ten idea de quen es, polo que redirixe o teu navegador ao provedor de identidade, digamos o Okta da túa empresa. Inicias sesión alí. Okta entrégalle ao teu navegador un documento XML asinado que di quen es, e o navegador o envía de volta.

### A aserción: a sinatura vive dentro do que asina

0:59 Ese documento é a aserción. Nomea o usuario, e a sinatura está dentro del, apuntando de volta á aserción polo seu ID. E todo o proceso pasa polo teu navegador, é dicir, a través do usuario. Para verificalo, a aplicación

### Canonicalización: acordo en cada byte, ou ninguén inicia sesión

1:11 reconstrúe os bytes exactos que foron asinados. Recorta a sinatura, normaliza o espazo en branco e a orde dos atributos, e fai un hash do resultado. Iso é a canonicalización, e se as dúas partes non están de acordo nun só byte, ninguén inicia sesión. Un token web JSON faino de xeito diferente. Cabeceira, carga útil e sinatura están lado a lado con puntos no medio. Nada que recortar primeiro.

### 2012: o verificador e o lector miran elementos diferentes

1:32 Aquí está o problema. O código que verifica a sinatura e o código que le o nome de usuario adoitan ser dúas pezas diferentes. En 2012, un artigo chamado On Breaking SAML mostrou que podías mover a aserción asinada onde o lector a ignora, e poñer unha segunda onde o busca. Salesforce e Shibboleth estiveron entre os once que caeron nesta trampa. En 2018, Duo mostrou que un comentario dentro dun nome de usuario podía facer que algunhas

### 2018 e 2025: dous analizadores, dúas respostas diferentes

1:55 bibliotecas lesen só a metade do nome, mentres que a sinatura aínda era válida. En 2025, GitHub atopou dous analizadores XML dentro de ruby SAML non estando de acordo sobre o mesmo documento. O mesmo erro, nova década. Trail of Bits chámalle un fractal, porque cada nivel no que fas zoom ten a

### Por que segue fallando: un fractal de mal deseño

2:12 mesma falla. Está construído sobre XML, a sinatura está envolta, e os inicios de sesión reais usan quizais un décimo da especificación. E a principal resposta en Hacker News vén do comprador. Se non tes soporte para SAML, podo atopar un produto que o teña. Ambas son certas, o cal é o problema. Entón, luns. SHIP IT OpenID Connect primeiro, Fly e Tailscale venden a

### Luns: OIDC primeiro, unha biblioteca mantida, formas estritas

2:31 empresas sen SAML en absoluto. Se un cliente o forza, usa unha biblioteca mantida, mantena actualizada, e rexeita as mensaxes que non se parecen ás que envían Okta ou Google. Nunca escribas a túa propia verificación de sinatura.

### Veredicto, en detalle: REVERT

2:43 Veredicto, en detalle. REVERT. Case vinte e cinco anos, unha clase de erros que nunca morre, e a solución na que todos están de acordo é un protocolo diferente. O sábado pasado desmontei as passkeys, así que dime que abrir a continuación nos comentarios. E esa é a diferenza por hoxe. Son Niko de Axrisi. Fusiona con responsabilidade.

## Fontes

- [Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)](https://blog.trailofbits.com/2026/09/21/saml-a-fractal-of-bad-design/) — blog.trailofbits.com
- [Hacker News thread](https://news.ycombinator.com/item?id=49806335) — news.ycombinator.com
- [Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012](https://www.usenix.org/conference/usenixsecurity12/technical-sessions/presentation/somorovsky) — www.usenix.org
- [Duo Labs, SAML vulnerabilities affecting multiple implementations (2018): https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations · CERT VU#475445](https://www.kb.cert.org/vuls/id/475445) — www.kb.cert.org
- [GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)](https://github.blog/security/sign-in-as-anyone-bypassing-saml-sso-authentication-with-parser-differentials/) — github.blog
