+− THE DAILY DIFFdev & AI news
REVERT

SAML, unter der Haube: Die Signatur im Inneren des Briefes

SAML meldet Sie bei fast jeder Arbeits-App an, und seine Signatur befindet sich im Inneren des XML-Dokuments, das es signiert.

SAML meldet Sie bei fast jeder Arbeits-App an, und seine Signatur befindet sich im Inneren des XML-Dokuments, das es signiert. Unter der Haube: Der Anmelde-Tanz zwischen App, Browser und Identitätsanbieter, wie eine Behauptung aussieht, warum die Kanonisierung über jedes Byte übereinstimmen muss und warum dieselbe Fehlerklasse von 2012 bis 2025 immer wieder auftaucht. Angestoßen durch Trail of Bits' "SAML: Ein Fraktal schlechten Designs" (312 Punkte auf Hacker News).

Die schriftliche Ausgabe lesen (Englisch) ↗

Was dieses Video behandelt

  • SAML: die Anmeldung, die sich von innen selbst signiert
  • 2002: vier XML-Formate, ein Ausschuss, eine ganze Branche
  • Der Anmelde-Tanz: App → Identitätsanbieter → zurück durch Ihren Browser
  • Die Behauptung: Die Signatur befindet sich im Inneren dessen, was sie signiert
  • Kanonisierung: auf jedes Byte einigen, sonst meldet sich niemand an

Übersetztes Transkript

Aus der englischen Originalerzählung übersetzt. Verfügbare Audio- und Untertitel werden von YouTube gesteuert.

SAML: die Anmeldung, die sich von innen selbst signiert

0:00 SAML ist das XML, das Sie bei fast jeder Ihrer Arbeits-Apps anmeldet, und seine Signatur befindet sich im Inneren des Dokuments, das es signiert, wie ein Notar, der seinen Stempel in den Umschlag heftet, den er versiegelt. Zehn Jahre nachdem ein Ausschuss es verfasste, testeten Forscher vierzehn SAML- Frameworks. Elf fielen durch. Und diese Woche erreichte ein Beitrag von Trail of Bits, der es als Fraktal schlechten Designs bezeichnete, die Titelseite von Hacker News. In drei Minuten: wie der Anmelde-Tanz funktioniert, wo sich die Signatur verbirgt,

0:27 und warum die Lösung, auf die sich alle einigen, ein anderes Protokoll ist. Dies ist The Daily Diff, unter der Haube.

2002: vier XML-Formate, ein Ausschuss, eine ganze Branche

0:34 Zweitausendzwei. Ein Sicherheitsausschuss bei Oasis führt vier XML-Formate von Anbietern zu einem zusammen. Universitäten übernehmen es zuerst, dann baut Okta ein Unternehmen darauf auf, die schnellste Umwandlung eines Ausschussdokuments in Einnahmen überhaupt. Sie öffnen die App.

Der Anmelde-Tanz: App → Identitätsanbieter → zurück durch Ihren Browser

0:46 Sie hat keine Ahnung, wer Sie sind, also leitet sie Ihren Browser an den Identitätsanbieter weiter, sagen wir das Okta Ihres Unternehmens. Sie melden sich dort an. Okta übergibt Ihrem Browser ein signiertes XML-Dokument, das besagt, wer Sie sind, und der Browser sendet es zurück.

Die Behauptung: Die Signatur befindet sich im Inneren dessen, was sie signiert

0:59 Dieses Dokument ist die Behauptung (assertion). Es nennt den Benutzer, und die Signatur befindet sich darin, die auf die Behauptung durch ihre ID verweist. Und das Ganze läuft durch Ihren Browser, das heißt, durch den Benutzer. Um es zu überprüfen, baut die App

Kanonisierung: auf jedes Byte einigen, sonst meldet sich niemand an

1:11 die exakten Bytes wieder auf, die signiert wurden. Sie schneidet die Signatur wieder heraus, normalisiert Leerzeichen und Attribut- Reihenfolge und hasht das Ergebnis. Das ist Kanonisierung, und wenn die beiden Seiten um ein einziges Byte nicht übereinstimmen, meldet sich niemand an. Ein JSON Web Token macht es anders. Header, Payload und Signatur liegen nebeneinander, mit Punkten dazwischen. Nichts muss zuerst herausgeschnitten werden.

2012: der Prüfer und der Leser betrachten verschiedene Elemente

1:32 Hier ist der Haken. Der Code, der die Signatur prüft, und der Code, der den Benutzernamen liest, sind oft zwei verschiedene Teile. Im Jahr 2012 zeigte ein Paper namens "On Breaking SAML", dass man die signierte Behauptung dorthin verschieben kann, wo der Leser sie ignoriert, und eine zweite dorthin setzen kann, wo er sie sucht. Salesforce und Shibboleth gehörten zu den elf, die darauf hereinfielen. Im Jahr 2018 zeigte Duo, dass ein Kommentar innerhalb eines Benutzernamens einige

2018 und 2025: zwei Parser, zwei verschiedene Antworten

1:55 Bibliotheken dazu bringen konnte, nur die Hälfte des Namens zu lesen, während die Signatur immer noch korrekt war. Im Jahr 2025 fand GitHub zwei XML-Parser in Ruby SAML, die sich über dasselbe Dokument uneinig waren. Gleicher Fehler, neues Jahrzehnt. Trail of Bits nennt es ein Fraktal, weil jede Ebene, in die man hineinzoomt, denselben

Warum es immer wieder kaputtgeht: ein Fraktal schlechten Designs

2:12 Fehler aufweist. Es basiert auf XML, die Signatur ist umhüllt, und echte Anmeldungen verwenden vielleicht ein Zehntel der Spezifikation. Und die Top-Antwort auf Hacker News kommt vom Käufer. „Wenn Sie keinen SAML-Support haben, kann ich ein Produkt finden, das ihn hat.“ Beides ist wahr, und das ist das Problem. Also, Montag. SHIP OpenID Connect zuerst, Fly und Tailscale verkaufen an

Montag: zuerst OIDC, eine gepflegte Bibliothek, strenge Formen

2:31 Unternehmen ganz ohne SAML. Wenn ein Kunde es erzwingt, verwenden Sie eine gepflegte Bibliothek, halten Sie sie aktuell, und lehnen Sie Nachrichten ab, die nicht so aussehen, wie die von Okta oder Google gesendeten. Schreiben Sie niemals Ihre eigene Signaturprüfung.

Fazit, unter der Haube: REVERT

2:43 Fazit, unter der Haube. REVERT. Fast fünfundzwanzig Jahre, eine Fehlerklasse, die niemals stirbt, und die Lösung, auf die sich alle einigen, ist ein anderes Protokoll. Letzten Samstag habe ich Passkeys auseinandergenommen, also sagen Sie mir in den Kommentaren, was ich als Nächstes öffnen soll. Und das ist der Diff für heute. Ich bin Niko von Axrisi. Verantwortungsbewusst zusammenführen.

Quellen

  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

Ähnliche Videos