Hoe maak je een hardwarewallet nog veiliger?

Hoe maak je een hardwarewallet nog veiliger?

Met een extra wachtwoordzin of passphrase

Hardwarewallets zijn voor de meeste gebruikers de veiligste manier om de toegang tot hun cryptovaluta veilig te houden. Ondanks dat dit een zeer veilige manier van bewaren is, zit er een klein addertje onder het gras: de seed.

De seed bestaat uit 12 of 24 woorden die je op moet schrijven bij het instellen van een hardwarewallet. Het advies is deze niet digitaal op te slaan, maar op een stuk papier. Eventueel kun je het papier lamineren om te beschermen tegen waterschade. Vervolgens stop je het papier op een veilige plaats weg en verstop je een kopie van het papier elders. Dat laatste is belangrijk omdat je nooit weet wat er met je eigen huis gebeurt. Een brand kan bijvoorbeeld aardig wat roet in het eten gooien.

Foto van Seed phrase-pagina Bitcoin Wiki (woorden werken niet)

Maar dit systeem heeft één nadeel: als iemand ergens een stuk papier met 12 woorden vindt, weet deze persoon vermoedelijk vrij snel dat deze woorden de toegang kunnen verschaffen tot cryptovaluta. Dan ben je de klos. Om dit te voorkomen, kun je enkele woorden toevoegen aan deze seed die je niet op dezelfde plek bewaart. Op die manier kan iemand niets met die 12 woorden alleen. Je kunt de extra wachtwoordzin bijvoorbeeld bij iemand anders fysiek opslaan, maar deze kun je eventueel in een wachtwoordmanager zetten. Afhankelijk van hoeveel extra veiligheid je nodig denkt te hebben.

Deze extra wachtwoordzin verlengt in feite je seed. Dus in plaats van

witch collapse practice feed shame open despair creek road again ice least 

heb je

witch collapse practice feed shame open despair creek road again ice least extra zinnetje woorden

als seed. Op de bip39-website van Ian Coleman kun je mooi zien wat voor verschil dat maakt: https://iancoleman.io/bip39/

Het instellen van zo’n extra wachtwoord is niet heel moeilijk, maar verschilt per hardwarewallet.

Check de website van je hardwarewalletbouwer om te kijken hoe dat precies werkt! (Trezor of Ledger bijvoorbeeld).

En test je setup voordat je er daadwerkelijk fondsen naartoe stuurt, zodat je zeker weet dat je geen fouten gemaakt hebt. Dit betekent dat je de hardwarewallet helemaal reset naar fabrieksinstellingen en test of je alles goed gedaan hebt (uiteraard voordat je er cryptovaluta naartoe hebt gestuurd).

Vergeet ook niet de mensen die toegang hebben tot je seed te vertellen dat ze nog een stukje nodig hebben. Hoe ze daarbij moeten komen in geval van calamiteiten, daar moet je zelf maar over nadenken.

Wat doet zo’n extra stukje seed nou eigenlijk?

Zoals ik al eerder schreef, maakt het je seed een stukje langer. Seeds bestaan uit specifieke woorden uit bepaalde woordenlijsten, andere woorden kun je daar niet voor gebruiken. De seed phrase kan uit eigen woorden bestaan. Als je nu in die bip39-generator kijkt en je vult willekeurig 12 woorden in uit de Engelse woordenlijst die gebruikt wordt voor de bip39-seed, dan krijg je bitcoinadressen te zien aan het eind van de pagina. Als je ook maar 1 letter toevoegt aan het passphrase-invulveld, dan zie je dat alles verandert, dus de bitcoinadressen én de geheime sleutels.

Ik maakte er ook een korte video over:

Cryptovaluta voor dummies – addendum p. 120

Cryptovaluta voor dummies – addendum p. 120

Of: wijzigingen sinds het boek verscheen

Een boek schrijven is een tijdrovende bezigheid en vervolgens komt het uit op papier (23 november 2018). Dat is op zich niet erg, maar als je over dingen schrijft die met internet te maken hebben, dan loop je snel achter. Het grootste deel van mijn boek ‘Cryptovaluta voor dummies‘ is voor langere tijd ‘houdbaar’, maar dat geldt niet voor alles. Hier volgt een lijst met pagina’s waar zaken inmiddels door de tijd zijn ingehaald (op dit moment 1 pagina):

  • Pagina 120: “Publieke HD-sleutels vinden in Ledger Wallet Bitcoin“. Hier staat dat je met je Ledger Nano S een Legacy-account moet gebruiken (bitcoin-adressen die beginnen met een 1), maar sinds 10 december 2018 is de wallet waarmee we dit uitvoeren (Mycelium, Play Store / App Store) volledig compatibel met SegWit. Ook is het niet meer aan te raden daarvoor de – inmiddels ook legacy – Chrome Ledger-app te gebruiken. Hieronder volgt een nieuwe, betere en veiligere manier:

Publieke HD-sleutels vinden van je hardware-wallet en die importeren in een watch-only-mobiele wallet

De nieuwe titel is mogelijk verwarrend voor niet-bezitters van het boek zelf, maar het komt hierop neer: je kunt de zogenaamde extended public key van bitcoin-wallets (en vergelijkbare munten) gebruiken om op je mobiele telefoon een watch-only-wallet te maken. Dit houdt in dat je nieuwe bitcoinadressen op je telefoon kunt genereren voor je hardwarewallet zonder je deze wallet bij je hoeft te hebben en hier toch nieuwe adressen voor kunt maken (niet verplicht, maar wel verstandig om te doen).

