Drevet af
Featured

Terningekast holder Bitcoin-nøgler offline, men det er ikke alle, der gider gøre sig den ulejlighed

En almindelig sekssidet terning genererer ca. 2,6 bit uforudsigelig information ved hvert kast. Det lyder måske ikke af meget, men gentaget nok gange kan disse kast skabe den rå tilfældighed, der er nødvendig for at sikre en Bitcoin-tegnebog uden at være afhængig af software eller elektroniske komponenter.

SKREVET AF
DEL
Terningekast holder Bitcoin-nøgler offline, men det er ikke alle, der gider gøre sig den ulejlighed

Vigtige pointer

  • Et retfærdigt kast med en sekssidet terning leverer ca. 2,585 bit entropi ifølge Claude Shannons formel.
  • Ifølge Coinkites dokumentation opfylder 50 terningkast 128-bit-standarden for en bitcoin-tegnebogs seed.
  • Kevin Loaecs Wizard Sardine-analyse påpegede risici i Coldcard-værktøjer ud over selve seedet.

Hvorfor et terningekast er så svært at forudsige

Claude Shannon, matematikeren, der grundlagde informationsteorien, brugte entropi til at måle, hvor usikkert et resultat er. Med en retfærdig sekssidet terning har hver side den samme chance på én ud af seks for at dukke op. Det giver hvert kast cirka 2,585 bit entropi. Et møntkast giver 1 bit, mens en ottekantet terning giver 3 bits.

Image of different colored diceDen seneste Coldcard-kontrovers har sat fokus på terningbaseret seed-generering på de sociale medier. Nogle brugere betragter det nu som uundværligt, andre siger, at det beskyttede deres midler, mens erfarne brugere påpeger, at de fleste nybegyndere ikke vil finde sig i en langsom, fejlbehæftet opsætningsproces.

Det vigtige er ikke, at en terning, der ruller, opfører sig tilfældigt på atomart niveau. Det gør den ikke. Resultatet styres af fysikken, men der ændrer sig for mange små variabler på én gang til, at nogen kan beregne udfaldet pålideligt. Terningen forlader hånden med en bestemt hastighed, vinkel, højde og rotation, rammer derefter bordet og ændrer retning ved hvert hop.

I praksis kan selv en lille ændring i kastet give et helt andet resultat. En lidt anderledes fingerplacering eller et anelse hårdere kast ændrer banen nok til, at det endelige tal ikke kan forudsiges ved at observere bevægelsen. Resultatet er måske deterministisk i teorien, men når det gælder generering af wallet-nøgler, er det afgørende, at en angriber ikke kan gengive eller beregne det.

Omdannelse af terningekast til brugbare data

En computer kan ikke bruge en liste over terningeresultater direkte. Kastene skal først konverteres til binære data, og konverteringsmetoden har betydning.

En grundlæggende ulige-eller-lige-metode er let at forstå, men den spilder en stor del af den tilgængelige entropi. Hvert kast reduceres til en enkelt bit, selvom terningen genererede ca. 2,6 bit information. Mere effektive metoder indsamler en lang række kast og behandler hele strengen, typisk ved hjælp af en kryptografisk hashfunktion. Det bevarer langt mere af tilfældigheden.

Det samme princip går igen i Diceware, en velkendt metode til at oprette sikre adgangskoder, og i manuel generering af Bitcoin-tegnebøger. En typisk 12-ords gendannelsesfrase til en tegnebog er opbygget af 128 bit entropi. Med cirka 2,6 bit pr. kast giver omkring 50 retfærdige kast nok råinformation til at overskride denne tærskel.

Coinkite, producenten af Coldcard-hardware-tegnebogen, anbefaler 99 eller flere kast til brugere, der søger tæt på 256 bit entropi. Det gør ikke tegnebogen dobbelt så svær at bruge, men det giver den genererede hemmelighed en langt større matematisk sikkerhedsmargen.

En test i den virkelige verden af terningegenererede frø

Denne forskel blev vigtig, efter at Coinkite afslørede et firmwareproblem, der stammede helt tilbage fra 2021. På nogle Coldcard-enheder kunne softwaren omgå den interne hardware-tilfældighedsgenerator og i stedet anvende en svagere proces, der var knyttet til ikke-hemmelige enhedsoplysninger.

Da dele af denne proces kunne rekonstrueres, var angribere i stand til at indsnævre de mulige tegnebogsnøgler i stedet for at gennemsøge hele nøgleområdet. Fejlen blev knyttet til tyveriet af anslået 1.128,6633 BTC fra omkring 1.100 adresser, pr. kl. 13.00 Eastern Time.

X screenshot
Billedkilde: X

Wallet-seeds, der udelukkende var genereret ud fra et tilstrækkeligt antal uafhængige terningkast, blev ikke kompromitteret på samme måde. Disse brugere havde selv leveret deres entropi, så den fejlbehæftede hardwaregenerator var ikke ansvarlig for oprettelsen af den primære wallet-hemmelighed.

Denne beskyttelse gjaldt dog kun den seed, der blev genereret ud fra terningerne. Den beskyttede ikke automatisk alle andre hemmeligheder, der blev genereret af enheden.

Wizard Sardine undersøger det med småt

