Aangedreven door
Featured

Door met dobbelstenen te gooien blijven Bitcoin-sleutels offline, maar niet iedereen zal daar de moeite voor nemen

Een standaard zeshoekige dobbelsteen levert bij elke worp ongeveer 2,6 bits aan onvoorspelbare informatie op. Dat klinkt misschien niet als veel, maar als die worpen vaak genoeg worden herhaald, kunnen ze de ruwe willekeur opleveren die nodig is om een bitcoin-portemonnee te beveiligen zonder afhankelijk te zijn van software of een elektronisch onderdeel.

GESCHREVEN DOOR
DELEN
Door met dobbelstenen te gooien blijven Bitcoin-sleutels offline, maar niet iedereen zal daar de moeite voor nemen

Belangrijkste punten

  • Een eerlijke worp met een zeszijdige dobbelsteen levert volgens de formule van Claude Shannon ongeveer 2,585 bits aan entropie op.
  • Volgens de documentatie van Coinkite voldoen 50 worpen aan de 128-bits-standaard voor een bitcoin-wallet-seed.
  • De analyse „Wizard Sardine“ van Kevin Loaec wees op risico’s in de Coldcard-tools die verder gaan dan de hoofdseed.

Waarom een worp met een dobbelsteen zo moeilijk te voorspellen is

Claude Shannon, de wiskundige die de informatietheorie heeft ontwikkeld, gebruikte entropie om te meten hoe onzeker een uitkomst is. Bij een eerlijke zeszijdige dobbelsteen heeft elke zijde dezelfde kans van één op zes om te verschijnen. Dat levert bij elke worp ongeveer 2,585 bits aan entropie op. Een muntworp levert 1 bit op, terwijl een achtzijdige dobbelsteen 3 bits oplevert.

Image of different colored diceDe recente ophef rond Coldcard heeft het genereren van seeds op basis van dobbelstenen op sociale media onder de aandacht gebracht. Sommige gebruikers beschouwen het nu als essentieel, anderen zeggen dat het hun geld heeft beschermd, terwijl ervaren gebruikers erop wijzen dat de meeste nieuwkomers een traag, foutgevoelig installatieproces niet zullen tolereren.

Het belangrijkste is niet dat een rollende dobbelsteen zich op atomair niveau willekeurig gedraagt. Dat doet hij namelijk niet. Het resultaat wordt bepaald door de natuurkunde, maar er veranderen te veel kleine variabelen tegelijk om de uitkomst betrouwbaar te kunnen berekenen. De dobbelsteen verlaat de hand met een bepaalde snelheid, hoek, hoogte en draaiing, raakt vervolgens de tafel en verandert bij elke stuitering van richting.

In de praktijk kan zelfs een minuscule verandering in de worp een totaal ander resultaat opleveren. Een iets andere vingerpositie of een fractie harder gooien verandert de baan zodanig dat het uiteindelijke getal niet kan worden voorspeld door naar de beweging te kijken. De uitkomst mag dan in theorie deterministisch zijn, maar voor het genereren van wallet-adressen is het van belang dat een aanvaller deze niet kan reproduceren of berekenen.

Dobbelsteenworpen omzetten in bruikbare gegevens

Een computer kan een lijst met dobbelstenenresultaten niet direct gebruiken. De worpen moeten eerst worden omgezet in binaire gegevens, en de conversiemethode is daarbij van belang.

Een eenvoudige oneven-of-even-methode is gemakkelijk te begrijpen, maar verspilt een groot deel van de beschikbare entropie. Elke worp wordt teruggebracht tot één bit, ook al leverde de dobbelsteen ongeveer 2,6 bits aan informatie op. Efficiëntere methoden verzamelen een lange reeks worpen en verwerken de gehele reeks, meestal via een cryptografische hashfunctie. Daardoor blijft veel meer van de willekeur behouden.

