Kunnen Air-Gapped Bitcoin Hardware Wallets Toch Je Seed Lekken?

De Verontrustende Hacker News-discussie Die Bitcoiners Opschudde

air-gapped hardware wallet leak

Je dacht dat je air-gapped hardware wallet zo veilig was als een fort. Geen wifi. Geen bluetooth. Geen USB-verbinding met het internet. Alleen jij, je apparaat en de Bitcoin-blockchain.

Toen plaatste een Hacker News-gebruiker met de naam JonathanBeuys in juli 2022 een bericht dat veel stof deed opwaaien. Zijn thread met de titel “Tell HN: It looks like even air gapped Bitcoin hardware wallets can phone home” kreeg 69 upvotes en 52 reacties en ontketende een discussie die de self-custody-gemeenschap ongemerkt flink aan het denken zette.

De centrale vraag?

Kan Bitcoin écht op een trustless manier worden gebruikt? Kun je je Bitcoin volledig zelf beheren zonder een bevoorrechte partij te hoeven vertrouwen dat zij je vermogen niet afpakt?

De discussie bracht een ongemakkelijke waarheid aan het licht.

Het Verborgen Gevaar Achter Elke Handtekening

De cryptografische basis van dit probleem begint bij een technisch detail waar de meeste gebruikers nooit over nadenken: ECDSA-handtekeningen zijn niet-deterministisch.

Voor een specifieke transactie en private key bestaan er astronomisch veel mathematisch geldige handtekeningen. Je wallet kan handtekening A genereren, of B, of C. Allemaal geldig. Allemaal geaccepteerd door het Bitcoin-netwerk. Maar subtiel verschillend.

Een kwaadaardige signer zou deze eigenschap kunnen misbruiken. Door bewust bepaalde nonce-waarden te kiezen, kan een gecompromitteerde wallet verborgen informatie coderen in die variaties van handtekeningen. Dit staat bekend als een kleptografische aanval, ook wel een covert channel genoemd.

En hier wordt het echt verontrustend.

Hoe Je Wallet Kan Worden Bestolen Zonder Internetverbinding

Omdat Bitcoin-handtekeningen openbaar op de blockchain worden gepubliceerd, kan een aanvaller die het coderingsschema kent deze verborgen informatie terughalen door simpelweg de blockchain te monitoren.

Er is geen directe netwerkverbinding nodig met het apparaat dat de transactie ondertekent.

Geen radiosignalen.

Geen verborgen wifi-verkeer.

Geen bluetooth.

Alleen de blockchain zelf.

De theoretische hoeveelheid informatie die zo kan uitlekken hangt af van het ontwerp van het covert channel. Een voorbeeld dat destijds op Hacker News werd besproken, suggereerde dat als ongeveer 10 bits per handtekening konden worden gelekt en er nog 96 bits aan entropie moesten worden achterhaald, ongeveer 10 transacties voldoende zouden kunnen zijn om genoeg informatie prijs te geven.

Dat is de theorie.

Er is geen bekende praktijkaanval tegen grote hardware wallets aangetoond, maar de mogelijkheid alleen al is behoorlijk ongemakkelijk.

RFC 6979: Een Gedeeltelijke Oplossing

Gelukkig bestaan er technische tegenmaatregelen.

RFC 6979 beschrijft een deterministische methode voor het genereren van nonces bij ECDSA-handtekeningen. De nonce wordt daarbij afgeleid door de geheime sleutel te hashen samen met het bericht dat ondertekend moet worden.

Wanneer dit correct wordt geïmplementeerd, levert hetzelfde bericht met dezelfde sleutel altijd dezelfde handtekening op binnen dezelfde implementatie.

Maar er zit een addertje onder het gras.

RFC 6979 garandeert niet dat verschillende wallets exact dezelfde handtekening produceren. Wallets kunnen aanvullende willekeur gebruiken, andere normalisaties toepassen of implementatiespecifieke verschillen bevatten.

Daardoor kun je niet zomaar aannemen dat twee verschillende wallets dezelfde output genereren, zelfs als ze allebei RFC 6979 ondersteunen.

Een eenvoudige vergelijking tussen apparaten is dus geen sluitende verificatiemethode.

Taproot en BIP 340 Schnorr-handtekeningen

Sinds de activering van Taproot (BIP 341) in november 2021 ondersteunt Bitcoin ook BIP 340 Schnorr-handtekeningen.

Dat voegt een extra laag toe aan deze discussie.

BIP 340 gebruikt een zogenaamde synthetische nonce-afleiding. De nonce wordt berekend uit een hash van de private key, de public key en het bericht dat moet worden ondertekend, gecombineerd met aanvullende willekeur.

Daarnaast schrijft de BIP 340-specificatie voor dat de gegenereerde handtekening eerst wordt gecontroleerd voordat deze wordt teruggegeven. Dat helpt voorkomen dat ongeldige handtekeningen worden gepubliceerd die mogelijk informatie lekken.

Maar hier komt opnieuw de realiteit om de hoek kijken.

Het Vertrouwensprobleem van Implementaties

Zelfs met deterministische of synthetische nonce-schema’s moet je nog steeds vertrouwen op de software die de specificatie implementeert.

Een kwaadaardige implementatie kan de regels eenvoudig omzeilen of vervalsen.

