Coldcard er en hardware-wallet rettet mod seriøse Bitcoin-brugere. Den understøtter kun Bitcoin, kan holdes offline og anvender open-source-software. Den samles i Canada og er designet til at holde brugernes Bitcoin sikre.
Men fra marts 2021 genererede visse Coldcard-enheder kundernes private nøgler ved hjælp af enhedens serienummer og dens interne ur i stedet for den dedikerede chip, der er designet til at producere tilfældige tal. Det gjorde nøglerne betydeligt lettere at forudsige.
Den 30. juli stjal en angriber 594 Bitcoin fra cirka 500 inaktive tegnebøger på kun 25 minutter. Galaxy Research har siden koblet tyveriet til i alt 1.082 Bitcoin fordelt på 1.196 adresser. Inden den 2. august var det samlede beløb nær 1.367 Bitcoin, svarende til omkring 88,6 millioner dollars.
Angriberen havde ikke fysisk adgang til tegnebøgerne. Coldcards softwarekode er offentligt tilgængelig, ligesom oplysningerne om Bitcoin-blokkæden.
Angriberen ser ud til at have brugt adskillige uger på at udrede de mulige nøgler, som den fejlagtige software kunne have genereret. Disse nøgler kunne derefter matches med Bitcoin-adresser, der besidder midler. Når de sårbare tegnebøger var identificeret, kunne angriberen flytte Bitcoin. Tyveriet i sig selv varede kun 25 minutter.
Inde i fejlen
Fejlen er mere pinlig, end ordet “bug” antyder. Coldcard har mistillid til den generelle tilfældighed i den software, den er bygget på, så den indkapsler chippenes egen hardware-generator og slår den indbyggede fra. Men en sikkerhedskontrol i et understøttende bibliotek fandt ikke ud af, at den indbyggede generator var blevet deaktiveret. Frøgenereringen gled derfor videre til softwareens fallback, som trak den eneste tilgængelige tilfældighed fra serienummeret og uret og samlede aldrig mere tilfældig data. En seed er beregnet til at rumme 128 bit entropi. På Mk3 havde det omkring 40.
Med andre ord: En låsefabrik annoncerer en million mulige kombinationer. En fabrikationsfejl betyder, at en given produktionskørsel kun nogensinde vil kunne realisere omkring tusind af dem. Låsen fungerer stadig og ser identisk ud som alle andre låse på hylden. Ejeren har ingen måde at afgøre forskellen. Tyven behøver blot at vide, hvilke tusinder der er mulige.
Den elliptiske-kurve-matematik bag Bitcoin er aldrig blevet knækket. Den tilfældighed, der fodrer den, var den, der brød sammen.
Rækkevidden er også større end de mønter, der blev flyttet. Et seed er ikke et Bitcoin-objekt; det er blot entropi. Det kan også generere adresser og nøgler til andre systemer. Enhver, der tog et Coldcard-seed ind i en multi-kæde-wallet, brugte de samme ødelagte terninger ved et andet bord.
Coinkite, det canadiske firma bag enheden, har offentliggjort sin egen beretning om, hvad der gik galt. Få uger før tyveriet gennemførte virksomheden en af de mest avancerede tilgængelige AI-modeller på netop denne kode for at lede efter sikkerhedsproblemer. Undersøgelsen kom tilbage uden fund. Virksomheden tror også, at netop det var sådan angriberen fandt fejlen, da firmwaren altid har været open source. Begge parter havde samme værktøj. Det virkede kun for den ene.
Episoden fremhæver et vigtigt problem med AI-assisteret sikkerhed. Forsvareren beder en model om at gennemgå en kodebase og har brug for, at den opdager alle alvorlige sårbarheder. En angriber beder den om at finde én udnyttelig sti og kan tåle et hvilket som helst antal forkerte svar, fordi han kun behøver ét korrekt svar. Forsvaret skal være korrekt alle steder. Angrebet skal være korrekt én gang. Billig kodegennemgang fjerner ikke asymmetrien – den accelererer den.
Forsvarets asymmetri
Det fører os til mantraet: Ikke dine nøgler, ikke dine mønter. Bitcoins ældste linje. Det var rettet mod børser, og i sidste uge leverede det præcis som skrevet. Ofrene havde deres egne nøgler. Det havde angriberen også. Protokollen har ingen mening om, hvem af dem der var ejeren.
Det er derfor, at restitution her er værre end besværligt. Bitcoin er et bearer-instrument. Den, der kan fremsende en gyldig signatur, kan flytte mønten. Netværket spørger ikke, om du har ret til midlerne. Det spørger kun, om signaturen er korrekt.
Efter det flytter sagen sig til domstolene. Du skal finde personen i en jurisdiktion, der vil høre dig, så skal du bevise, at tegnebogen var din, og at overførslen var tyveri frem for godkendt. Ud fra kæden alene kan disse historier se ens ud.
Hvem ville du sagsøge?
For nogle år siden kom en Bitcoin-whale forbi kontoret for at høre om vores digitale aktivprodukter. Han spurgte om custody inden for 90 sekunder og lavede en forestilling ud af ikke at stole på et eneste navn på listen. Enterprise-grade, ISO-certificeret, revideret, forsikret – og for ham uden betydning, fordi nogen andre havde nøglerne.
Mit svar er stadig det samme i dag. En reguleret forvalter er den del af strukturen, som kan få andre til at betale. Hvis klientens aktiver bliver fejlhåndteret, kan der være forsikring, kontraktligt ansvar, revisionsfirmaer og tilsynsmyndigheder at forfølge. Ingen af dem garanterer restitution, men nogen er forpligtet.
Han valgte derimod anderledes, som var hans ret. Problemet er, at valget blev truffet af et slogan. Seks ord afsluttede et spørgsmål om en meget stor sum penge, der fortjente en samtale om fejl-udslag, forsikring og præcis hvem man ville sagsøge.
Intet af dette er et argument for at købe ETF’en og slukke for hjernen. Egen custody fejlede ikke her. Én leverandørs byggestamme fejlede, og hver bruger, der satte sine egne terninger op ved installationen, kom videre uden berøring. Men fejlen var usynlig i fem år, og den boede i den præcise rutine, som praksis siger er sikker.
Ingen måde at kontrollere på
Dette bringer os til den ubehagelige del. Der er ingen selvtest. Du kan ikke køre noget imod din egen tegnebog for at afgøre, om dit seed havnede i det reproducerbare sæt, fordi et kompromitteret seed og et velfungerende ser identiske ud. Den eneste ærlige holdning er at antage, at du er involveret, og flytte aktiverne til en nygenereret, sikker tegnebog.
Læringen er ikke, at selv-kustod faktisk ikke virker. Det er, at det overfører ansvaret. Det vigtige spørgsmål er ikke blot, hvem der holder dine nøgler, men hvem der bærer tabet, når disse nøgler svigter.
