Hoe bewaar je veilig je cryptocurrency?

Ledger Nano S hardware cryptocurrency wallet

In het verleden schreef ik al artikelen over hoe je een Bitcoin of Ethereum Wallet kon aanmaken, zodat je je bitcoins en ethers kon bewaren, overmaken en ontvangen. Deze wallets zijn gebaseerd op het principe dat je moet inloggen met je private sleutel. Zonder deze sleutel krijg je geen toegang tot je wallet. Het is dus belangrijk dat je de sleutel goed bewaart. Sleutel weg = centjes weg!

Daarmee komen we bij de volgende uitdaging: waar bewaar je je sleutel? Op je computer bewaren is een mogelijkheid, maar als je harddisk crasht of je loopt een virus op, dan heb je een probleem. Als derden onbedoeld toegang krijgen tot je computer kunnen ze je sleutel stelen en daarmee je hele wallet plunderen. Een andere mogelijkheid is om de sleutel te printen. Het wordt dan wel lastig als je steeds je hele sleutel moet overtypen om toegang tot je wallet te krijgen en er zijn gevaren zoals woninginbraak of brand.

Ik heb eens wat rond gezocht op het internet en heb een oplossing gevonden: een hardware wallet. In deze hardware wallet worden de benodigde gegevens opgeslagen.

De hardware wallet die ik heb gekocht is de Ledger Nano S. Dit apparaatje sluit je op je computer aan via USB om toegang te verkrijgen tot je cryptocurrency wallets en transacties te verrichten. De installatie is erg eenvoudig. In de bijgeleverde handleiding wordt je verwezen naar een website waar het hele installatieproces stap voor stap uitgelegd wordt. Het kostte mij een klein half uurtje om het installatieproces te voltooien. Tijdens het installatieproces krijg je een serie woorden die je in de juiste volgorde moet noteren. Deze vormen een backup voor als je de Ledger Nano S verliest en je een nieuw exemplaar wilt gebruiken.

screenshot ledger wallet ethereum

Om de Ledger Nano S te gebruiken, dien je één of meerdere Chrome-apps te downloaden en te installeren, afhankelijk van het aantal cryptocurrencies dat je wilt gebruiken. Je dient dus de Chrome-browser op je computer geïnstalleerd te hebben. De apps werken alleen wanneer de Ledger Nano S via USB is aangesloten en ontgrendeld is met de pincode.

De ondersteuning voor smartphones heb ik nog niet kunnen testen, maar duidelijk is wel dat je de Ledger Nano S niet aan kunt sluiten op een iPhone vanwege het gebrek aan een USB-poort op dit apparaat. Op zich is dit geen probleem omdat ik over meerdere hardware pallets beschik. De pallets waar ik grote bedragen in stop beveilig ik met mijn Ledger Nano S. Vervolgens kan ik vanuit die wallets overboeken naar andere pallets van waaruit ik naar derden overmaak. Zie het maar als een spaarrekening en een betaalrekening.

In tegenstelling tot traditionele currencies maak je geen gebruik van banken. Dit is natuurlijk een enorm pluspunt, maar je bent zelf verantwoordelijk voor een goede beveiliging van de toegang tot je wallet. Er is immers geen bank die je een e-dentifier of random reader levert. Een hardware wallet is een prima oplossing en zorgt er voor dat je bitcoins, ethers, ripple en andere coins veilig zijn. Eigenlijk is het een must voor iedereen die ook maar een beetje serieus is met cryptocurrency.

De Ledger Nano S kost €69,60 en is hier te bestellen.

Veilig omgaan met wachtwoorden

password manager

Tegenwoordig heb je zo’n beetje voor alles een wachtwoord nodig. Het is daarom verleidelijk om steeds hetzelfde wachtwoord voor alles te gebruiken. Hierdoor hoef je maar één wachtwoord te onthouden. Het is echter zéér onverstandig!

