Drivs av
Featured

Tärningskast ser till att Bitcoin-nycklarna förvaras offline, men alla kommer inte att bry sig om det

En vanlig sexsidig tärning genererar cirka 2,6 bitar oförutsägbar information vid varje kast. Det kanske inte låter av mycket, men om det upprepas tillräckligt många gånger kan dessa kast skapa den råa slumpmässighet som krävs för att säkra en bitcoinplånbok utan att man behöver förlita sig på programvara eller elektroniska komponenter.

SKRIVEN AV
DELA
Tärningskast ser till att Bitcoin-nycklarna förvaras offline, men alla kommer inte att bry sig om det

Viktiga slutsatser

  • Ett rättvist kast med en sexsidig tärning ger cirka 2,585 bitar entropi, enligt Claude Shannons formel.
  • Enligt Coinkites dokumentation uppfyller 50 tärningskast 128-bitarsstandarden för en bitcoinplånboks seed.
  • Kevin Loaecs analys Wizard Sardine pekade på risker i Coldcard-verktygen utöver huvudfröet.

Varför ett tärningskast är så svårt att förutsäga

Claude Shannon, matematikern som grundlade informationsteorin, använde entropi för att mäta hur osäkert ett resultat är. Med en rättvis sexsidig tärning har varje sida samma sannolikhet – en på sex – att dyka upp. Det ger varje kast ungefär 2,585 bitar entropi. Ett myntkast ger 1 bit, medan en åttasidig tärning ger 3 bitar.

Image of different colored diceDen senaste tidens Coldcard-kontrovers har gjort att tärningsbaserad frögenerering har spridit sig på sociala medier. Vissa användare ser det nu som nödvändigt, andra säger att det skyddade deras medel, medan erfarna användare påpekar att de flesta nykomlingar inte kommer att tolerera en långsam och felbenägen installationsprocess.

Det viktiga är inte att en tärning som kastas beter sig slumpmässigt på atomnivå. Det gör den inte. Resultatet styrs av fysik, men alltför många små variabler förändras samtidigt för att någon ska kunna beräkna utfallet på ett tillförlitligt sätt. Tärningen lämnar handen med en viss hastighet, vinkel, höjd och snurr, träffar sedan bordet och ändrar riktning vid varje studs.

I praktiken kan till och med en ytterst liten förändring i kastet ge ett helt annat resultat. En något annorlunda fingerposition eller ett aningen hårdare kast förändrar banan tillräckligt mycket för att det slutliga talet inte ska kunna förutsägas genom att observera rörelsen. Resultatet må vara deterministiskt i teorin, men för att generera plånböcker är det avgörande att en angripare inte kan återskapa eller beräkna det.

Omvandla tärningskast till användbar data

En dator kan inte använda en lista med tärningsresultat direkt. Kastningarna måste först omvandlas till binär data, och omvandlingsmetoden spelar roll.

En enkel metod baserad på udda eller jämnt är lätt att förstå, men den slösar bort en stor del av den tillgängliga entropin. Varje kast reduceras till en enda bit, trots att tärningen genererade cirka 2,6 bitar information. Mer effektiva metoder samlar in en lång sekvens av kast och bearbetar hela strängen, vanligtvis genom en kryptografisk hashfunktion. Det bevarar betydligt mer av slumpmässigheten.

Samma princip återfinns i Diceware, en sedan länge etablerad metod för att skapa säkra lösenfraser, samt vid manuell generering av Bitcoin-plånböcker. En typisk återställningsfras för en plånbok bestående av 12 ord bygger på 128 bitar entropi. Med ungefär 2,6 bitar per kast ger cirka 50 rättvisa kast tillräckligt med råinformation för att överskrida den tröskeln.

Coinkite, tillverkaren av hårdvaruplånboken Coldcard, rekommenderar 99 eller fler kast för användare som strävar efter nära 256 bitar entropi. Det gör inte plånboken dubbelt så svår att använda, men det ger den genererade hemligheten en mycket större matematisk säkerhetsmarginal.

Ett test i verkligheten av tärningsgenererade frön

Denna distinktion blev viktig efter att Coinkite avslöjade ett firmwareproblem som går tillbaka till 2021. På vissa Coldcard-enheter kunde programvaran hoppa över den interna slumptalsgeneratorn i hårdvaran och istället använda en svagare process kopplad till icke-hemlig enhetsinformation.

Eftersom delar av den processen kunde rekonstrueras kunde angripare begränsa antalet möjliga plånboksnycklar istället för att söka igenom hela nyckelutrymmet. Bristen kopplades till stölden av uppskattningsvis 1 128,6633 BTC från cirka 1 100 adresser, per kl. 13.00 östkusttid.

X screenshot
Bildkälla: X

Plånboksfrön som skapats helt och hållet utifrån ett tillräckligt antal oberoende tärningskast utsattes inte för risken på samma sätt. Dessa användare hade tillhandahållit sin egen entropi, så den felaktiga hårdvarugeneratorn var inte ansvarig för att skapa den primära hemligheten för plånboken.

Det skyddet gällde dock endast det frö som genererades från tärningarna. Det skyddade inte automatiskt alla andra hemligheter som genererades av enheten.

Wizard Sardine granskar det finstilta

Säkerhetsforskaren Kevin Loaec publicerade den 1 augusti en analys av Coldcard-sårbarheten på Wizard Sardines webbplats. Hans viktigaste iakttagelse gällde de Coldcard-funktioner som genererade egna hemligheter separat från plånbokens primära seed.

”Jag anser att det är oerhört viktigt att betona att även användare som importerat eller genererat ett frö med tärningar är sårbara, om de använder följande funktioner”, skrev Loaec på X, innan han presenterade ett diagram över det drabbade systemet.

Diagrammet visar den bristfälliga slumptalsgeneratorn som matar flera sekundära Coldcard-funktioner. Dessa inkluderade skapande av pappersplånböcker, kloning av enheter, kryptering av USB-sessioner, överföringsfunktionen Secret Teleport, skapande av medunderteckningsnycklar, den inbyggda lösenordsgeneratorn och autentiseringskoder för hårdvarusäkerhetsmoduler.

X screenshot
Bildkälla: Inlägg på X via säkerhetsforskaren Kevin Loaec.

En primär plånbok som skapats med 99 tärningskast förblev i en separat del av systemet. Problemet var att de andra verktygen fortfarande kunde begära ny slumpmässighet från den felaktiga generatorn. Följaktligen garanterade ett säkert startvärde inte att varje lösenord, säkerhetskopia, autentiseringskod eller sekundär nyckel som skapades på samma enhet var lika säker.

Varför de flesta nya användare inte kommer att kasta tärning

Entropi genererad med tärningar är tekniskt sett tillförlitlig när den utförs korrekt, men det är inte ett realistiskt standardalternativ för de flesta nya användare. Att kasta en tärning 50 eller 99 gånger, mata in varje resultat korrekt och bekräfta att inget kast har hoppats över eller duplicerats kräver tålamod och stor koncentration. Ett felaktigt inmatat tal kan förändra den slutliga plånboken fullständigt, och de flesta enheter kan inte avgöra om misstaget berodde på ett felaktigt tärningskast, ett inmatningsfel eller ett missförstånd av instruktionerna.

X screenshot
Bildkälla: X

Processen medför också risker som inte förekommer med en korrekt fungerande hårdvarugenerator. Användare kan skriva ner tärningskast på papper, fotografera dem, mata in dem i ett onlineverktyg eller lämna listan någonstans där en annan person kan hitta den. Vissa kastar tärningen på ett repetitivt eller kontrollerat sätt, använder en riggad eller skadad tärning, eller slutar i förtid eftersom processen känns överdriven. Matematiken må vara solid, men resultatet är bara så säkert som användarens tillvägagångssätt.

X screenshot
Bildkälla: X

Det är därför som tärningskast inte alltid anses vara den bästa metoden av många, inte ens bland erfarna bitcoin-användare. Det ersätter förtroendet för en enhet med förtroendet för en manuell process. För en tekniskt noggrann användare som förstår entropi, verifierar metoden och håller tärningssekvensen privat kan det vara ett rimligt val. För en genomsnittlig köpare som skapar en plånbok för första gången innebär det flera möjligheter att göra ett permanent misstag, samtidigt som det är en irriterande process.

X screenshot
Bildkälla: X

Det är också svårt att föreställa sig en bred spridning av bitcoin om det kräver att människor sitter vid ett bord och antecknar 99 tärningsresultat innan de kan ta emot medel på ett säkert sätt. Säkerhetsrutinerna måste klara av verkliga hemförhållanden, fullspäckade scheman, distraktioner och användare som inte vill sätta sig in i kryptografi. Manuell entropi bör förbli tillgänglig som ett avancerat alternativ, men det långsiktiga målet är hårdvara och mjukvara som genererar stark slumpmässighet på rätt sätt, tydligt förklarar vad som händer och kräver så lite specialkunskap som möjligt.

Vad Coldcard-ägare bör kontrollera

Ägare av drabbade Coldcard-enheter bör först kontrollera vilken firmwareversion som är installerad på enheten. De bör sedan granska vilka funktioner de använde när de körde äldre firmware, istället för att enbart fokusera på hur huvudplånbokens seed genererades.

Den som har använt den drabbade enheten för att generera en pappersplånbok, kloningsnyckel, lösenord, medunderskrivningsnyckel eller autentiseringskod kan behöva byta ut det materialet omedelbart. Att installera uppdateringen förhindrar att samma problem drabbar nya hemligheter, men den åtgärdar inte något som skapats tidigare.

Händelsen ger också starkare praktiska argument för plånböcker med flera leverantörer. I en lösning med flera signaturer kan separata hårdvaruenheter från olika tillverkare krävas för att godkänna en transaktion. Denna struktur gör inte firmwarefel omöjliga, men den kan förhindra att en enda defekt slumptalsgenerator på egen hand utsätter hela plånboken för risk.

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.