De meeste hardwarewallets werken ook samen met Electrum, de de-facto, open source light-wallet. We gebruiken daarom nu niet de meegeleverde applicatie van de hardwarewallet (Ledger, Trezor, etc.), maar Electrum.

In Electrum gaan we drie verschillende extended public keys exporteren en gebruiken in Mycelium. Namelijk: xpub, ypub en zpub. De eerste, xpub, is de oudste ‘versie’ (BIP32) en is bedoeld voor bitcoinadressen die beginnen met een ‘1’. De tweede is een achterwaarts compatibel (lees: wallets die alleen BIP32 ondersteunen kunnen er ook naartoe sturen) SegWit-formaat. Adressen gegenereerd vanuit ypub beginnen met een ‘3’ en vallen onder BIP49. Dan is er nog zpub en dat is niet achterwaarts compatibel. Die adressen beginnen met ‘bc1’. De adoptie van dit formaat kwam langzaam op gang, maar inmiddels ondersteunen de meeste moderne wallets het.

Electrum xpub exporteren:

  • Start Electrum (als je al een keer een Electrum-wallet aangemaakt hebt, moet je die eerst openen)
  • Maak een nieuwe wallet aan en noem deze XPUB en kies Volgende/Next
  • Kies de bovenste wallet (Standard wallet), Volgende/Next
  • Kies ‘Gebruik een hardwarewallet / Use a hardware device’, Volgende/Next
  • Ontgrendel je hardwarewallet en selecteer de Bitcoin-wallet op de hardwarewallet
  • In Electrum staat iets als: Hardware Keystore en staat één apparaat geselecteerd, kies Volgende/Next (als het niet lukt, ga twee stappen terug naar waar je de Standard Wallet aanmaakte, daarna weer Volgende: kies HW-device/Volgende
  • Script type and Derivation path kies daar ‘legacy (p2pkh)’ en laat het pad met m/44’/0’/0′ ongewijzigd, Volgende/Next
  • Encrypt wallet file is alleen om het lokale bestand op je harde schijf te beveiligen, dit heeft niets te maken met je ledger zelf. Gebruikt het gewoon maar.
  • Electrum genereert een wallet die je alleen met je hardwarewallet kunt ontgrendelen. Je kunt géén geheime sleutels van je hardwarewallet vinden via Electrum.
  • Navigeer naar Wallet –> Information. Er verschijnt een popup met je Master Public Key.
  • Klik rechtsonder vlak boven ‘Close’ op het QR-code-tekentje en de QR-code van je master public key verschijnt
  • Open Mycelium op je mobiele telefoon en ga naar het tabblad Rekeningen/Accounts
  • Klik op het sleutelicoontje met een + ernaast
  • Scroll naar beneden en selecteer Geadvanceerd (sic)/Advanced (voer evt. je pincode in)
  • Selecteer ‘Scan’ en scan de XPUB-sleutel van Electrum
  • Mycelium voegt automatisch het nieuwe account toe

Dit werkt exact hetzelfde voor de ypub en de zpub.

Waarschuwing: vanuit sommige software wordt bij SegWit (beginnend met een ‘3’ of ‘bc1’) in plaats van een ypub een xpub gegenereerd. Dit kan en is technisch geen probleem, maar je kunt de fondsen niet verplaatsen vanuit je mobiele wallet omdat je daar geen geheime sleutels van hebt. Als je denkt slim te zijn en de bij een SegWit-account gegenereerde xpub te kopiëren en te plakken in Electrum heeft het alsnog geen zin: je kunt je fondsen zien, maar je hardwarewallet is niet gekoppeld en dus kun je geen transactie ondertekenen. Om dit te regelen, moet je de geheime sleutels van je publieke sleutels zien te vinden en dat leg ik op Stack Exchange uit.

Nu heb je op je Mycelium-wallet de mogelijkheid Bitcoins te ontvangen zonder dat je die daarmee direct kunt uitgeven. Je kunt ook mooi bijhouden hoeveel Bitcoins je hebt staan op je hardwarewallet.

Hoe geef je deze Bitcoins dan weer uit? Heel simpel: door de software van je hardwarewallet te gebruiken of door je Electrum-wallet te ontgrendelen met je hardwarewallet.

Wanneer gebruik je dit niet? Als je dit doet, betekent het wel dat al je fondsen die aan het specifiek x-, y- of zpub-adres van je hardwarewallet gekoppeld zijn, ook zichtbaar zijn. Stel je hebt een hardwarewallet waar heel veel geld op staat, wil je dat misschien niet voor iedereen zichtbaar hebben (stel je kijkt even snel in de kroeg naar je wallet). Dit staat dan vermoedelijk op je legacy (xpub) of SegWit (ypub) account.

Maak één specifiek account aan dat je aan je mobiel koppelt want dan ontvang je wel cryptovaluta op je hardwarewallet, maar niet op je belangrijkste account. Mocht iemand ooit je telefoon te pakken krijgen en toch op de een of andere manier je publieke x-, y- of zpub weet te kopiëren, dan kan deze persoon alleen kleine transacties zien (met je publieke master keys kun je alle publieke adressen inzien die aan een master key gekoppeld zijn, dus ook alle transacties).

  • Nog niets. Kom je iets tegen? Laat het me weten via Twitter.