Drivs av
Featured

Förklaring av Coldcard-säkerhetsbristen: Vem har förlorat bitcoin och vem löper risk?

Den 30 juli utnyttjade en angripare svaga startfröer som genererats av vissa Coldcard-hårdvaruplånböcker för att stjäla bitcoin till ett värde av ungefär tiotals miljoner från hundratals adresser.

SKRIVEN AV
DELA
Förklaring av Coldcard-säkerhetsbristen: Vem har förlorat bitcoin och vem löper risk?

Viktiga punkter

  • Stölder kopplade till Coldcard tömde hundratals plånböcker på bitcoin den 30 juli.
  • Coinkite uppger att Mk3-seed-värdena hade cirka 40 bitar entropi istället för 128.
  • Coldcard-användare måste installera den korrigerade firmwareversionen och skapa nya seed-värden innan de flyttar medel.

Enligt en djupgående analys från Galaxy Research ägde stölden rum i en noggrant koordinerad våg som varade i cirka 25 minuter, medan en mer omfattande analys senare kopplade samman ungefär 1 196 adresser och så mycket som 1 083 bitcoin, värda nästan 70 miljoner dollar, till aktivitet som sträckte sig över cirka 41 minuter. De slutgiltiga siffrorna kan komma att ändras i takt med att utredarna fortsätter att spåra transaktioner på den offentliga Bitcoin-blockkedjan.

En fem år gammal bugg drabbar Bitcoin-plånböcker världen över

De drabbade plånböckerna tillhörde till stor del långsiktiga innehavare som genererade sina återställningsfrön med hjälp av Coldcard-enheter som körde sårbar firmware släppt från och med mars 2021. Coldcard är en air-gapped hårdvaruplånbok tillverkad av den kanadensiska tillverkaren Coinkite och utformad för att hålla bitcoin-nycklar (BTC) isolerade från enheter anslutna till internet.

Många av de tömda adresserna hade varit inaktiva i flera år. Angriparen agerade snabbt, betalade höga fasta transaktionsavgifter och lämnade inga restbelopp, vilket innebär att varje adress tömdes helt. Detta mönster tyder på en automatiserad operation med hjälp av en förberedd lista med privata nycklar, snarare än att kunderna själva flyttade sina medel.

Stölden orsakades inte av nätfiske, skadlig programvara på en användares dator, stöld av fysiska enheter eller ett konventionellt fjärrintrång. Istället försvagade ett fel i firmware den slumpmässighet som användes när vissa Coldcard-enheter skapade plånboksfrön. Dessa frön såg normala ut men kom från ett betydligt mindre utbud av möjliga kombinationer än vad användarna hade lovats.

Coldcards slumptalsgenerator havererade i det tysta

En Bitcoin-plånboksfrösträng är en hemlig sträng, som vanligtvis visas som 12 eller 24 ord, från vilken plånboken genererar sina adresser och privata nycklar. En korrekt genererad frösträng på 12 ord innehåller 128 bitar entropi, ett tekniskt mått som beskriver ett enormt antal möjliga kombinationer vilket gör det praktiskt taget omöjligt att gissa frösträngen.

Coldcard-enheterna skulle hämta denna slumpmässighet från en hårdvarubaserad slumptalsgenerator inuti enhetens mikrokontroller. Komponenten utnyttjar fysiskt elektriskt brus som en utomstående observatör inte ska kunna förutsäga.

Under en migrering av programvarubiblioteket år 2021 avslöjade Coinkite dock att två slumptalsfunktioner med matchande gränssnitt förväxlades. Den ena använde enhetens korrekta hårdvarugenerator. Den andra var en svag programvarubaserad reservlösning avsedd för kretskort utan lämplig hårdvara.

En konfigurationsinställning inaktiverade standardvägen till MicroPython-hårdvaran eftersom Coinkite tillhandahöll sin egen hårdvaru-wrapper. Programvaran kontrollerade endast om inställningen fanns, inte om den var aktiverad. Eftersom inställningen fanns men hade tilldelats värdet noll slutfördes kompileringen utan problem, medan genereringen av startvärden i det tysta övergick till den svagare mjukvarugeneratorn.

Fabriksdata och tidsinställningar ersatte sann slumpmässighet

