Tajemnicza podatność w Javie, która… może okazać się katastrofalna. Błąd kryptograficzny związany z podpisami cyfrowymi

Jeśli zobaczycie na kwietniowy Critical Patch Update odnośnie Javy, to pewnie machniecie ręką – eee, nic ciekawego.

Więc jeśli już machnęliście ręką, warto zapoznać się z tym wpisem: CVE-2022-21449: Psychic Signatures in Java.

Problem występuje w implementacji algorytmu podpisu ECDSA. Ultra krótkie wprowadzenie do problemu:

ECDSA stands for the Elliptic Curve Digital Signature Algorithm, and it is a widely used standard for signing all kinds of digital documents. Compared to the older RSA standard, elliptic curve keys and signatures tend to be much smaller for equivalent security, resulting in them being widely used in cases where size is at a premium. For example, the WebAuthn standard for two-factor authentication allows device manufacturers to choose from a wide range of signature algorithms, but in practice almost all of the devices manufactured to date support ECDSA signatures only (a notable exception being Windows Hello, which uses RSA signatures; presumably for compatibility with older TPM hardware).

Okazuje się, że wystarczy dla dowolnej wiadomości wygenerować „pusty podpis” (same zera) i taki podpis będzie prawdziwy:

Podatne są (tj. były): Java 15, Java 16, Java 17, Java 18 (łatka Oracle wskazuje jako podatne wersje: 7u331, 8u321, 11.0.14, 17.0.2, 18 – lub (w danej linii?) niższe). Polecamy dość szybko zaaplikować łatkę, w szczególności jeśli gdzieś bazujecie na podpisach wykorzystujących krzywe eliptyczne (patrz np. JWT i algorytmy ES*)

Podziel się postem :)

Najnowsze:

Bezpieczeństwo

Powstanie Centrum Cyberbezpieczeństwa NASK. Ujawniono szczegóły

Powstanie Centrum Cyberbezpieczeństwa NASK, które będzie skupiać specjalistyczne centra, ośrodki i laboratoria, by wzmocnić krajowy system cyberbezpieczeństwa. Ma też wesprzeć działający już CSIRT NASK. Projekt zaplanowano do końca 2029 roku, jego wartość to 310 mln złotych.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *