CVE-2022-21449 - Kritikus titkosítási hiba a Java titkosító könyvtárában

simonszoft képe

A héten derült ki, hogy ismét komoly hibát (CVE-2022-21449) találtak az ECDSA felhasználásával kapcsolatban most éppen a java titkosító könyvtáraiban.

Ezt kihasználva a támadók egy megfelelően generált aláírással, bármilyen más aláírást helyettesíteni tudtak és elhitethették a Java-val, hogy az egy tetszőleges, utóbbi által hitelesként elfogadott forrásból származott. Röviden kijátszottak egy igen komolynak szánt biztonsági mechanizmust.

Sajnos a tárgyban megjelent cikkek egy dolgot nem említenek, ez bizony nem az első eset, hogy a nem megfelelően megvalósított ECDSA gondot okoz.

Nézzük kronológiai sorrendben (teljesség igénye nélkül):

2011.03: biztonsági rést az OpenSSL ECDSA megvalósításában, az 1.0.0e verziójában javították ki
2011.12: a fail0verflow csoport a PS3 ECDSA privát kulcsát vissza tudta fejteni, törhető a PS3
2013.08: kiderült, hogy a SecureRandom Java osztály egyes implementációiban is vannak hibák, amit azóta is foltoznak
2018.02: CVE-2017-18146, hibás az ECDSA ellenőrzése, jó aláírás esetén is hibát ad
2020.04: Firefox 80 verziójában hibás ECDSA aláírás

Véleményem szerint pont az a baj az ECDSA-val, hogy nehéz jól megvalósítani, vagy lassú lesz és körülményes vagy "gyors" de nem elég biztonságos.