Vooral wanneer je je wachtwoord op internet gebruikt, bijvoorbeeld bij een webshop, bij een social media account of een andere webdienst, wordt je wachtwoord op een server opgeslagen en je weet niet op dit veilig gebeurt. Vooral wanneer je wachtwoord in combinatie met je e-mailadres wordt opgeslagen is het voor hackers een koud kunstje om, wanneer de betreffende server gehackt wordt, je gegevens te gebruiken op verschillende andere locaties op het web. Bijvoorbeeld: de webshop waar je onlangs besteld hebt wordt gehackt. Met dezelfde gegevens kunnen hackers dan bevoordeeld toegang verkrijgen tot je LinkedIn-account of andere webshop-accounts die je hebt. Dit kan heel vervelende gevolgen hebben.

Een oplossing is om steeds voor elke account een nieuw wachtwoord te gebruiken, maar dat is natuurlijk onmogelijk om allemaal te onthouden. Daarom is het verstandig om een password-manager te gebruiken. Dit is een stukje software dat alle wachtwoorden voor je onthoudt. Om toegang te verkrijgen tot de wachtwoorden gebruik je dan één wachtwoord; een soort hoofdwachtwoord.

Standaard aanwezig op je Apple device

Gebruik je een Apple device, zoals een MacBook of een iPhone, dan beschik je al over een Sleutelhanger. Deze software zit standaard in MacOS en iOS. Alle wachtwoorden worden in de sleutelhanger opgeslagen, zoals wachtwoorden voor websites, maar ook voor bijvoorbeeld WiFi-verbindingen. Als je iCloud gebruikt, dan wordt de gehele sleutelhanger gecodeerd opgeslagen in iCloud en daarmee gesynchroniseerd op al je devices. Wanneer je ergens een nieuwe account aanmaakt, bijvoorbeeld in een webshop, en je wordt gevraagd een wachtwoord te kiezen, dan biedt Safari je de mogelijkheid om een (willekeurig) wachtwoord te laten kiezen door de Sleutelhanger-applicatie.


Wanneer je dit doet op je MacBook, dan wordt het willekeurig gekozen wachtwoord automatische gesynchroniseerd naar je iPhone of iPad. Het enige dat je dus hoeft te onthouden is de login-gegevens van je iCloud account.

1Password

Gebruik je Windows of Android? Dan is er een soortgelijke applicatie beschikbaar: 1Password. Je kunt deze applicatie een tijdje gratis proberen en ben je tevreden, dan kun je er voor kiezen om na de proefperiode een betaald abonnement te nemen voor zo’n €2,50 per maand. Omdat deze applicatie beschikbaar is voor Windows, MacOS, iOS en Android kun je je wachtwoorden dan ook tussen al je apparaten synchroniseren. Ook is er een handige browser-plugin te downloaden.

LastPass

Deze applicatie werkt net zoals 1Password op Windows, MacOS, iOS en Android, maar is voor een enkele gebruiker gratis te gebruiken.

Daarnaast heb je de mogelijkheid om een Premium account te nemen voor het zo’n €1,70 per maand. Je krijgt dan extra features zoals op Windows-machines de mogelijkheid om ook wachtwoorden voor applicaties buiten je browser te gebruiken.

Bovenstaande oplossingen zorgen ervoor dat je wachtwoorden veilig en gecodeerd in de cloud worden opgeslagen. Hierdoor hoef je je niet druk te maken wanneer je een nieuwe apparaat wilt gebruiken. Je hoeft zelf dus geen backup van de wachtwoorden te maken.

Regelmatig zie ik nog mensen een boekje bij hun computer bewaren waarin ze alle wachtwoorden opschrijven. Dit is ongeveer hetzelfde als een briefje in je portemonnee met daarop je pincode! Als je denkt dat het vervelend is wanneer er bij je ingebroken wordt, wacht dan maar eens af hoe vervelend het wordt wanneer de inbrekers ook nog eens al je login-gegevens meenemen! Het is 2017…. verbrand dat boekje en ga een password manager gebruiken!



Inloggen zonder wachtwoord met een sleutel

network security

Om een beveiligde verbinding op te zetten naar een andere computer op het internet wordt vaak SSH (Secure Shell) gebruikt. Hetzelfde protocol wordt door SFTP (Secure File Transfer Protocol), de veilige variant van FTP.

