Fragen? Antworten! Siehe auch: Alternativlos
Stellt sich raus: Der EDCSA-Code im JDK 15 aufwärts wurde von C++ nach Java konvertiert und dabei ist ein relevanter Check hinten runtergefallen. Der Check ist humoristisch wertvoll. Wenn man Java-ECDSA eine Signatur gibt, die nur aus 0-Bytes besteht, dann kommt die durch. Das ist der eine Sonderfall, für den die eine Berechnung Müll liefert, daher ist der Wert als Signatur ungültig.
Den Fall hätte man halt abfangen müssen.
Auf einer Skala von 0 bis 10 hat Oracle das bloß als 7 eingestuft. ECDSA wird u.a. für JWT und Webauthn eingesetzt. Aus meiner Sicht ist das eine 10.0.
Wenn ihr also Java einsetzt, mit einem JDK 15 oder neuer, dann lasst JETZT alles stehen und liegen und spielt den Patch ein. Geht nicht über Los.
Update: Achtet mal auf die Timeline. Im November 2021 hat Oracle den Bug bestätigt und für kritisch befunden. Im APRIL haben sie den Patch veröffentlicht. Oracle hat also von einer apokalyptischen Sicherheitslücke gewusst und ihre Kunden monatelang am langen Arm verhungern lassen.
Update: ECDSA wird auch in Bitcoin verwendet.