# SAML, onder de motorkap: de handtekening in de brief

Published: 2026-09-24

SAML meldt u aan bij bijna elke werkapp, en de handtekening ervan bevindt zich in de XML die het ondertekent. Onder de motorkap: de inlogdans tussen app, browser en identiteitsprovider, hoe een bewering eruitziet, waarom canonicalisatie over elke byte moet overeenkomen, en waarom dezelfde bugklasse steeds terugkomt van 2012 tot 2025. Naar aanleiding van Trail of Bits' "SAML: A fractal of bad design" (312 punten op Hacker News).

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

## Wat deze video behandelt

- SAML: de login die zichzelf van binnenuit ondertekent
- 2002: vier XML-formaten, één commissie, een hele industrie
- De inlogdans: app → identiteitsprovider → terug via uw browser
- De bewering: de handtekening bevindt zich in wat het ondertekent
- Canonicalisatie: overeenkomen over elke byte, anders logt niemand in

## Hoofdstukken

- 0:00 SAML: de login die zichzelf van binnenuit ondertekent
- 0:34 2002: vier XML-formaten, één commissie, een hele industrie
- 0:46 De inlogdans: app → identiteitsprovider → terug via uw browser
- 0:59 De bewering: de handtekening bevindt zich in wat het ondertekent
- 1:10 Canonicalisatie: overeenkomen over elke byte, anders logt niemand in
- 1:32 2012: de controleur en de lezer kijken naar verschillende elementen
- 1:51 2018 en 2025: twee parsers, twee verschillende antwoorden
- 2:08 Waarom het blijft breken: een fractaal van slecht ontwerp
- 2:27 Maandag: eerst OIDC, een onderhouden bibliotheek, strikte vormen
- 2:43 Oordeel, onder de motorkap: REVERT

## Vertaald transcript

Vertaald vanuit de originele Engelse gesproken tekst. Beschikbare audio en ondertiteling worden beheerd door YouTube.

### SAML: de login die zichzelf van binnenuit ondertekent

0:00 SAML is de XML die u aanmeldt bij bijna elke werkapp die u bezit, en de handtekening ervan bevindt zich in het document dat het ondertekent, als een notaris die zijn stempel in de envelop nietelt die hij verzegelt. Tien jaar nadat een commissie het schreef, testten onderzoekers veertien SAML frameworks. Elf faalden. En deze week haalde een Trail of Bits-bericht dat het een fractaal van slecht ontwerp noemde de voorpagina van Hacker News. In drie minuten: hoe de inlogdans werkt, waar de handtekening zich verbergt,

0:27 en waarom de oplossing waar iedereen het over eens is een ander protocol is. Dit is The Daily Diff, onder de motorkap.

### 2002: vier XML-formaten, één commissie, een hele industrie

0:34 Tweeduizend twee. Een beveiligingscommissie bij Oasis voegt vier XML-formaten van leveranciers samen tot één. Universiteiten nemen het eerst over, dan bouwt Okta er een bedrijf op, de snelste manier waarop een commissiedocument ooit in inkomsten is omgezet. U opent de app.

### De inlogdans: app → identiteitsprovider → terug via uw browser

0:46 Het heeft geen idee wie u bent, dus stuurt het uw browser door naar de identiteitsprovider, zeg het Okta van uw bedrijf. U logt daar in. Okta geeft uw browser een ondertekend XML-document dat zegt wie u bent, en de browser plaatst het terug.

### De bewering: de handtekening bevindt zich in wat het ondertekent

0:59 Dat document is de bewering. Het noemt de gebruiker, en de handtekening zit erin, terugverwijzend naar de bewering via zijn ID. En het geheel reist via uw browser, dat wil zeggen, via de gebruiker. Om het te controleren, de app

### Canonicalisatie: overeenkomen over elke byte, anders logt niemand in

1:11 bouwt de exacte bytes die ondertekend waren opnieuw op. Het snijdt de handtekening er weer uit, normaliseert de witruimte en de attribuut volgorde, en hasht het resultaat. Dat is canonicalisatie, en als de twee kanten het met één byte oneens zijn, logt niemand in. Een JSON-webtoken doet het anders. Header, payload en handtekening staan naast elkaar met punten ertussen. Niets om eerst uit te snijden.

### 2012: de controleur en de lezer kijken naar verschillende elementen

1:32 Hier is de barst. De code die de handtekening controleert en de code die de gebruikersnaam leest zijn vaak twee verschillende stukken. In tweeduizendtwaalf, een paper genaamd On Breaking SAML, liet zien dat je de ondertekende bewering kon verplaatsen waar de lezer het negeert, en een tweede kon plaatsen waar het kijkt. Salesforce en Shibboleth waren onder de elf die ervoor vielen. In tweeduizendachttien toonde Duo aan dat een opmerking in een gebruikersnaam ervoor kon zorgen dat sommige

### 2018 en 2025: twee parsers, twee verschillende antwoorden

1:55 bibliotheken slechts de helft van de naam lazen, terwijl de handtekening nog steeds klopte. In tweeduizendvijfentwintig vond GitHub twee XML-parsers binnenin Ruby SAML die het oneens waren over hetzelfde document. Zelfde bug, nieuw decennium. Trail of Bits noemt het een fractaal, omdat elk niveau waarop u inzoomt dezelfde

### Waarom het blijft breken: een fractaal van slecht ontwerp

2:12 fout heeft. Het is gebouwd op XML, de handtekening is ingesloten, en echte logins gebruiken misschien een tiende van de specificatie. En het beste antwoord op Hacker News komt van de koper. Als u geen SAML-ondersteuning heeft, kan ik een product vinden dat dat wel heeft. Beide zijn waar, wat het probleem is. Dus, maandag. SHIP OpenID Connect eerst, Fly en Tailscale verkopen aan

### Maandag: eerst OIDC, een onderhouden bibliotheek, strikte vormen

2:31 bedrijven zonder SAML. Als een klant het afdwingt, gebruik dan een onderhouden bibliotheek, houd het gepatcht, en weiger berichten die er niet uitzien zoals Okta of Google verzenden. Schrijf nooit uw eigen handtekeningcontrole.

### Oordeel, onder de motorkap: REVERT

2:43 Oordeel, onder de motorkap. REVERT. Bijna vijfentwintig jaar, één bugklasse die nooit sterft, en de oplossing waar iedereen het over eens is, is een ander protocol. Afgelopen zaterdag heb ik passkeys uit elkaar gehaald, dus vertel me wat ik hierna moet openen in de reacties. En dat is The Daily Diff voor vandaag. Ik ben Niko van Axrisi. Verantwoord samenvoegen.

## Bronnen

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