Denna reservlösning var starkt beroende av förutsägbar enhetsinformation, inklusive en chipidentifierare som liknar ett serienummer och interna klockvärden kopplade till starttidpunkten. En angripare som kunde begränsa dessa ingångsvärden skulle stå inför en mycket mindre sökning än det 128-bitarsintervall som förväntas från ett säkert genererat startvärde.

Coinkite uppskattade det effektiva sökområdet för sårbara Mk3-frön till cirka 40 bitar enligt nuvarande antaganden. Det är fortfarande ett stort antal möjligheter, men det kan genomsökas med specialiserad datorutrustning, särskilt när en angripare kan jämföra kandidatfrön mot bitcoin-adresser som syns på blockkedjan.

Screenshot of the Coldcard Mk3 model.
Bild på Coldcard Mk3-modellen.

Senare Coldcard-modeller, däribland Mk4, Q och Mk5, tillförde viss slumpmässighet från ett säkerhetselement. Dock nådde endast en begränsad del den berörda generatorn, vilket lämnade uppskattningsvis 72 bitar effektiv entropi på seed-värden som skapades innan den korrigerade firmware-versionen installerades. Det var starkare än Mk3-metoden men fortfarande under den avsedda 128-bitarsstandarden.

Skillnaden kan liknas vid att ersätta en verkligt slumpmässig låskombination med en som härleds från låsets serienummer och den tidpunkt då det först slogs på. Den resulterande kombinationen kan se slumpmässig ut, men någon som känner till formeln och kan uppskatta utgångsinformationen kan återskapa den. Många användare byter ut sina enheter, inte bara från Mk3-enheter, utan även från Mk4, Q och Mk5.

Coinkite uppmanar användare att skapa helt nya seed-värden

Coinkite publicerade säkerhetsmeddelanden och släppte en korrigerad firmware efter att ha blivit medveten om det aktiva hotet. Företaget uppmanade användare som genererat seed-frön på den drabbade firmwaren att skapa ett helt nytt seed-frö med hjälp av den korrigerade versionen och överföra sina bitcoin till adresser som kontrolleras av det seed-fröet.

Det räcker inte att bara installera uppdateringen. En seed som skapats under det felaktiga systemet förblir permanent sårbar eftersom firmwareuppdateringen inte kan lägga till slumpmässighet till ord som redan finns.

Coinkite rekommenderade användarna att uppdatera sin enhet, skapa en ny seed, verifiera säkerhetskopian och plånbokens fingeravtryck, bekräfta mottagaradressen, skicka en liten testtransaktion och sedan flytta det återstående saldot. Användarna bör behålla den gamla säkerhetskopian tills överföringen har bekräftats, men bör inte längre betrakta den gamla seeden som säker.

Företaget identifierade korrigerade versioner, inklusive Mk3 version 4.2.0 eller senare, Mk4 och Mk5 version 5.6.0 eller senare samt Q version 1.5.0Q eller senare, tillsammans med motsvarande Edge-versioner. Produkterna Tapsigner, Opendime och Satscard använder annan kod och ska enligt uppgift inte ha påverkats.

Extra säkerhet skyddade vissa Coldcard-ägare

Användare som lade till tillräckligt många oberoende tärningskast vid genereringen av en seed var väsentligt skyddade eftersom deras egen slumpmässighet överväldigade den felaktiga programvaruinmatningen. Coinkite uppgav att minst 50 privata kast med en rättvis tärning gav tillräckligt skydd mot detta problem, även om ytterligare kast kan ge en större säkerhetsmarginal.

En stark BIP-39-lösenfras skapar också en separat plånbok som inte kan rekonstrueras enbart utifrån seed-orden. Plånböcker med flersignatur, som kräver nycklar från flera enheter eller platser innan bitcoin kan flyttas, var till stor del eller helt skyddade när den sårbara Coldcard-seed-strängen endast utgjorde en del av signeringsarrangemanget.

Dessa säkerhetsåtgärder var dock frivilliga. Många offer verkar ha följt de standardråd om säkerhet som fanns tillgängliga vid den tiden: Köp en ansedd hårdvaruplånbok, generera fröet offline, skydda säkerhetskopian och mata aldrig in det i en enhet som är ansluten till internet.

Coinkite tar på sig skulden när debatten övergår till AI

Coinkites VD Rodolfo Novak, allmänt känd som NVK, bad offentligt om ursäkt den 31 juli och sa att företaget tog på sig det fulla ansvaret för felet i firmware. ”Jag är ledsen och förkrossad. Vårt team är förkrossat över gårdagens nyheter”, skrev Novak. Han medgav att snabbkorrigeringen skyddar nyskapade seed-fraser men inte kan reparera seed-fraser som genererats med sårbar programvara.

Coinkite CEO Rodolfo Novak's article screenshot.
Coinkites VD Rodolfo Novaks ursäktsartikel. Bildkälla: X.

Novak förklarade att Coinkite skulle publicera en fullständig teknisk redogörelse efter att ha verifierat detaljerna och hjälpa drabbade användare som behöver polisanmälningar, försäkringsanspråk eller oberoende utredningar. Han varnade också utvecklare för att verktyg baserade på artificiell intelligens (AI) nu kan skanna gammal offentlig kod efter dolda svagheter snabbare än vad traditionella granskningsprocesser kan upptäcka dem.

Coinkite betonade att man måste utgå från att en angripare använde AI för att granska företagets öppen källkodsbaserade firmware, även om inga bevis har fastställt hur säkerhetsbristen upptäcktes. Företaget medgav också att en nyligen genomförd granskning med en ledande AI-modell misslyckades med att identifiera problemet. Flera konkurrerande tillverkare av hårdvaruplånböcker har på sociala medier påpekat att deras produkter inte är drabbade.

”Ledger påverkas inte av den nyligen publicerade säkerhetsinformationen om Coldcard Mk3”, meddelade företaget sina X-användare efter Coldcard-incidenten. ”Ledgers enheter använder en certifierad True Random Number Generator (TRNG) som är inbyggd direkt i vårt Secure Element-chip och genererar full 256-bitars entropi för varje 24-ordig hemlig återställningsfras.”

”Trezor-användare: era tillgångar är säkra”, förklarade hårdvaruplånbokstillverkaren Trezor på fredagen. ”Det senaste Coldcard-problemet är begränsat till deras egen anpassade firmware och hur vissa av deras enheter genererade slumpmässighet. Trezor använder inte den koden.”

Trezor X-kontot tillade:

”Vi har alltid kombinerat flera oberoende slumpgenereringskällor (enhetens hårdvara + värd + Secure Elements på nyare modeller). Vi beklagar verkligen för alla som har förlorat bitcoin.”

Vad Coldcard-användare bör hålla ett öga på framöver

Angriparens identitet är fortfarande okänd, och de stulna bitcoinen kan när som helst flyttas från sina samlingsadresser. Utredarna arbetar fortfarande med att fastställa hur många sårbara seed-värden som faktiskt genererades, hur mycket bitcoin som fortfarande är utsatt och om ytterligare plånböcker med höga värden redan har identifierats av angriparen. Coinkite kanske dock inte har så mycket information om ägare från för länge sedan.

"Ett roligt tveeggat svärd: Coinkite raderar alla sina kundregister efter 120 dagar för att skydda sig mot dataintrång", rapporterade Casa:s medgrundare, Jameson Lopp, på X. ”Det innebär att de inte kan kontakta kunder som köpt sårbara coldcards under de senaste fem åren för att varna dem om denna sårbarhet.”

X screenshot of the pseudonymous open-source bitcoin developer calle.
Den pseudonyma open source-bitcoinutvecklaren med smeknamnet calle delade med sig av sina tankar i frågan. ”Jag är verkligen bedrövad för alla som drabbats, särskilt de som kanske just har förlorat sina livsbesparingar. Det värsta är att de gjorde allt rätt”, sa calle på X.

Händelsen kommer också att sätta Coinkite på prov när det gäller att återställa förtroendet för Coldcard och om tillverkare av hårdvaruplånböcker inför strängare oberoende granskningar av frögenerering. För användarna är den omedelbara prioriteringen enklare: Alla som skapade en seed på den drabbade firmwareversionen utan stark oberoende entropi från slumpgeneratorn, en lösenfras eller skydd med fler signaturer bör betrakta den som komprometterad och försiktigt flytta sina medel till en nygenererad plånbok.

Utöver den förödande stölden slår bitcoinanvändare över hela gemenskapen larm och uppmanar andra att sprida informationen innan fler sårbara plånböcker töms.

Den här artikeln har översatts från engelska med hjälp av AI. Den engelska originalversionen är den auktoritativa källan; automatiska översättningar kan innehålla felaktigheter, särskilt i juridisk och regulatorisk terminologi.