Je logt in met een SSH- of SFTP-client door middel van een gebruikersnaam en wachtwoord. Hoewel steeds meer mensen een veilig wachtwoord gebruiken is het nog steeds mogelijk om middels een “brute force” attack wachtwoorden te achterhalen. Daarnaast gebruiken veel mensen hetzelfde wachtwoord op verschillende plekken. Op zich is dit niet vreemd, omdat het lastig is om veel wachtwoorden te onthouden, maar erg verstandig is het niet. Je hebt immers geen zicht op hoe bijvoorbeeld een webshop jouw wachtwoord bewaart. Mocht die webshop gehackt worden en daarmee jouw wachtwoord, dan is het niet ondenkbaar dat men met die wachtwoord ook toegang probeert te verkrijgen tot je e-mail, social media account en nog veel meer.

Een veiligere manier om in te loggen is met een authenticatiesleutel. Deze inlogmethode is gebaseerd op asymmetrische cryptografie en bestaat uit een private en een publieke sleutel. De private sleutel staat op je eigen computer en de publieke sleutel staat op het systeem waarop je inlogt. In plaats van een wachtwoord in te voeren, log je enkel in met je gebruikersnaam. De computer waarop je inlogt, kent je publieke sleutel en en stuurt je een challenge. Jouw computer bewerkt deze vervolgens met je private sleutel en stuurt deze terug. De computer waarop je inlogt, kan je vervolgens authenticeren.

Dit biedt twee voordelen: je hoeft geen wachtwoord meer in te voeren en de sleutel zijn véél complexer dan een wachtwoord, waardoor het nagenoeg onmogelijk is om deze te kraken.

Als je werkt op Linux of een Mac, dan is het heel eenvoudig om een private en een publieke sleutel aan te maken met het volgende commando:

ssh-keygen -t rsa

Je wordt nu gevraagd waar je de sleutel op wilt slaan. Er wordt standaard een locatie in je home directory aangegeven. Als je op enter drukt zal deze locatie gebruikt worden. Wil je liever een andere locatie gebruiken dan kun je deze nu opgeven.

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Vervolgens wordt er gevraagd om een wachtwoord waarmee je private sleutel beveiligd wordt:

Enter passphrase (empty for no passphrase):

Hoewel je een leeg wachtwoord kunt geven (dus geen wachtwoord zet op je sleutel) is het aan te raden om altijd een wachtwoord op je private sleutel te zetten. Voer nu je wachtwoord nogmaals in te verificatie.

Je private en publieke sleutel zijn nu aangemaakt. Ze zijn beide te vinden in ~/.ssh

Tot slot kopieer je je publieke sleutel naar de machine waarop je wilt inloggen:

ssh-copy-id <gebruikersnaam>@<hostname.van.je.machine>

Bij dit proces wordt je wachtwoord gevraagd. Dit is de laatste keer dat je het in hoeft te voeren voor deze machine. Wel moet je nog even je private sleutel toevoegen aan je SSH agent:

ssh-add -K ~/.ssh/id_rsa

Om de sleutel toe te voegen moet je éénmaal je wachtwoord invoeren.

That’s it! Vanaf nu kun je inloggen zonder dat je wachtwoord hoeft in te voeren. Inloggen met SSH-sleutel wordt ook gebruikt door bijvoorbeeld GitHub en Digital Ocean.



Je huis op afstand bedienen

In het artikel Je huis besturen via domotica met open-source software hebben we de basis gelegd voor domotica in je huis. Hierdoor werd het mogelijk om je Nest uit te lezen en om ZWave devices in- en uit te schakelen via je computer. Op zich leuk, maar nog niet erg praktisch. Het zou veel handiger zijn om bijvoorbeeld je verlichting vanaf je smartphone te schakelen.

Om dit te doen moeten we op de smartphone eerst verbinding maken met de Domoticz-server (dus met je Raspberry Pi). Dit doe je eenvoudig door hetzelfde adres dat je op je computer invulde, nu in te vullen in de browser van je smartphone. De webinterface van Domoticz is responsive, wat zoveel betekent dat de weergave wordt aangepast aan je smartphone, zodat je niet met minuscule knopjes hoeft te werken.

In ons voorbeeld had de Raspberry Pi het IP-adres 192.168.1.5 gekregen. Het adres dat we invoeren in de browser op onze smartphone is dan:

http://192.168.1.5:8080

