Blog

Psychische Signaturen — was du wissen musst

April 27, 2022
Charly Eriksen

Am 19. April 2022, Neil Madden hat eine Sicherheitslücke aufgedeckt in Oracle Java 15 bis 18 und OpenJDK 15, 17 und 18. Die Sicherheitsanfälligkeit liegt in der Kryptografie für ECDSA-Signaturen, die es einem Angreifer ermöglicht, Signaturprüfungen für diese Signaturen vollständig zu umgehen.

Angesichts der undurchsichtigen Natur der ECDSA-Signaturen ist es leicht, Schlagzeilen über diese Sicherheitslücke zu lesen und direkt an ihnen vorbeizufliegen. ECDSA-Signaturen spielen jedoch tatsächlich eine wichtige Rolle beim Schutz von Systemen im Internet bei kritischen Aufgaben wie der Authentifizierung.

Bevor wir ins Detail gehen, wenn Sie erleben möchten, wie Hacker Psychic Signatures auf praktische Weise ausnutzen. Springen Sie direkt in unsere free lab - Missionen um es selbst auszuprobieren.

Was ist die große Sache mit ECDSA?

Möglicherweise haben Sie noch nie von ECDSA gehört. Es ist der Kurzname für Elliptic Curve Digital Signature Algorithm. Dabei handelt es sich um eine Art der Kryptografie, die die mathematischen Eigenschaften elliptischer Kurven nutzt und derzeit einige der stärksten kryptografischen Sicherheitsstandards der Branche bietet.

Das bedeutet, dass es für viele wichtige Funktionen verwendet wird, wie zum Beispiel:

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

Dies bedeutet, dass ECDSA ein wichtiger Bestandteil vieler der empfindlichsten Funktionen zum Schutz von Systemen ist. Die Möglichkeit, Signaturprüfungen zu umgehen, wäre potenziell verheerend.

Wie wird die Sicherheitslücke ausgenutzt?

Die Mathematik von ECDSA ist leider etwas kompliziert. Aber das Wichtigste, was Sie wissen müssen, ist, 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 mit beiden r und s auf der rechten Seite der Gleichung. Da die Multiplikation mit 0 eine schlechte Idee ist, wird in der ECDSA-Spezifikation ausdrücklich darauf hingewiesen, dass, wenn der Wert von r oder s ist immer 0, sie sollten verworfen werden.

Die Java-Implementierung von ECDSA hat jedoch vergessen, dies zu berücksichtigen. Daher akzeptiert es eine Signatur mit beiden r und s ist 0, was immer wahr sein wird. Wir können dies anhand eines Beispiels eines JWT demonstrieren, das zeigt, wie einfach es ist. Benutzen https://token.dev/, wir können ein Token mit dem Algorithmus ES256 generieren, ähnlich einem, das von einer Anwendung generiert würde:

Ein mit dem Algorithmus ES256 generiertes Token

Denken Sie daran, dass ein JWT in 3 Teile aufgeteilt ist:

  • Header (blau)
  • Nutzlast (grün)
  • Signatur (in Rot)

Nun, wenn wir die Signaturprüfung umgehen wollten, wie würden wir das angehen? Die Signatur spezifiziert die Werte für r und s, und ist im DER-Format kodiert.

DER-Kodierung für Signaturwerte

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

Neues JWT mit DER-kodierter Signatur

Nun, unsere Unterschrift hat r und s auf 0 gesetzt, und in anfälligen Versionen von Java wird die Signaturprüfung jetzt für jede von Ihnen angegebene Nutzlast erfolgreich sein.

Wer ist betroffen und wie kann es gemildert werden?

Die Sicherheitslücke betrifft sowohl Oracle Java als auch OpenJDK. Dazu gehören:

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

  • 18
  • 17.0.2

Oracle GraalVM Enterprise Edition:

  • 22.0.0.2
  • 21,3.1

JDK öffnen:

  • 18
  • 17.0.2
  • 15,0.6
  • 13.0,10
  • 11.0,14
  • 8 Uhr 32
  • 7 u31

Beides Orakel und JDK öffnen haben Hinweise und Patches für das Problem veröffentlicht, die sofort angewendet werden können.

Praktische Methoden zur Abwehr dieser Sicherheitsanfälligkeit

Hier bei Secure Code Warrior bemühen wir uns, Entwicklern die relevantesten Informationen und praktischen Übungen für kritische Sicherheitslücken zur Verfügung zu stellen, unabhängig davon, ob es sich um eine aktuelle Sicherheitslücke wie Psychic Signatures handelt oder um etwas, das es schon seit Jahren gibt.

Wir glauben, dass es notwendig ist, Entwickler von Anfang an in die Lage zu versetzen, den Abwehrmechanismus zu verstehen und sicheren Code zu schreiben, um Risiken wirklich in Schach zu halten. Aus diesem Grund erstellen wir für Sie und die betroffenen Teams eine schrittweise Anleitung für diese Sicherheitsanfälligkeit (und viele andere).

In der exemplarischen Vorgehensweise können Sie den Anweisungen zur Nutzung der Physic Signature in JWTS folgen und die Auswirkungen auf eine funktionierende App in Echtzeit verfolgen.

Probiere es jetzt aus.

Slogan

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
Slogan

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

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.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

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

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Blog
Filter Label
This is some text inside of a div block.

The Future of AI Software Governance Is Built on Strong Partnerships

Discover why Secure Code Warrior is becoming a channel-first company and how trusted partners help organizations adopt AI Software Governance securely and at scale.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Citizen AI by Secure Code Warrior: Build an AI-Ready Workforce

Secure Code Warrior's AI literacy program for non-developer employees.

Learn More
Blog
Filter Label
This is some text inside of a div block.

Why most CISOs are navigating AI adoption blindfolded (and how they can remove it)

Today, Secure Code Warrior issued an all-new white paper covering a prescriptive, directional AI adoption model that security leaders can use to identify their adoption stage and make real progress in bringing the AI security risks within their organization under control.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo