SAML, onder die enjinkap: die handtekening binne-in die brief
SAML meld jou aan by byna elke werksprogram, en sy handtekening woon binne die XML wat dit teken.
SAML meld jou aan by byna elke werksprogram, en sy handtekening woon binne die XML wat dit teken. Onder die enjinkap: die aanmelddans tussen app, blaaier en identiteitverskaffer, hoe 'n bewering lyk, waarom kanonisering oor elke greep moet saamstem, en waarom dieselfde foutklas steeds terugkom van 2012 tot 2025. Aangespoor deur Trail of Bits se "SAML: A fractal of bad design" (312 punte op Hacker News).
Lees die geskrewe uitgawe (Engels) ↗
Wat hierdie video dek
- SAML: die aanmelding wat homself van binne af teken
- 2002: vier XML-formate, een komitee, 'n hele bedryf
- Die aanmelddans: app → identiteitverskaffer → terug deur jou blaaier
- Die bewering: die handtekening woon binne-in wat dit teken
- Kanonisering: stem oor elke greep saam, anders meld niemand aan nie
Vertaalde transkripsie
Vertaal uit die oorspronklike Engelse vertelling. Beskikbare klank en onderskrifte word deur YouTube beheer.
SAML: die aanmelding wat homself van binne af teken
0:00 SAML is die XML wat jou aanmeld by byna elke werksprogram wat jy besit, en sy handtekening woon binne-in die dokument wat dit teken, soos 'n notaris wat sy stempel binne-in die koevert wat hy verseël, vasheg. Tien jaar nadat 'n komitee dit geskryf het, het navorsers veertien SAML raamwerke getoets. Elf het geval. En hierdie week het 'n Trail of Bits-pos wat dit 'n fraktaal van slegte ontwerp noem, die voorblad van Hacker News gehaal. In drie minute: hoe die aanmelddans werk, waar die handtekening versteek is,
0:27 en waarom die oplossing waaroor almal saamstem 'n ander protokol is. Dit is The Daily Diff, onder die enjinkap.
2002: vier XML-formate, een komitee, 'n hele bedryf
0:34 Tweeduisend-en-twee. 'n Sekuriteitskomitee by Oasis voeg vier verskaffer-XML-formate saam in een. Universiteite aanvaar dit eerste, dan bou Okta 'n maatskappy daarop, die vinnigste wat 'n komitee-dokument ooit in inkomste verander het. Jy maak die app oop.
Die aanmelddans: app → identiteitverskaffer → terug deur jou blaaier
0:46 Dit het geen idee wie jy is nie, so dit stuur jou blaaier na die identiteitverskaffer, sê jou maatskappy se Okta. Jy meld daar aan. Okta gee jou blaaier 'n getekende XML-dokument wat sê wie jy is, en die blaaier pos dit terug.
Die bewering: die handtekening woon binne-in wat dit teken
0:59 Daardie dokument is die bewering. Dit noem die gebruiker, en die handtekening sit binne-in dit, wat terugwys na die bewering deur sy ID. En die hele ding ry deur jou blaaier, wat wil sê, deur die gebruiker. Om dit te kontroleer, die app
Kanonisering: stem oor elke greep saam, anders meld niemand aan nie
1:11 herboust die presiese grepe wat geteken is. Dit sny die handtekening weer uit, normaliseer die witspasie en die attribuut volgorde, en haash die resultaat. Dis kanonisering, en as die twee kante met 'n enkele greep verskil, meld niemand aan nie. 'n JSON-webtoken doen dit anders. Kop, loonvrag en handtekening sit langs mekaar met kolletjies tussenin. Niks om eers uit te sny nie.
2012: die kontroleerder en die leser kyk na verskillende elemente
1:32 Hier is die kraak. Die kode wat die handtekening kontroleer en die kode wat die gebruikersnaam lees, is dikwels twee verskillende stukke. In tweeduisend-en-twaalf het 'n referaat genaamd On Breaking SAML gewys jy kan die getekende bewering skuif waar die leser dit ignoreer, en 'n tweede een plaas waar dit kyk. Salesforce en Shibboleth was onder die elf wat daarvoor geval het. In tweeduisend-en-agtien het Duo gewys dat 'n opmerking binne 'n gebruikersnaam sommige
2018 en 2025: twee ontleders, twee verskillende antwoorde
1:55 biblioteke slegs die helfte van die naam laat lees, terwyl die handtekening steeds reg was. In tweeduisend-vyf-en-twintig het GitHub twee XML-ontleders binne-in Ruby SAML gevind wat verskil het oor dieselfde dokument. Dieselfde fout, nuwe dekade. Trail of Bits noem dit 'n fraktaal, omdat elke vlak waarop jy inzoem die
Waarom dit aanhou breek: 'n fraktaal van slegte ontwerp
2:12 dieselfde fout het. Dit is gebou op XML, die handtekening is omhul, en regte aanmeldings gebruik dalk 'n tiende van die spesifikasie. En die topantwoord op Hacker News kom van die koper. As jy nie SAML-ondersteuning het nie, kan ek 'n produk vind wat dit wel het. Beide is waar, wat die probleem is. So, Maandag. SHIP IT OpenID Connect eerste, Fly en Tailscale verkoop aan
Maandag: OIDC eerste, 'n onderhoude biblioteek, streng vorme
2:31 ondernemings sonder SAML hoegenaamd. As 'n kliënt dit afdwing, gebruik 'n onderhoude biblioteek, hou dit opgedateer, en verwerp boodskappe wat nie lyk soos wat Okta of Google stuur nie. Moet nooit jou eie handtekeningkontrole skryf nie.
Oordeel, onder die enjinkap: REVERT
2:43 Oordeel, onder die enjinkap. REVERT. Byna vyf-en-twintig jaar, een foutklas wat nooit sterf nie, en die oplossing waaroor almal saamstem, is 'n ander protokol. Verlede Saterdag het ek wagwoorde uitmekaar gehaal, so sê vir my wat om volgende oop te maak in die opmerkings. En dit is The Daily Diff vir vandag. Ek is Niko van Axrisi. NEEDS REVIEW verantwoordelik.
Bronne
- Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)blog.trailofbits.com
- Hacker News threadnews.ycombinator.com
- Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012www.usenix.org
- Duo Labs, SAML vulnerabilities affecting multiple implementations (2018): https://duo.com/blog/duo-finds-saml-vulnerabilities-affecting-multiple-implementations · CERT VU#475445www.kb.cert.org
- GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)github.blog



