Blog

Psychic Signatures – was Sie wissen müssen

April 27, 2022
Charlie Eriksen
Eine Lupe fokussiert auf ein Blatt Papier, auf dem verschiedene kryptografische Symbole verstreut sind.

Am 19. April 2022 enthüllte Neil Madden eine Schwachstelle in Oracle Java 15 bis 18 sowie OpenJDK 15, 17 und 18. Die Schwachstelle liegt in der Kryptografie für ECDSA-Signaturen und ermöglicht es einem Angreifer, die Signaturprüfung für diese Signaturen vollständig zu umgehen.

Es ist leicht, Schlagzeilen über diese Schwachstelle zu überfliegen und sie aufgrund der komplexen Natur von ECDSA-Signaturen zu ignorieren. Tatsächlich spielen ECDSA-Signaturen jedoch eine Schlüsselrolle beim Schutz von Systemen im gesamten Internet für kritische Aufgaben wie die Authentifizierung.

Bevor wir ins Detail gehen: Wenn Sie praxisnah erleben möchten, wie Hacker „Psychic Signatures“ ausnutzen, springen Sie direkt in unsere kostenlosen Labs – Missions, um es selbst auszuprobieren.

Was hat es mit ECDSA auf sich?

Vielleicht haben Sie noch nie von ECDSA gehört. Es ist die Kurzform für Elliptic Curve Digital Signature Algorithm – eine kryptografische Methode, die die mathematischen Eigenschaften elliptischer Kurven nutzt und derzeit eine der stärksten kryptografischen Sicherheitslösungen der Branche bietet.

Daher wird sie für viele wichtige Funktionen verwendet, wie zum Beispiel:

  • Das Signieren von SSL-Zertifikaten
  • Handshakes bei verschlüsselter Kommunikation
  • SAML
  • JWT-Signaturen
  • OpenID Connect-Signaturen

ECDSA ist somit ein zentraler Bestandteil vieler sensibler Funktionen zum Schutz von Systemen. Die Möglichkeit, Signaturprüfungen zu umgehen, wäre potenziell verheerend.

Wie wird die Schwachstelle ausgenutzt?

Die Mathematik hinter ECDSA ist leider etwas kompliziert. Das Wichtigste ist jedoch, dass eine ECDSA-Signatur zwei Informationen enthält: r und s.

Diese Zahlen werden verwendet, um die Gültigkeit der Signatur zu berechnen. Der Wert r ist das „Ergebnis“ (linke Seite) einer Berechnung unter Verwendung von r und s auf der rechten Seite der Gleichung. Da eine Multiplikation mit 0 problematisch ist, schreibt die ECDSA-Spezifikation ausdrücklich vor, dass die Werte r oder s verworfen werden müssen, falls sie 0 sind.

Die Java-Implementierung von ECDSA hat dies jedoch nicht berücksichtigt. Daher akzeptiert sie eine Signatur, bei der sowohl r als auch s gleich 0 sind, was immer als wahr gewertet wird. Wir können dies anhand eines JWT-Beispiels demonstrieren, um zu zeigen, wie einfach es ist. Mit https://token.dev/ können wir ein Token mit dem Algorithmus ES256 generieren, ähnlich dem, das von einer Anwendung erstellt würde:

Ein mit dem Algorithmus ES256 generiertes Token

Denken Sie daran, dass ein JWT in drei Teile unterteilt ist:

  • Header (in Blau)
  • Payload (in Grün)
  • Signatur (in Rot)

Wenn wir nun die Signaturprüfung umgehen wollten, wie würden wir vorgehen? Die Signatur legt die Werte für r und s fest und ist im DER-Format kodiert.

DER-Kodierung für Signaturwerte

Ändern wir unser JWT, um diese neue Signatur zu verwenden. Beachten Sie, dass das Gleichheitszeichen in JWTs nicht enthalten ist.

Colored strings of letters and numbers in blue, green, and red inside a black rectangular border.
Neues JWT mit DER-kodierter Signatur

Jetzt sind r und s in unserer Signatur auf 0 gesetzt, und in anfälligen Java-Versionen wird die Signaturprüfung nun für jeden beliebigen Payload erfolgreich sein.

Wer ist betroffen und wie lässt sich das Problem beheben?

Die Schwachstelle betrifft sowohl Oracle Java als auch OpenJDK. Dazu gehören:

Oracle Java SE (und ältere, nicht mehr unterstützte Versionen):

  • 18
  • 17.0.2

