Drevet av
Featured

Terningkast holder Bitcoin-nøkler offline, men ikke alle vil gidde

En standard sekssidig terning gir omtrent 2,6 bits uforutsigbar informasjon for hvert kast. Det høres kanskje ikke ut som mye, men gjentas det nok ganger, kan disse kastene skape den rå tilfeldigheten som trengs for å sikre en bitcoin-lommebok uten å være avhengig av programvare eller en elektronisk komponent.

SKREVET AV
DEL
Terningkast holder Bitcoin-nøkler offline, men ikke alle vil gidde

Viktige punkter

  • Et rettferdig kast med en sekssidig terning gir omtrent 2,585 bits entropi, ifølge Claude Shannons formel.
  • Coinkites dokumentasjon sa at 50 terningkast oppfyller 128-bit-standarden for en bitcoin-lommebok-seed.
  • Kevin Loaecs Wizard Sardine-analyse pekte på risiko i Coldcard-verktøy utover hoved-seeden.

Hvorfor et terningkast er så vanskelig å forutsi

Claude Shannon, matematikeren som etablerte informasjonsteorien, brukte entropi til å måle hvor usikkert et utfall er. Med en rettferdig sekssidig terning har hver side samme sannsynlighet, én av seks, for å dukke opp. Det gir hvert kast omtrent 2,585 bits entropi. Et myntkast gir 1 bit, mens en åttesidig terning gir 3 bits.

Bilde av terninger i ulike farger

Den nylige Coldcard-etterdønningen har løftet terningbasert seed-generering over sosiale medier. Noen brukere ser nå på det som essensielt, andre sier det beskyttet midlene deres, mens erfarne operatører påpeker at de fleste nybegynnere ikke vil tolerere en langsom, feilutsatt oppsettsprosess.

Det viktige er ikke at en rullende terning oppfører seg tilfeldig på atomnivå. Det gjør den ikke. Resultatet styres av fysikken, men for mange små variabler endrer seg samtidig til at noen kan beregne utfallet pålitelig. Terningen forlater hånden med en viss hastighet, vinkel, høyde og spinn, treffer deretter bordet og endrer retning ved hvert sprett.

I praksis kan selv en bitteliten endring i slippet gi et helt annet resultat. En litt annen fingerposisjon eller et marginalt hardere kast endrer banen nok til at sluttallet ikke kan forutsies ved å se på bevegelsen. Utfallet kan være deterministisk i teorien, men for lommebokgenerering er det som betyr noe at en angriper ikke kan gjenskape eller beregne det.

Å gjøre terningkast om til brukbare data

En datamaskin kan ikke bruke en liste med terningresultater direkte. Kastene må først konverteres til binære data, og konverteringsmetoden betyr noe.

En enkel oddetall-eller-partall-metode er lett å forstå, men den sløser bort mye av den tilgjengelige entropien. Hvert kast reduseres til én enkelt bit, selv om terningen produserte omtrent 2,6 bits informasjon. Mer effektive metoder samler en lang sekvens av kast og behandler hele strengen, vanligvis gjennom en kryptografisk hashfunksjon. Det bevarer langt mer av tilfeldigheten.

Det samme prinsippet finnes i Diceware, en veletablert metode for å lage sikre passfraser, og i manuell generering av Bitcoin-lommebøker. En typisk gjenopprettingsfrase på 12 ord for en lommebok bygges fra 128 bits entropi. Med omtrent 2,6 bits per kast gir rundt 50 rettferdige kast nok rå informasjon til å passere den terskelen.

Coinkite, produsenten av Coldcard-maskinvarelommeboken, anbefaler 99 eller flere kast for brukere som ønsker nær 256 bits entropi. Det gjør ikke lommeboken dobbelt så vanskelig å bruke, men det gir den genererte hemmeligheten en mye større matematisk sikkerhetsmargin.

En test i den virkelige verden av terninggenererte seeder

Det skillet ble viktig etter at Coinkite avslørte et fastvareproblem som går tilbake til 2021. På noen Coldcard-enheter kunne programvaren hoppe over den interne maskinvarebaserte generatoren for tilfeldige tall og i stedet bruke en svakere prosess knyttet til ikke-hemmelig enhetsinformasjon.

Fordi deler av den prosessen kunne rekonstrueres, kunne angripere snevre inn mulige lommeboknøkler i stedet for å søke gjennom hele nøkkelrommet. Feilen ble knyttet til tyveriet av anslagsvis 1 128,6633 BTC fra rundt 1100 adresser, per kl. 13.00 østlig tid.

X-skjermbilde
Bildekilde: X

Lommebok-seeder som var laget helt og holdent fra et tilstrekkelig antall uavhengige terningkast, ble ikke eksponert via den samme veien. Disse brukerne hadde tilført sin egen entropi, så den feilaktige maskinvaregeneratoren var ikke ansvarlig for å skape den primære lommebokhemmeligheten.

Denne beskyttelsen gjaldt imidlertid bare seeden som ble produsert fra terningene. Den beskyttet ikke automatisk alle andre hemmeligheter som ble generert av enheten.

Wizard Sardine gransker det som står med liten skrift

