A Masaryk Egyetem kutatói információkat tártak fel fontos ban található sebezhetőségekről különféle iAz ECDSA / EdDSA digitális aláírás-generáló algoritmus megvalósítása, amely lehetővé teszi a privát kulcs értékének helyreállítását az egyes biteken megjelenő információszivárgások elemzése alapján, amelyek akkor jelentkeznek, amikor az elemzési módszereket harmadik fél csatornáin keresztül alkalmazzák. A sérülékenységek kódneve Minerva.
A leghíresebb projektek hogy befolyásolják a javasolt támadási módszer OpenJDK, OracleJDK (CVE-2019-2894) és a könyvtár libgcrypt (CVE-2019-13627), amelyet a GnuPG tartalmaz. A problémák vannak könyvtárak számára is fogékony MatrixSSL, Crypto ++, wolfCrypt, elliptikus, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa és néhány intelligens kártyát is Athena IDProtect, TecSec páncélozott kártya, SafeNet eToken 4300, érvényes S / A IDflex V.
A pillanatnyilag említett sérülékenységeken kívül nem érinti őket OpenSSL, Botan, mbedTLS és BoringSSL. Mozilla NSS, LibreSSL, Csalán, BearSSL, cryptlib, OpenSSL FIPS módban. A Microsoft .NET kriptográfia, a libkcapi Linux kernel, a Sodium és a GnuTLS tesztelése még várat magára.
Olyan megvalósításokat találtunk, amelyek elveszítik a skalár bithosszát a skalár szorzása során az ECC-ben. Ez a szivárgás csekélynek tűnhet, mivel a bithossz nagyon kis mennyiségű információt tartalmaz a skalárban. Az ECDSA / EdDSA aláírás-generálás esetén azonban a véletlen nonce bithossz szűrése elegendő a titkos kulcs teljes helyreállításához, miután néhány üzenet alkalmazása néhány száz-néhány ezer aláírást figyelt meg ismert üzenetekben. .
Úgy gondoljuk, hogy a fenti kártyák mindegyike érintett, mert közös ECDSA komponenssel (FIPS 214 modul) rendelkezik, amelyet Athena OS2 ECDSA755 komponensként írnak le az Inside Secure AT90SC A1.0 (Firmware) alkalmazásban. Csak a CPLC és ATR adatokkal rendelkező Athena IDProtect kártyán teszteltük a biztonsági rést
A problémát az egyes bitértékek meghatározásának képessége okozza szorzóval való szorzás során az ECC kereskedés során. Indirekt módszereket, például a számítások késleltetésének becslését használják a bitinformációk kinyerésére.
A támadáshoz előjog nélküli hozzáférés szükséges a gazdagéphez amelyben a digitális aláírás generálódik (a távoli támadás nem kizárt, de nagyon bonyolult és nagy mennyiségű adatot igényel az elemzéshez, ezért valószínűtlennek tekinthető).
A szivárgás kismérete ellenére az ECDSA számára akár néhány, az inicializációs vektorral (nonce) kapcsolatos információkat tartalmazó bit definiálása is elegendő egy támadás végrehajtásához a teljes magánkulcs szekvenciális visszaállításához.
A módszer szerzői szerint a kulcsok sikeres helyreállításához elegendő több száz vagy több ezer generált digitális aláírás elemzése a támadó által ismert üzenetekért. Például az Athena IDProtect intelligens kártyában használt titkos kulcs meghatározásához az Inside Secure AT90SC chip alapján, a secp256r1 elliptikus görbe felhasználásával 11 ezer digitális aláírást elemeztek. A teljes támadási idő 30 perc volt.
A támadási kódunkat és a koncepció igazolását a Brumley & Tuveri módszer ihlette.
A problémát már megoldották az libgcrypt 1.8.5 és a wolfCrypt 4.1.0, más projektek még nem hoztak létre frissítéseket. Ezenkívül nyomon követhető a libgcrypt csomag biztonsági résének javítása az alábbi oldalak terjesztéseiben: Debian, Ubuntu, RHEL, Fedora, openSUSE / SUSE, FreeBSD, Arch.
A kutatók más kártyákat és könyvtárakat is teszteltek, amelyek a következők nem sérülékenyek:
- OpenSSL 1.1.1d
- Ugrálóvár 1.58
- BoringSSL 974f4dddf
- libtomcrypt 1.18.2
- Boot 2.11.0
- Microsoft CNG
- mbedTLS 2.16.0
- Intel IPP-Crypto
kártyák
- HMV ACOSJ 40K
- Feitian A22CR
- G&D SmartCafe 6.0
- G&D SmartCafe 7.0
- Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4
- Infineon SLE78 univerzális JCard
- NXP JCOP31 v2.4.1
- NXP JCOP CJ2A081
- NXP JCOP v2.4.2 R2
- NXP JCOP v2.4.2 R3
- SIMOME TaiSYS Vault
Ha többet szeretne megtudni az alkalmazott támadásról és az észlelt sérülékenységekről, megteheti a következő link. A támadás replikálásához használt eszközök letölthetők.