De kern
Coinkite bevestigt dat een integratiefout in COLDCARD-firmware ertoe leidde dat een algemene softwarematige pseudowillekeurige generator in het pad voor seedgeneratie terechtkwam. Vaste firmware beschermt nieuwe seeds, maar herstelt bestaande zwakke seeds niet.
Offline is geen kwaliteitsgarantie
Een hardwarewallet beperkt veel netwerkrisico’s, maar de veiligheid begint bij de willekeur waarmee het hoofdgeheim wordt gemaakt. Als die stap voorspelbaar is, kan een aanvaller kandidaten offline genereren en via openbare blockchainadressen testen.
De fout zat in de verbinding tussen componenten
Het ontwerp moest een hardwarematige generator gebruiken. Door een bouw- en koppelingsfout verwees een functie echter naar een algemene softwaregenerator. Zulke fouten laten zien waarom niet alleen algoritmen, maar ook de uiteindelijke samengestelde firmware moet worden getest.
Een patch verandert het verleden niet
Nieuwe firmware corrigeert toekomstige seedgeneratie. Een eerder gemaakt geheim behoudt dezelfde beperkte onvoorspelbaarheid. Herstel vereist daarom een nieuwe seed en een echte transactie naar nieuwe adressen.
Wat betekent dit voor jou?
Een hardwarewallet kan volledig offline blijven en toch een onveilig hoofdgeheim maken. In dit geval hoefde een aanvaller het apparaat niet op afstand binnen te dringen. Door zwakke willekeur konden mogelijke herstelzinnen buiten het apparaat worden nagemaakt en tegen openbare adressen worden getest.
Een firmware-update voorkomt dat nieuwe seeds via hetzelfde foutpad worden gemaakt, maar verandert een bestaande herstelzin niet. Mogelijk getroffen gebruikers moeten daarom de actuele fabrikantmatrix volgen, een nieuwe seed genereren en hun bitcoin daadwerkelijk naar nieuwe adressen sturen.
Kort gezegd: Wie een mogelijk getroffen COLDCARD-seed gebruikt, moet de actuele instructies van de fabrikant volgen en fondsen naar een nieuw, veilig gegenereerd geheim verplaatsen. Alleen firmware bijwerken of dezelfde seed op een ander apparaat invoeren is onvoldoende.
Wat betekent dit voor je digitale voetafdruk?
Een seed vormt de basis van een hele boom aan adressen. Wie de seed achterhaalt, kan huidige en toekomstige afgeleide adressen herkennen. Door de openbare blockchain blijven transacties en verplaatsingen bovendien langdurig zichtbaar, ook nadat het beveiligingsprobleem is opgelost.
De migratie zelf kan extra koppelingen in je digitale voetafdruk veroorzaken. Grote samenvoegingen van adressen laten relaties zien. Veiligheid gaat voor privacy, maar gevorderde gebruikers kunnen bij het herstel rekening houden met coin control, testtransacties en het vermijden van onnodige adresconsolidatie.
Wat kun je nu doen?
- Controleer de officiële statuspagina. Gebruik model, firmwareversie en moment van seedgeneratie om vast te stellen welke instructie geldt. Vertrouw niet op losse berichten op sociale media.
- Verifieer firmware vóór seedgeneratie. Download via het officiële kanaal en controleer de handtekening of hash volgens de handleiding van de fabrikant.
- Maak een nieuwe seed. Gebruik de gerepareerde firmware of een andere aantoonbaar veilige omgeving. Een extra passphrase boven op een zwakke seed is geen universele reparatie.
- Test en verplaats. Stuur eerst een klein bedrag, controleer herstel en ontvangst, en verplaats daarna de resterende fondsen. Blijf het oude adres monitoren.
Voor de techneuten
COLDCARD was ontworpen om voor seedgeneratie de hardware-TRNG te gebruiken. Door een build- en linkintegratiefout resolveerde rng_get() na een migratie naar MicroPython’s algemene Yasmarang-PRNG. De aanwezigheid van die PRNG was op zichzelf normaal; het onverwachte gebruik in het beveiligingskritieke seedpad was de fout.
Een lage of reconstrueerbare interne toestand kan de effectieve seedruimte drastisch verkleinen. Aanvallers hoeven het apparaat dan niet te benaderen: ze genereren kandidaatseeds, leiden BIP32-adressen af en vergelijken die met openbare blockchaininformatie. De ernst verschilt volgens de fabrikant per model en release.
Technisch uitgewerkte oplossing
- Volg de vaste releasematrix. Installeer uitsluitend een versie die de actuele security-statuspagina als veilig voor nieuwe seedgeneratie noemt. Behandel oudere advisories niet als actuele bron.
- Verifieer het seedpad end-to-end. Test in de uiteindelijke firmwarebinary welke symbolen en entropyproviders werkelijk worden aangeroepen. Unit tests van de hardwaredriver alleen zijn onvoldoende.
- Mix onafhankelijke entropiebronnen. Combineer hardwarematige willekeur met correct verwerkte gebruikersentropie of een tweede bron, zonder stille fallback. Documenteer precies wanneer een bron ontbreekt.
- Maak falen zichtbaar. Seedgeneratie moet stoppen wanneer de vereiste TRNG niet beschikbaar of niet gezond is. Voeg health checks, build assertions en reproduceerbare symbol-audits toe.
- Migreer op chain. Genereer een nieuw walletroot, verifieer ontvangstadressen op het vertrouwde scherm, test herstel en voer vervolgens onder gecontroleerde fee- en privacyvoorwaarden de transacties uit.
De belangrijkste acties
- Controleer model, firmwareversie en moment waarop je seed is aangemaakt tegen de actuele advisory.
- Installeer en verifieer vaste firmware voordat je een vervangende seed maakt.
- Test het nieuwe adres met een klein bedrag en verplaats daarna de resterende middelen.
Wat weten we nog niet?
- De volledige model- en slachtofferverdeling van de gestolen middelen.
- Of alle nog actieve zwakke seeds door gebruikers worden gemigreerd.
- Welke aanvullende onafhankelijke audits de gerepareerde build- en seedpaden zullen bevestigen.
Bronnen
Dit artikel is een onafhankelijke Nederlandstalige duiding van de genoemde bronnen.