Je ziet nu de webinterface van Domoticz en je kunt meteen aan de slag, zolang je smartphone via wifi verbonden is met hetzelfde netwerk als de Raspberry Pi, wat het geval is bij de meeste thuisnetwerken.

Dit is al een stuk beter dan steeds achter je computer te moeten kruipen om je verlichting te bedienen, maar het zou nog veel handiger zijn wanneer je je verlichting kunt bedienen wanneer je niet thuis bent. Via het internet kun je verbinding maken met je Domoticz-server, maar dan wordt beveiliging wel een belangrijk onderwerp. De verbinding die we tot nu toe gebruikten is niet beveiligd en zou op het internet onderschept kunnen worden. Daarnaast moeten we Domoticz beveiligen met een wachtwoord, want anders kan iedereen op afstand jouw verlichting kunnen bedienen.

Gelukkig is het eenvoudig om een beveiligde verbinding te maken met Domoticz. In plaats van het adres http://192.168.1.5:8080 te gebruiken, surf je naar https://192.168.1.5. Je browser zal een waarschuwing geven, maar deze kun je in dit geval negeren en gewoon doorgaan. De foutmelding wordt weergegeven omdat de beveiligde verbinding gebruik maakt van een zelf ondertekend certificaat. Dit is standaard aanwezig in Domoticz, maar het certificaat is niet ondertekend door een instantie die je browser vertrouwd. Het certificaat beveiligd je verbinding overigens wél.

Het is ook mogelijk om een certificaat te verkrijgen dat je browser wel vertrouwd, maar hiervoor heb je de technische kennis nodig en er zijn mogelijk ook kosten aan verbonden. Hieraan zal ik op een later tijdstip een artikel wijden. Vooralsnog gaan we het zelf-ondertekende certificaat gebruiken.

Om via het internet verbinding te kunnen maken, moeten we het volgende uitvoeren:

  • Om te beginnen hebben we het externe IP-adres van je router nodig. Het IP-adres dat we tot nu toe gebruikten is een intern IP-adres en is alleen te bereiken op je eigen thuisnetwerk. Om je externe IP-adres te achterhalen, kun je eenvoudig surfen naar www.watismijnip.nl. Op deze website kun je eenvoudig zien wat je externe IP-adres is.
  • Vervolgens moeten we je router instellen om inkomend verkeer om te leiden naar je Raspberry Pi. Dit wordt port-forwarding genoemd. Het verkeer dat we verwachten zal binnenkomen op poort 443 en zal omgeleid moeten worden naar 192.168.1.5 op poort 8080. (vervang dit laatste IP-adres door het adres van jouw Raspberry Pi) Het gebruikte protocol is TCP. De manier waarop je port-forwarding instelt op jouw router is geheel afhankelijk van het merk en type van het apparaat.
    Raadpleeg de handleiding van je router om uit te vinden hoe je port-forwarding instelt. Gebruik je de router van je provider, dan hebben de meeste providers wel een (kleine) handleiding over port-forwarding voor de door hen geleverde router. Dit zijn enkele links om je op weg te helpen:

    • Ziggo Connect Box
    • KPN Experia Box
      Mocht je een goede handleiding hebben voor port-forwarding voor de router van jouw provider? Stuur mij dan even de link, dan zetten we hem erbij…
  • De port-forwarding schematisch weergegeven:
    INTERNET-> <Jouw extern IP-adres> <poort 443> -><ROUTER> -> <Raspberry PI> <poort 443>

Als je de port-forwarding succesvol hebt ingesteld, surf je naar http://jouw-externe-ip-adres. Je krijgt dan de webinterface van Domoticz te zien.

Verboden toegang voor onbevoegden

Om te voorkomen dat iedereen zomaar je huis kan bedienen, brengen we nog een beveiliging aan door middel van een gebruikersnaam en wachtwoord. Ga hiervoor in Domoticz naar Instellingen en vervolgens weer naar Instellingen. Aan de rechterzijde vul je onder Websitebeveiliging een gewenste gebruikersnaam en wachtwoord in. Als Authenticatie kun je kiezen voor Basic-Auth.

De volgende keer dat je verbinding maakt middels de browser op je smartphone of computer, zal je eerst om je gebruikersnaam en wachtwoord gevraagd worden.