Minerva: een reeks kwetsbaarheden in ECDSA / EdDSA-implementaties

Minerva

Onderzoekers van Masaryk University onthulden informatie belangrijk over kwetsbaarheden in verschillende ikimplementaties van het ECDSA/EdDSA-algoritme voor het genereren van digitale handtekeningen, waarmee de waarde van de privésleutel kan worden hersteld op basis van de analyse van informatielekken op individuele bits die verschijnen bij het toepassen van analysemethoden via kanalen van derden. De kwetsbaarheden hebben de codenaam Minerva.

De bekendste projecten die invloed hebben de voorgestelde aanvalsmethode zijn OpenJDK, OracleJDK (CVE-2019-2894) en de bibliotheek libgcrypt (CVE-2019-13627) gebruikt in GnuPG. de problemen zijn ook toegankelijk voor bibliotheken MatrixSSL, Crypto++, wolfCrypt, elliptisch, jsrsasign, Python-ECDSA, ruby_ecdsa, fastecdsa en ook voor sommige smartcards Athena IDProtect, TecSec Armored Card, SafeNet eToken 4300, geldige S/A IDflex V.

Naast de op dit moment genoemde kwetsbaarheden worden ze niet getroffen OpenSSL, Botan, mbedTLS en BoringSSL. Mozilla NSS, LibreSSL, Nettle, BearSSL, cryptlib, OpenSSL in FIPS-modus. Microsoft .NET crypto, Linux kernel libkcapi, Sodium en GnuTLS zijn nog niet getest.

We hebben implementaties gevonden die de bitlengte van de scalaire waarde verliezen tijdens scalaire vermenigvuldiging in ECC. Dit lek lijkt misschien minuscuul, aangezien de bitlengte een zeer kleine hoeveelheid informatie in de scalaire waarde vertegenwoordigt. In het geval van het genereren van ECDSA/EdDSA-handtekeningen is het filteren van de willekeurige nonce-bitlengte echter voldoende voor volledig herstel van de gebruikte privésleutel na het observeren van een paar honderd tot een paar duizend handtekeningen in bekende berichten, vanwege de toepassing van enkele technieken.

We zijn van mening dat alle bovenstaande kaarten worden beïnvloed omdat ze een gemeenschappelijke ECDSA-component delen (FIPS 214-module), die wordt beschreven als ECDSA2 Athena OS755-component in Inside Secure AT90SC A1.0 (firmware). We hebben de kwetsbaarheid alleen getest op de Athena IDProtect-kaart met CPLC- en ATR-gegevens

Het probleem wordt veroorzaakt door de mogelijkheid om de individuele bitwaarden te bepalen tijdens vermenigvuldiging met een scalair tijdens ECC-bewerkingen. Indirecte methoden, zoals het schatten van de vertraging bij het uitvoeren van de berekeningen, worden gebruikt om informatie uit bits te halen.

Voor een aanval is onbevoegde toegang tot de host vereist waarin de digitale handtekening wordt gegenereerd (een aanval op afstand is niet uitgesloten, maar is erg ingewikkeld en vereist een grote hoeveelheid gegevens voor analyse, daarom kan het als onwaarschijnlijk worden beschouwd).

Ondanks de kleine omvang van het lek, is voor ECDSA de definitie van zelfs maar een paar bits met informatie over de initialisatievector (nonce) voldoende om een ​​aanval uit te voeren om achtereenvolgens de volledige privésleutel te herstellen.

Volgens de auteurs van de methode, voor succesvol sleutelherstel is analyse van enkele honderden tot enkele duizenden gegenereerde digitale handtekeningen voldoende voor berichten die bekend zijn bij de aanvaller. Om bijvoorbeeld de privésleutel te bepalen die wordt gebruikt in de Athena IDProtect-smartcard op basis van de Inside Secure AT90SC-chip, met behulp van de secp256r1 elliptische curve, werden 11 digitale handtekeningen geanalyseerd. De totale aanvalstijd was 30 minuten.

Onze aanvalscode en proof of concept is geïnspireerd op de Brumley & Tuveri-methode.

Het probleem is al opgelost in libgcrypt 1.8.5 en wolfCrypt 4.1.0, hebben andere projecten nog geen updates gegenereerd. Het is ook mogelijk om de fix voor de kwetsbaarheid in het libgcrypt-pakket te volgen in distributies op deze pagina's: Debian, Ubuntu, RHEL, Fedora, openSUSE / SUSE, FreeBSD, Arch.

De onderzoekers voerden ook tests uit op andere kaarten en bibliotheken, waarvan de volgende niet kwetsbaar zijn:

  • OpenSSL 1.1.1d
  • Springkasteel 1.58
  • SaaiSSL 974f4dddf
  • libtomcrypt 1.18.2
  • Botanisch 2.11.0
  • Microsoft CNG
  • mbedTLS 2.16.0
  • Intel IPP-Crypto

kaarten

  • ACS ACOSJ 40K
  • Feitian A22CR
  • G&D Smart Café 6.0
  • G&D Smart Café 7.0
  • Infineon CJTOP 80K INF SLJ 52GLA080AL M8.4
  • Infineon SLE78 Universele JCard
  • NXP JCOP31 v2.4.1
  • NXP JCOP CJ2A081
  • NXP JCOP v2.4.2 R2
  • NXP JCOP v2.4.2 R3
  • SIMOME TaiSYS Kluis

Als u meer wilt weten over de gebruikte aanval en over de gedetecteerde kwetsbaarheden, kunt u dat doen in de volgende link. De tools die worden gebruikt om de aanval na te bootsen, kunnen worden gedownload.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.