Hetzelfde principe komt voor in Diceware, een al lang bestaande methode voor het maken van veilige wachtzinnen, en bij het handmatig genereren van Bitcoin-wallets. Een typische herstelzin van 12 woorden voor een wallet is opgebouwd uit 128 bits aan entropie. Bij ongeveer 2,6 bits per worp leveren zo’n 50 eerlijke worpen voldoende ruwe informatie op om die drempel te overschrijden.

Coinkite, de fabrikant van de Coldcard-hardwareportemonnee, adviseert 99 of meer worpen voor gebruikers die bijna 256 bits aan entropie nastreven. Dat maakt de portemonnee niet twee keer zo moeilijk te gebruiken, maar het geeft het gegenereerde geheim een veel grotere wiskundige veiligheidsmarge.

Een praktijkproef met door dobbelstenen gegenereerde seeds

Dat onderscheid werd belangrijk nadat Coinkite een firmwareprobleem uit 2021 aan het licht bracht. Op sommige Coldcard-apparaten kon de software de interne hardware-generator voor willekeurige getallen omzeilen en in plaats daarvan een zwakker proces gebruiken dat gekoppeld was aan niet-geheime apparaatinformatie.

Omdat delen van dat proces konden worden gereconstrueerd, konden aanvallers de mogelijke portemonneesleutels beperken in plaats van de volledige sleutelruimte te doorzoeken. De kwetsbaarheid werd in verband gebracht met de diefstal van naar schatting 1.128,6633 BTC van ongeveer 1.100 adressen, per 13.00 uur Eastern Time.

X screenshot
Afbeeldingsbron: X

Wallet-seeds die volledig waren gegenereerd op basis van een voldoende aantal onafhankelijke dobbelsteenworpen, werden niet via dezelfde route blootgesteld. Die gebruikers hadden hun eigen entropie aangeleverd, zodat de defecte hardwaregenerator niet verantwoordelijk was voor het genereren van het primaire walletgeheim.

Die bescherming gold echter alleen voor de seed die met de dobbelstenen was gegenereerd. Het beschermde niet automatisch alle andere geheimen die door het apparaat werden gegenereerd.

Wizard Sardine onderzoekt de kleine lettertjes

Beveiligingsonderzoeker Kevin Loaec publiceerde op 1 augustus een analyse van de Coldcard-exploit op de website van Wizard Sardine. Zijn belangrijkste observatie betrof de functies van de Coldcard die hun eigen geheimen genereerden, los van de primaire wallet-seed.

„Ik vind het uiterst belangrijk om te benadrukken dat zelfs gebruikers die een seed hebben geïmporteerd of met dobbelstenen hebben gegenereerd, kwetsbaar zijn als ze de volgende functies gebruiken”, schreef Loaec op X, waarna hij een diagram van het getroffen systeem presenteerde.

Het diagram toont hoe de gebrekkige random-number generator verschillende secundaire Coldcard-functies voedt. Deze omvatten het aanmaken van een papieren wallet, het klonen van apparaten, USB-sessieversleuteling, de ‘Secret Teleport’-overdrachtsfunctie, het aanmaken van co-signing-sleutels, de ingebouwde wachtwoordgenerator en authenticatiecodes voor de hardwarebeveiligingsmodule.

X screenshot
Afbeeldingsbron: X-bericht via beveiligingsonderzoeker Kevin Loaec.

Een primaire wallet die was aangemaakt met 99 dobbelsteenworpen, bleef in een apart deel van het systeem opgeslagen. Het probleem was dat de andere tools nog steeds nieuwe willekeurige waarden konden opvragen bij de defecte generator. Daardoor bood een veilige seed geen garantie dat elk wachtwoord, elke back-up, elke authenticatiecode of elke secundaire sleutel die op hetzelfde apparaat werd aangemaakt, even veilig was.

Waarom de meeste nieuwe gebruikers geen dobbelstenen zullen gooien

