# SAML, under the hood: signaturen inuti brevet

Published: 2026-09-24

SAML loggar in dig på nästan varje arbetsapp, och dess signatur finns inuti den XML den signerar. Under huven: inloggningsdansen mellan app, webbläsare och identitetsleverantör, hur en assertion ser ut, varför kanonisering måste komma överens om varje byte, och varför samma typ av bugg fortsätter att återkomma från 2012 till 2025. Inspirerad av Trail of Bits' "SAML: A fractal of bad design" (312 poäng på Hacker News).

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

## Vad den här videon täcker

- SAML: inloggningen som signerar sig själv inifrån
- 2002: fyra XML-format, en kommitté, en hel industri
- Inloggningsdansen: app → identitetsleverantör → tillbaka via din webbläsare
- Assertionen: signaturen finns inuti det den signerar
- Kanonisering: kom överens om varje byte, annars loggar ingen in

## Kapitel

- 0:00 SAML: inloggningen som signerar sig själv inifrån
- 0:34 2002: fyra XML-format, en kommitté, en hel industri
- 0:46 Inloggningsdansen: app → identitetsleverantör → tillbaka via din webbläsare
- 0:59 Assertionen: signaturen finns inuti det den signerar
- 1:10 Kanonisering: kom överens om varje byte, annars loggar ingen in
- 1:32 2012: kontrollanten och läsaren tittar på olika element
- 1:51 2018 och 2025: två parsers, två olika svar
- 2:08 Varför det fortsätter att gå sönder: en fraktal av dålig design
- 2:27 Måndag: OIDC först, ett underhållet bibliotek, strikta former
- 2:43 Dom, under huven: REVERT

## Översatt transkription

Översatt från den ursprungliga engelska berättelsen. Tillgängligt ljud och undertexter styrs av YouTube.

### SAML: inloggningen som signerar sig själv inifrån

0:00 SAML är den XML som loggar in dig på nästan varje arbetsapp du äger, och dess signatur finns inuti dokumentet den signerar, som en notarie som häftar sin stämpel inuti kuvertet han förseglar. Tio år efter att en kommitté skrev det, testade forskare fjorton SAML ramverk. Elva föll. Och den här veckan hamnade ett inlägg från Trail of Bits som kallar det en fraktal av dålig design på Hacker News förstasida. På tre minuter: hur inloggningsdansen fungerar, var signaturen gömmer sig,

0:27 och varför lösningen alla är överens om är ett annat protokoll. Detta är The Daily Diff, under huven.

### 2002: fyra XML-format, en kommitté, en hel industri

0:34 Två tusen två. En säkerhetskommitté på Oasis slår samman fyra leverantörs-XML-format till ett. Universitet anammar det först, sedan bygger Okta ett företag på det, det snabbaste ett kommittédokument någonsin omsattes till intäkter. Du öppnar appen.

### Inloggningsdansen: app → identitetsleverantör → tillbaka via din webbläsare

0:46 Den har ingen aning om vem du är, så den skickar din webbläsare till identitetsleverantören, säg ditt företags Okta. Du loggar in där. Okta ger din webbläsare ett signerat XML-dokument som säger vem du är, och webbläsaren skickar tillbaka det.

### Assertionen: signaturen finns inuti det den signerar

0:59 Det dokumentet är assertionen. Det namnger användaren, och signaturen sitter inuti det, pekande tillbaka till assertionen med dess ID. Och hela saken åker genom din webbläsare, vilket betyder, genom användaren. För att kontrollera det, appen

### Kanonisering: kom överens om varje byte, annars loggar ingen in

1:11 återskapar de exakta byten som signerades. Den klipper ut signaturen igen, normaliserar mellanrummen och attributordningen, och hashar resultatet. Det är kanonisering, och om de två sidorna är oense om en enda byte, loggar ingen in. En JSON webbtoket gör det annorlunda. Rubrik, nyttolast och signatur sitter sida vid sida med punkter emellan. Inget att klippa ut först.

### 2012: kontrollanten och läsaren tittar på olika element

1:32 Här är sprickan. Koden som kontrollerar signaturen och koden som läser användarnamnet är ofta två olika delar. Under tjugotolv, visade en artikel kallad On Breaking SAML att du kunde flytta den signerade assertionen där läsaren ignorerar den, och placera en andra där den tittar. Salesforce och Shibboleth var bland de elva som föll för det. Under tjugoarton visade Duo att en kommentar inuti ett användarnamn kunde få vissa

### 2018 och 2025: två parsers, två olika svar

1:55 bibliotek att läsa bara halva namnet, medan signaturen fortfarande var giltig. Under tjugotjugofem hittade GitHub två XML-parsrar inuti ruby SAML som var oense om samma dokument. Samma bugg, nytt decennium. Trail of Bits kallar det en fraktal, eftersom varje nivå du zoomar in på har samma

### Varför det fortsätter att gå sönder: en fraktal av dålig design

2:12 fel. Den är byggd på XML, signaturen är omsluten, och riktiga inloggningar använder kanske en tiondel av specifikationen. Och det översta svaret på Hacker News kommer från köparen. Om du inte har SAML-stöd, kan jag hitta en produkt som har det. Båda är sanna, vilket är problemet. Så, måndag. SHIP OpenID Connect först, Fly och Tailscale säljer till

### Måndag: OIDC först, ett underhållet bibliotek, strikta former

2:31 företag helt utan SAML. Om en kund tvingar fram det, använd ett underhållet bibliotek, håll det patchat, och avvisa meddelanden som inte ser ut som vad Okta eller Google skickar. Skriv aldrig din egen signaturkontroll.

### Dom, under huven: REVERT

2:43 Dom, under huven. REVERT. Nästan tjugofem år, en buggklass som aldrig dör, och lösningen alla är överens om är ett annat protokoll. I lördags tog jag isär passkeys, så berätta vad jag ska öppna nästa gång i kommentarerna. Och det var the diff för idag. Jag är Niko från Axrisi. Merge responsibly.

## Källor

- [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