Oracle GraalVM Enterprise Edition:

  • 22.0.0.2
  • 21.3.1

OpenJDK:

  • 18
  • 17.0.2
  • 15.0.6
  • 13.0.10
  • 11.0.14
  • 8u322
  • 7u331

Sowohl Oracle als auch OpenJDK haben Sicherheitshinweise veröffentlicht und Patches bereitgestellt, die sofort angewendet werden können.

Praktische Übungen zur Abwehr dieser Schwachstelle

Hier bei Secure Code Warrior bemühen wir uns, Entwicklern die relevantesten Informationen und praktischen Übungen zu kritischen Schwachstellen bereitzustellen – egal, ob es sich um eine neue wie Psychic Signatures oder um ein seit Jahren bestehendes Problem handelt.

Wir sind davon überzeugt, dass man Risiken nur dann wirksam minimieren kann, wenn Entwickler die Abwehrmechanismen verstehen und von Anfang an sicheren Code schreiben. Deshalb erstellen wir Schritt-für-Schritt-Anleitungen zu dieser (und vielen anderen) Schwachstellen für Sie und die betroffenen Teams.

In der Anleitung können Sie die Schritte nachvollziehen, um die Psychic-Signature-Schwachstelle in JWTs auszunutzen und die Auswirkungen auf eine funktionierende Anwendung in Echtzeit zu sehen.

Probieren Sie es jetzt aus.

‍

Slogan

Kontrollieren Sie KI-gestützte Entwicklung, bevor sie in Produktion geht

Bewerten Sie KI-gestützte Risiken, setzen Sie Richtlinien für sicheren Code direkt beim Commit durch und beschleunigen Sie die sichere Bereitstellung über Ihren gesamten SDLC hinweg.

Demo buchen
Ressourcenbibliothek

Weitere Blogs entdecken

Erhalten Sie Zugang zu Experteninhalten über sichere Programmierung, KI-Governance und Software-Risikomanagement.

alle anzeigen
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Mehr erfahren
Fallstudie
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Eine Sicherheitskultur: Wie Sage sein Champions-Programm aufgebaut hat

Erfahren Sie, wie Sage die Sicherheit durch einen flexiblen, beziehungsorientierten Ansatz gestärkt, über 200 Security Champions ausgebildet und eine messbare Risikoreduzierung erzielt hat.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Cybersecurity Awareness Month 2026: Das Verständnis von KI-Sicherheit ist entscheidend für die Unternehmensverteidigung

Wir haben einen Punkt erreicht, an dem die meisten führenden KI-Unternehmen öffentlich eine weltweite Verlangsamung der KI-Entwicklung gefordert haben, damit die Sicherheitsvorkehrungen Schritt halten können. Doch die Wahrheit ist: Ernsthafte Sicherheitsprobleme sind bereits Realität geworden. Dies bringt unzählige Sicherheitsverantwortliche und Führungsteams in eine dringliche Lage, da die finanziellen Kosten und Risiken durch die Implementierung von KI stetig steigen.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Enabler 8: Branding für Ihr Programm

Ein Programm für sicheres Programmieren braucht mehr als nur großartige Inhalte, um erfolgreich zu sein. Enabler 8 zeigt, wie Branding die Teilnahme zu einem begehrten, statusorientierten Erlebnis macht.

Mehr erfahren
Blog
Filterbezeichnung
Dies ist ein Text innerhalb eines Div-Blocks.

Jeder Mitarbeiter steht jetzt an vorderster Front der KI-Cybersicherheit

Die Unternehmenslandschaft wandelt sich mit einer Geschwindigkeit, die kaum jemand vorhergesehen hat, bis es zu spät war. Wir haben offiziell die Schwelle von handgeschriebenem Code und einfacher Copilot-Unterstützung hin zur Ära des Agentic Development Lifecycle (ADLC) überschritten. Während autonome KI-Agenten eine beispiellose Effizienz in vielen Bereichen versprechen, bringen sie auch eine völlig neue Klasse von Sicherheits- und Regulierungsrisiken mit sich.

Mehr erfahren

Sichere KI-gestützte Entwicklung vor dem Release

Erkennen Sie Entwicklerrisiken, setzen Sie Richtlinien durch und verhindern Sie Schwachstellen über den gesamten Softwareentwicklungszyklus hinweg.

Demo buchen
Keine Elemente gefunden.