Sikkerhedsforskeren Kevin Loaec offentliggjorde den 1. august en vurdering af Coldcard-sårbarheden på Wizard Sardines hjemmeside. Hans vigtigste observation vedrørte de Coldcard-funktioner, der genererede deres egne nøgler separat fra den primære wallet-seed.

»Jeg mener, det er yderst vigtigt at understrege, at selv brugere, der har importeret eller genereret en seed med terninger, er sårbare, hvis de bruger følgende funktioner,« skrev Loaec på X, inden han præsenterede et diagram over det berørte system.

Diagrammet viser den fejlbehæftede tilfældighedsgenerator, der forsyner flere sekundære Coldcard-funktioner. Disse omfattede oprettelse af papir-wallets, kloning af enheder, USB-sessionskryptering, overførselsfunktionen »Secret Teleport«, oprettelse af medunderskrivningsnøgler, den indbyggede adgangskodegenerator og godkendelseskoder til hardware-sikkerhedsmoduler.

X screenshot
Billedkilde: X-indlæg via sikkerhedsforsker Kevin Loaec.

En primær tegnebog, der var oprettet med 99 terningekast, forblev i en separat del af systemet. Problemet var, at de andre værktøjer stadig kunne anmode om nye tilfældige tal fra den fejlbehæftede generator. Som følge heraf garanterede en sikker seed ikke, at alle adgangskoder, sikkerhedskopier, godkendelseskoder eller sekundære nøgler, der blev oprettet på samme enhed, var lige så sikre.

Hvorfor de fleste nye brugere ikke vil kaste terninger

Terningegenereret entropi er teknisk set forsvarlig, når den udføres korrekt, men det er ikke en realistisk standard for de fleste nye brugere. At kaste en terning 50 eller 99 gange, indtaste hvert resultat nøjagtigt og bekræfte, at ingen kast er blevet sprunget over eller gentaget, kræver tålmodighed og stor koncentration. Et enkelt forkert indtastet tal kan ændre den endelige wallet fuldstændigt, og de fleste enheder kan ikke skelne mellem, om fejlen skyldes et dårligt terningkast, en indtastningsfejl eller en misforståelse af instruktionerne.

X screenshot
Billedkilde: X

Processen medfører også risici, der ikke findes ved en korrekt fungerende hardwaregenerator. Brugere kan skrive terningkastene ned på papir, fotografere dem, indtaste dem i et onlineværktøj eller efterlade listen et sted, hvor en anden person kan finde den. Nogle kaster terningen på en gentagen eller kontrolleret måde, bruger en manipuleret eller beskadiget terning eller stopper før tid, fordi processen føles for omstændelig. Matematikken er måske solid, men resultatet er kun så sikkert som brugerens fremgangsmåde.

X screenshot
Billedkilde: X

Derfor betragtes terningekast ikke altid som den bedste metode for mange mennesker, selv blandt erfarne bitcoin-brugere. Det erstatter tilliden til en enhed med tilliden til en manuel proces. For en teknisk omhyggelig bruger, der forstår entropi, verificerer metoden og holder kastsekvensen privat, kan den afvejning give mening. For en gennemsnitlig køber, der opretter en tegnebog for første gang, øger det risikoen for at begå en uoprettelig fejl, samtidig med at det er en irriterende proces.

X screenshot
Billedkilde: X

Det er også svært at forestille sig en bred udbredelse af bitcoin, hvis det afhænger af, at folk sidder ved et bord og registrerer 99 terningkast, før de kan modtage midler og gøre det sikkert. Sikkerhedspraksis skal kunne klare virkelige hjem, travle hverdag, distraktioner og brugere, der ikke ønsker at sætte sig ind i kryptografi. Manuel entropi bør forblive tilgængelig som en avanceret mulighed, men det langsigtede mål er hardware og software, der genererer stærk tilfældighed korrekt, forklarer klart, hvad der sker, og kræver så lidt specialviden som muligt.

Hvad Coldcard-ejere bør tjekke

Ejere af berørte Coldcard-enheder bør først kontrollere, hvilken firmwareversion der er installeret på enheden. De bør derefter gennemgå, hvilke funktioner de har brugt, mens de kørte ældre firmware, i stedet for kun at fokusere på, hvordan hoved-wallet-seedet blev genereret.

Alle, der har brugt den berørte enhed til at generere en papir-wallet, en kloningsnøgle, en adgangskode, en medunderskrivningsnøgle eller en godkendelseskode, skal muligvis udskifte dette materiale med det samme. Installation af opdateringen forhindrer, at det samme problem påvirker nye nøgler, men den retter ikke noget, der er oprettet tidligere.

Hændelsen giver også et stærkere praktisk argument for opsætninger med tegnebøger fra flere leverandører. I en ordning med flere signaturer kan det være nødvendigt, at separate hardwareenheder fra forskellige producenter skal godkende en transaktion. Den struktur gør ikke firmwarefejl umulige, men den kan forhindre, at en enkelt defekt tilfældighedsgenerator alene udsætter hele tegnebogen for risiko.

Denne artikel er oversat fra engelsk ved hjælp af kunstig intelligens. Den originale engelske version er den autoritative kilde; automatiske oversættelser kan indeholde unøjagtigheder, især i juridisk og lovgivningsmæssig terminologi.