Wintermute-hack gerepliceerd op eenvoudige laptop in minder dan 48 uur door misbruik te maken van Godslastering-fout

Amber Group, een leverancier van blockchaintechnologie, repliceerde de Wintermute-hack in minder dan 48 uur met behulp van een standaardlaptop. Een rapport van de Amber Group verklaarde:

“We gebruikten een Macbook M1 met 16GB RAM om een ​​dataset vooraf te berekenen in minder dan 10 uren… We hebben de implementatie afgerond en konden de privésleutel van 0x0000000fe6a514a32abdcdfcc076c85243de899b in minder dan 48 uur kraken.”

De houwen werd toegeschreven aan vanity-adressen die zijn gemaakt met de Profanity-tool, waardoor gebruikers specifieke etherische adressen met bepaalde tekens kunnen genereren. In het geval van Wintermute bevatte het adres zeven voorloopnullen. Vanity-adressen zorgen ervoor dat accounts vergelijkbare tekens hebben, waardoor het gemakkelijker wordt om de openbare adressen op de blockchain te identificeren.

Een ander effect van een Ethereum-adres met verschillende voorloopnullen is een verlaging van de gaskosten vanwege de verminderde ruimte die nodig is om de informatie op de blockchain op te slaan. Het verwijderen van een willekeurig element uit het cryptografische proces dat wordt gebruikt bij het genereren van het adres, gaat echter ten koste van een verminderde beveiliging.

Een eerste analyse suggereerde dat het 1,000 GPU's in slechts 50 dagen zou kosten om elke mogelijke privésleutel te genereren voor adressen die beginnen met zeven voorloopnullen. Amber Group beweert nu echter dat dit binnen 48 uur met slechts een enkele laptop kan worden bereikt.

De cryptografie uitgelegd

heiligschennis is een tool voor het genereren van adressen voor het Ethereum-ecosysteem. De codebase kan eenvoudig worden gedownload van GitHub en is sinds 2017 beschikbaar. De huidige codebase-versie bevat echter een waarschuwing die het gebruik van de tool afraadt. De maker van de tool, Johgus, het volgende bericht toegevoegd aan het readme.md-bestand op 15 september 2022.

“Ik raad ten zeerste af om deze tool in zijn huidige staat te gebruiken. Deze repository zal binnenkort verder worden bijgewerkt met aanvullende informatie over dit kritieke probleem.”

Verder zijn kernbinaire bestanden verwijderd om te voorkomen dat gebruikers de codebase kunnen compileren "om verder onveilig gebruik van deze tool te voorkomen".

The Profanity gebruikt lokale "GPU-kracht met OpenCL via een eenvoudig algoritme" om privé- en openbare Ethereum-sleutels te genereren totdat het een adres vindt dat overeenkomt met de regels die door de gebruiker zijn ingesteld. Als een gebruiker bijvoorbeeld een Ethereum-adres wil maken dat eindigt op 'AAA', blijft het werken totdat het een adres genereert met deze tekens als achtervoegsel.

Wanneer een adres wordt gegenereerd dat niet overeenkomt met de voorwaarden in de regelset, voegt Profanity "1 toe aan de privésleutel en leidt een nieuw Ethereum-adres af totdat het het adres vindt dat overeenkomt met de regels."

Ethereum-adressen worden meestal lokaal gegenereerd met behulp van cryptografie met elliptische krommen. Bij het genereren van een Ethereum-adres is er geen berekening om te controleren of de privésleutel in het verleden voor een ander adres is gebruikt. Dit komt echter door het enorme aantal mogelijke Ethereum-adressen.

Deze video legt de ware omvang van 256-bits codering gebruikt in de cryptografie van Ethereum. Een eenvoudige vergelijking kan ook worden gemaakt in die zin dat er ruw 2^76 zandkorrels in de wereld maar 2^160 mogelijke Ethereum-adressen.

Wanneer echter karakters van de Ethereum-adressen vooraf zijn bepaald, wordt de berekening om de privésleutel te genereren aanzienlijk eenvoudiger en wordt het aantal mogelijke adressen drastisch verminderd.

De exploitatie

Amber Grouped legde uit dat de fout van de Profanity-methode komt door het gebruik van een 32-bits seed om adressen te genereren.

“Om een ​​willekeurige privésleutel te genereren, gebruikt Profanity eerst het willekeurige apparaat om een ​​seed te genereren. Maar helaas is de seed 32-bit, die niet rechtstreeks als privésleutel kan worden gebruikt.

De 32-bits seed wordt gevoed door een pseudo-willekeurige nummergenerator (PRNG) die een deterministische functie gebruikt. Deze PRNG-methode resulteert in een eenvoudige manier om alle levensvatbare openbare-sleutelzaden te bepalen die binnen Profanity worden gebruikt.

“Aangezien er slechts 2^32 mogelijke initiële sleutelparen zijn (d_0,0, Q_0,0) en de iteratie in elke ronde omkeerbaar is, is het mogelijk om de privésleutel te kraken van elke openbare sleutel die door Profanity is gegenereerd.

De methode die door Amber Group werd gebruikt, was om de openbare sleutel van het adres te verkrijgen, de mogelijke openbare sleutels van Profanity vooraf te berekenen, de openbare sleutels te berekenen met OpenCL, de berekende openbare sleutels te vergelijken en vervolgens de privésleutel te reconstrueren zodra een overeenkomst is gevonden.

Vanwege de eenvoud van de methode raadt Amber Group aan dat "uw geld niet veilig is als uw adres is gegenereerd door godslastering."

Amber Group vertelde cryptoslat naar dat, met betrekking tot de vraag of een beter cryptografisch algoritme nodig is, "het antwoord duidelijk ja is ... de industrie kan zien hoe kwetsbaar dit type ontwerp is."

Bron: https://cryptoslate.com/wintermute-hack-replicated-on-simple-laptop-in-under-48-hours-by-exploiting-profanity-flaw/