De code kan beweren RFC 6979 te gebruiken terwijl er achter de schermen iets totaal anders gebeurt.

Je air gap helpt niet als het apparaat zelf de dreiging vormt.

Anti-Klepto en Anti-Exfil Protocolen: Je Beste Verdediging

Om dit soort risico’s te beperken zijn anti-klepto- en anti-exfil-protocollen ontwikkeld.

Deze protocollen werken doordat de hostcomputer willekeurige entropie aanlevert die cryptografisch wordt verwerkt in het genereren van de nonce.

Bij een anti-exfil-protocol committeert de wallet zich eerst aan deze door de host aangeleverde uitdaging voordat de handtekening wordt gemaakt.

Daardoor wordt de vrijheid van de wallet om willekeurige nonce-waarden te kiezen sterk beperkt, waardoor het veel moeilijker wordt om verborgen informatie in handtekeningen te verwerken.

Hardware wallets die dergelijke bescherming ondersteunen zijn onder andere:

Gebruik je één enkele hardware wallet? Controleer dan of anti-exfil- of anti-klepto-bescherming beschikbaar is én daadwerkelijk is ingeschakeld.

Multisig: Vertrouwen Verdelen

Er bestaat ook een praktische oplossing waarbij je niet afhankelijk bent van één enkel apparaat.

Met multisignature-opstellingen (multisig) verdeel je het vertrouwen over meerdere sleutels of apparaten.

In een m-of-n multisig-configuratie zijn er minimaal m handtekeningen nodig van in totaal n mogelijke sleutels.

Een 2-uit-3 multisig-opstelling met drie onafhankelijke hardware wallets van verschillende fabrikanten elimineert een single point of failure.

Zelfs als één wallet kwaadaardig of gecompromitteerd is, kan deze je Bitcoin niet zelfstandig uitgeven.

Geen enkele afzonderlijke handtekening is voldoende om een transactie goed te keuren.

Een covert channel in één apparaat wordt daardoor vrijwel nutteloos, omdat de andere apparaten zouden moeten meewerken.

Andere Verdedigingslagen

Naast protocolbescherming en multisig bestaan er nog meer maatregelen die je beveiliging kunnen versterken.

Reproducible Builds

Met reproducible builds kun je firmware zelf compileren vanuit de broncode en controleren of het resultaat exact overeenkomt met de officieel verspreide software.

Dit bewijst dat de gedistribueerde software overeenkomt met de gepubliceerde broncode.

Het beschermt echter niet tegen kwaadaardige broncode of gecompromitteerde hardware.

Bovendien voeren maar weinig gebruikers deze verificatie daadwerkelijk uit.

Seed Phrases Genereren Met Dobbelstenen

Door je seed phrase te genereren met fysieke dobbelstenen ben je niet afhankelijk van de willekeurige nummergenerator van je hardware wallet.

De entropie ontstaat voordat de wallet er ooit toegang toe heeft.

Hiermee elimineer je een mogelijke aanvalsvector tijdens het aanmaakproces.

Tamper-Evident Verpakkingen

Verpakkingen die manipulatie zichtbaar maken kunnen helpen bij het ontdekken van supply-chain-aanvallen.

Ze beschermen echter niet tegen firmware-aanvallen die onzichtbaar blijven tijdens een fysieke inspectie.

Handtekeningen Vergelijken Tussen Wallets

Theoretisch kun je handtekeningen vergelijken tussen verschillende wallets.

In de praktijk is dit voor de meeste gebruikers geen haalbare workflow.

Het vergelijken van ruwe handtekeningen vereist technische expertise en wordt niet ondersteund door standaard walletsoftware.

Wat Je In De Praktijk Moet Doen

Voor de meeste gebruikers zijn de verstandigste maatregelen verrassend eenvoudig.

Gebruik een hardware wallet die anti-exfil-bescherming ondersteunt.

Of kies voor een multisig-opstelling met meerdere onafhankelijke hardware wallets.

Vertrouw je op één apparaat? Begrijp dan precies welke aannames je maakt. Lees de documentatie. Controleer welke beveiligingsmaatregelen worden ondersteund. En bepaal of jouw dreigingsmodel de extra complexiteit van multisig rechtvaardigt.

Een air gap is waardevol.

Maar het is geen magisch schild tegen iedere denkbare aanval.

De Conclusie

De Hacker News-discussie van JonathanBeuys uit juli 2022 legde een fundamentele spanning bloot binnen Bitcoin self-custody.

De schakel tussen jouw private keys en de publieke blockchain—de digitale handtekening zelf—kan theoretisch worden misbruikt om informatie te lekken.

De cryptografie om dit te voorkomen bestaat al.

RFC 6979.

BIP 340 Schnorr.

Anti-exfil-protocollen.

Ze bieden allemaal hulpmiddelen om deze verborgen communicatiekanalen af te sluiten.

Maar hulpmiddelen werken alleen wanneer ze correct worden gebruikt.

Controleer je beveiligingsmaatregelen. Overweeg multisig als de omvang van je Bitcoinbezit dat rechtvaardigt. En onthoud dat het minimaliseren van vertrouwen geen eindbestemming is, maar een voortdurend proces.

Je hardware wallet mag dan air-gapped zijn van het internet, maar zorg ervoor dat hij geen geheimen voor jou verborgen houdt.

Plaats een reactie