Door dobbelstenen gegenereerde entropie is technisch gezien deugdelijk wanneer dit correct wordt uitgevoerd, maar het is voor de meeste nieuwe gebruikers geen realistische standaardinstelling. 50 of 99 keer met een dobbelsteen gooien, elk resultaat nauwkeurig invoeren en controleren of er geen worp is overgeslagen of gedupliceerd, vereist geduld en veel concentratie. Eén verkeerd ingevoerd cijfer kan de uiteindelijke wallet volledig veranderen, en de meeste apparaten kunnen niet vaststellen of de fout het gevolg was van een slechte worp, een invoerfout of een verkeerd begrip van de instructies.

X screenshot
Afbeeldingsbron: X

Het proces brengt ook risico’s met zich mee die niet bestaan bij een goed functionerende hardware-generator. Gebruikers kunnen de worpen op papier noteren, er een foto van maken, ze invoeren in een online tool of de lijst ergens achterlaten waar iemand anders deze kan vinden. Sommige mensen gooien de dobbelsteen op een repetitieve of gecontroleerde manier, gebruiken een gemanipuleerde of beschadigde dobbelsteen, of stoppen voortijdig omdat het proces te omslachtig aanvoelt. De wiskunde mag dan wel solide zijn, maar het resultaat is slechts zo veilig als de werkwijze van de gebruiker.

X screenshot
Afbeeldingsbron: X

Daarom wordt het gooien van dobbelstenen door veel mensen, zelfs onder ervaren bitcoin-gebruikers, niet altijd als de beste methode beschouwd. Het vervangt vertrouwen in een apparaat door vertrouwen in een handmatig proces. Voor een technisch zorgvuldige gebruiker die entropie begrijpt, de methode verifieert en de volgorde van de worpen geheim houdt, kan die afweging zinvol zijn. Voor een gemiddelde koper die voor het eerst een wallet instelt, voegt het verschillende mogelijkheden toe om een onherstelbare fout te maken, terwijl het tegelijkertijd ook een vervelend proces is.

X screenshot
Afbeeldingsbron: X

Het is ook moeilijk voor te stellen dat bitcoin op grote schaal wordt geaccepteerd als mensen aan een tafel moeten zitten en 99 dobbelstenenresultaten moeten noteren voordat ze geld kunnen ontvangen en dat op een veilige manier kunnen doen. Beveiligingsmaatregelen moeten bestand zijn tegen het dagelijkse leven thuis, drukke agenda’s, afleidingen en gebruikers die zich niet in cryptografie willen verdiepen. Handmatige entropie moet beschikbaar blijven als geavanceerde optie, maar het doel op de lange termijn is hardware en software die op de juiste manier sterke willekeurigheid genereert, duidelijk uitlegt wat er gebeurt en zo min mogelijk gespecialiseerde kennis vereist.

Wat Coldcard-bezitters moeten controleren

Eigenaren van getroffen Coldcard-apparaten moeten eerst de firmwareversie controleren die op het apparaat is geïnstalleerd. Vervolgens moeten ze nagaan welke functies ze gebruikten toen ze nog oudere firmware draaiden, in plaats van zich alleen te richten op hoe de seed van de hoofdportemonnee werd gegenereerd.

Iedereen die het getroffen apparaat heeft gebruikt om een papieren portemonnee, kloongeheim, wachtwoord, medeondertekeningssleutel of authenticatiecode te genereren, moet dat materiaal mogelijk onmiddellijk vervangen. Het installeren van de update voorkomt dat hetzelfde probleem nieuwe geheimen treft, maar herstelt niets wat eerder is aangemaakt.

Het incident versterkt ook de praktische argumenten voor walletopstellingen met meerdere leveranciers. In een opzet met meerdere handtekeningen kunnen afzonderlijke hardwareapparaten van verschillende fabrikanten nodig zijn om een transactie goed te keuren. Die structuur maakt firmwarefouten niet onmogelijk, maar kan wel voorkomen dat één defecte random number generator op zichzelf de gehele wallet blootstelt.

Dit artikel is met behulp van AI uit het Engels vertaald. De originele Engelstalige versie is de gezaghebbende bron; geautomatiseerde vertalingen kunnen onnauwkeurigheden bevatten, met name in juridische en regelgevende terminologie.