+− THE DAILY DIFFdev & AI news
REVERT

SAML, në thellësi: nënshkrimi brenda letrës

SAML ju kyç pothuajse në çdo aplikacion pune dhe nënshkrimi i tij jeton brenda XML-së që nënshkruan.

SAML ju kyç pothuajse në çdo aplikacion pune dhe nënshkrimi i tij jeton brenda XML-së që nënshkruan. Në thellësi: vallja e hyrjes midis aplikacionit, shfletuesit dhe ofruesit të identitetit, si duket një pohim, pse kanonizimi duhet të pajtohet për çdo bajt, dhe pse i njëjti klasë e gabimeve vazhdon të kthehet nga viti 2012 në 2025. Nxitur nga "SAML: Një fraktal i dizajnit të keq" (312 pikë në Hacker News) të Trail of Bits.

Lexoni edicionin e shkruar (anglisht) ↗

Çfarë mbulon kjo video

  • SAML: kyçja që nënshkruan vetveten nga brenda
  • 2002: katër formate XML, një komitet, një industri e tërë
  • Vallja e kyçjes: aplikacion → ofrues identiteti → kthim përmes shfletuesit tuaj
  • Pohimi: nënshkrimi jeton brenda asaj që nënshkruan
  • Kanonizimi: pajtohuni për çdo bajt, ose askush nuk kyçet

Transkript i përkthyer

Përkthyer nga tregimi origjinal në anglisht. Audio dhe titrat e disponueshme kontrollohen nga YouTube.

SAML: kyçja që nënshkruan vetveten nga brenda

0:00 SAML është XML që ju kyç pothuajse në çdo aplikacion pune që keni, dhe nënshkrimi i tij jeton brenda dokumentit që nënshkruan, si një noter që vendos vulën e tij brenda zarfit që po vulos. Dhjetë vjet pasi një komitet e shkroi, studiuesit testuan katërmbëdhjetë korniza SAML. Njëmbëdhjetë ranë. Dhe këtë javë, një postim i Trail of Bits që e quante atë një fraktal të dizajnit të keq u shfaq në faqen kryesore të Hacker News. Në tre minuta: si funksionon vallja e kyçjes, ku fshihet nënshkrimi,

0:27 dhe pse rregullimi për të cilin të gjithë bien dakord është një protokoll tjetër. Ky është The Daily Diff, në thellësi.

2002: katër formate XML, një komitet, një industri e tërë

0:34 Dymijë e dy. Një komitet sigurie në Oasis bashkon katër formate XML të shitësve në një. Universitetet e adoptojnë së pari, pastaj Okta ndërton një kompani mbi të, më shpejt se çdo dokument i komitetit që u kthye në të ardhura. Ju hapni aplikacionin.

Vallja e kyçjes: aplikacion → ofrues identiteti → kthim përmes shfletuesit tuaj

0:46 Nuk ka asnjë ide se kush jeni, kështu që e kthen shfletuesin tuaj te ofruesi i identitetit, të themi Okta e kompanisë suaj. Ju kyçeni aty. Okta i jep shfletuesit tuaj një dokument XML të nënshkruar që tregon kush jeni, dhe shfletuesi e poston atë përsëri.

Pohimi: nënshkrimi jeton brenda asaj që nënshkruan

0:59 Ai dokument është pohimi. Ai emërton përdoruesin, dhe nënshkrimi qëndron brenda tij, duke treguar përsëri tek pohimi me ID-në e tij. Dhe e gjithë kjo kalon përmes shfletuesit tuaj, që do të thotë, përmes përdoruesit. Për ta kontrolluar, aplikacioni

Kanonizimi: pajtohuni për çdo bajt, ose askush nuk kyçet

1:11 rindërton bajtat e saktë që u nënshkruan. Ai pret nënshkrimin, normalizon hapësirën e bardhë dhe rendin e atributit, dhe hashohet rezultati. Kjo është kanonizimi, dhe nëse dy palët nuk pajtohen për një bajt të vetëm, askush nuk kyçet. Një shenjë uebi JSON e bën ndryshe. Koka, ngarkesa dhe nënshkrimi qëndrojnë pranë njëri-tjetrit me pika në mes. Asgjë për t'u prerë së pari.

2012: kontrolluesi dhe lexuesi shikojnë elemente të ndryshme

1:32 Ja çarja. Kodi që kontrollon nënshkrimin dhe kodi që lexon emrin e përdoruesit janë shpesh dy pjesë të ndryshme. Në dymijë e dymbëdhjetë, një punim i quajtur On Breaking Saml tregoi se mund të lëvizje pohimin e nënshkruar aty ku lexuesi e injoron, dhe të vendosësh një të dytë aty ku ai shikon. Salesforce dhe Shibboleth ishin ndër njëmbëdhjetë që ranë pre e kësaj. Në dymijë e tetëmbëdhjetë, Duo tregoi se një koment brenda një emri përdoruesi mund të bënte që disa

2018 dhe 2025: dy parsera, dy përgjigje të ndryshme

1:55 biblioteka të lexonin vetëm gjysmën e emrit, ndërsa nënshkrimi ende kontrollohej. Në dymijë e njëzet e pesë, GitHub gjeti dy parsera XML brenda ruby Saml që nuk pajtoheshin për të njëjtin dokument. I njëjti gabim, dekadë e re. Trail of Bits e quan atë një fraktal, sepse çdo nivel në të cilin zmadhoni ka të njëjtin

Pse vazhdon të prishet: një fraktal i dizajnit të keq

2:12 defekt. Është ndërtuar mbi XML, nënshkrimi është i mbështjellë, dhe kyçjet reale përdorin ndoshta një të dhjetën e specifikimit. Dhe përgjigja kryesore në Hacker News vjen nga blerësi. Nëse nuk keni mbështetje SAML, mund të gjej një produkt që e ka. Të dyja janë të vërteta, gjë që është problemi. Pra, e hënë. SHIP OpenID Connect së pari, Fly dhe Tailscale u shesin

E hënë: OIDC së pari, një bibliotekë e mirëmbajtur, forma të rrepta

2:31 ndërmarrjeve pa SAML fare. Nëse një klient e detyron, përdorni një bibliotekë të mirëmbajtur, mbajeni të përditësuar, dhe refuzoni mesazhet që nuk duken si ato që dërgojnë Okta ose Google. Mos shkruani kurrë kontrollin tuaj të nënshkrimit.

Vendimi, në thellësi: REVERT

2:43 Vendimi, në thellësi. REVERT. Pothuajse njëzet e pesë vjet, një klasë gabimesh që nuk vdes kurrë, dhe zgjidhja për të cilën të gjithë bien dakord është një protokoll tjetër. Të shtunën e kaluar çmontova passkeys, kështu që më thoni çfarë të hap tjetër në komente. Dhe ky është ndryshimi për sot. Unë jam Niko nga Axrisi. Bashkohuni me përgjegjësi.

Burimet

  1. Trail of Bits, "SAML: A fractal of bad design" (Matt Schwager, Sep 21, 2026)blog.trailofbits.com
  2. Hacker News threadnews.ycombinator.com
  3. Somorovsky et al., "On Breaking SAML: Be Whoever You Want to Be", USENIX Security 2012www.usenix.org
  4. 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
  5. GitHub Security Lab, "Sign in as anyone: Bypassing SAML SSO authentication with parser differentials" (Mar 12, 2025)github.blog

Video të ngjashme