Sikkerhetsforskeren Kevin Loaec publiserte en vurdering av Coldcard-utnyttelsen på Wizard Sardines nettsted 1. august. Hans viktigste observasjon gjaldt Coldcard-funksjoner som genererte sine egne hemmeligheter separat fra den primære lommebok-seeden.

«Jeg mener det er ekstremt viktig å understreke at selv brukere som importerte eller genererte en seed med terninger, er sårbare dersom de bruker følgende funksjoner», skrev Loaec på X, før han presenterte et diagram av det berørte systemet.

Diagrammet viser den feilaktige tilfeldigtallgeneratoren som mater flere sekundære Coldcard-funksjoner. Disse inkluderte opprettelse av papirlommebok, kloning av enhet, kryptering av USB-økt, overføringsfunksjonen Secret Teleport, opprettelse av medeiersigneringsnøkler, den innebygde passordgeneratoren og autentiseringskoder for maskinvare-sikkerhetsmodul.

X-skjermbilde
Bildekilde: X-innlegg via sikkerhetsforskeren Kevin Loaec.

En primær lommebok opprettet med 99 terningkast forble i en separat del av systemet. Problemet var at de andre verktøyene fortsatt kunne be om fersk tilfeldighet fra den feilaktige generatoren. Dermed garanterte ikke en sikker seed at hvert passord, hver sikkerhetskopi, autentiseringskode eller sekundær nøkkel som ble laget på samme enhet, var like sikker.

Hvorfor de fleste nye brukere ikke vil kaste terninger

Terninggenerert entropi er teknisk solid når den utføres korrekt, men det er ikke et realistisk standardvalg for de fleste nye brukere. Å kaste en terning 50 eller 99 ganger, taste inn hvert resultat nøyaktig, og bekrefte at ingen kast ble hoppet over eller duplisert, krever tålmodighet og mye konsentrasjon. Ett feilskrevet tall kan endre hele lommeboken, og de fleste enheter kan ikke si om feilen kom fra et dårlig kast, en inntastingsfeil eller en misforståelse av instruksjonene.

X-skjermbilde
Bildekilde: X

Prosessen introduserer også risikoer som ikke finnes med en maskinvaregenerator som fungerer korrekt. Brukere kan skrive ned kastene på papir, fotografere dem, taste dem inn i et nettbasert verktøy eller la listen ligge et sted der en annen person kan finne den. Noen kaster terningen på en repetitiv eller kontrollert måte, bruker en manipulert eller skadet terning, eller slutter tidlig fordi prosessen føles overdreven. Matematikken kan være sterk, men resultatet er bare så sikkert som brukerens fremgangsmåte.

X-skjermbilde
Bildekilde: X

Derfor blir terningkasting ikke alltid ansett som den beste metoden av mange, selv blant erfarne bitcoin-brukere. Det erstatter tillit til en enhet med tillit til en manuell prosess. For en teknisk nøye bruker som forstår entropi, verifiserer metoden og holder kastsekvensen privat, kan den avveiningen gi mening. For en gjennomsnittlig kjøper som setter opp en lommebok for første gang, legger det til flere muligheter til å gjøre en permanent feil, samtidig som det også er en irriterende prosess på samme tid.

X-skjermbilde
Bildekilde: X

Det er også vanskelig å se for seg at bred bitcoin-adopsjon skal avhenge av at folk sitter ved et bord og noterer 99 terningresultater før de kan motta midler og gjøre det sikkert. Sikkerhetspraksiser må tåle ekte hjem, travle timeplaner, distraksjoner og brukere som ikke vil studere kryptografi. Manuell entropi bør forbli tilgjengelig som et avansert alternativ, men det langsiktige målet er maskinvare og programvare som genererer sterk tilfeldighet korrekt, forklarer tydelig hva som skjer, og krever så lite spesialkunnskap som mulig.

Hva Coldcard-eiere bør sjekke

Eiere av berørte Coldcard-enheter bør først verifisere fastvareversjonen som er installert på enheten. Deretter bør de gjennomgå hvilke funksjoner de brukte mens de kjørte eldre fastvare, fremfor å kun fokusere på hvordan hoved-lommebok-seeden ble generert.

Alle som brukte den berørte enheten til å generere en papirlommebok, kloningshemmelighet, passord, medeiersigneringsnøkkel eller autentiseringskode, kan måtte erstatte dette materialet umiddelbart. Å installere oppdateringen hindrer at det samme problemet påvirker nye hemmeligheter, men det reparerer ikke noe som ble opprettet tidligere.

Hendelsen gir også oppsett med lommebøker fra flere leverandører et sterkere praktisk argument. I en multisignatur-ordning kan separate maskinvareenheter fra ulike produsenter kreves for å godkjenne en transaksjon. Den strukturen gjør ikke fastvarefeil umulige, men den kan hindre at én defekt tilfeldigtallgenerator alene eksponerer hele lommeboken.

Denne artikkelen er oversatt fra engelsk ved hjelp av kunstig intelligens. Den originale engelske versjonen er den autoritative kilden; automatiske oversettelser kan inneholde unøyaktigheter, særlig i juridisk og regulatorisk terminologi.