ID.nl logo
Zo gebruik je een docker op je Raspberry Pi
© Reshift Digital
Huis

Zo gebruik je een docker op je Raspberry Pi

Een Raspberry Pi is ideaal om allerlei programma’s op te installeren die altijd moeten draaien. De betrouwbaarste manier om dat te doen, is met Docker: zo draait elk programma geïsoleerd in een container, waardoor ze elkaar niet kunnen hinderen. We laten zien hoe je Docker op een Raspberry Pi gebruikt en waarop je zoal dient te letten.

Als je al even een Raspberry Pi in huis hebt, is de kans groot dat je er meer en meer software op blijft installeren. Home Assistant,Zwave2Mqtt, Node-RED, Rhasspy … Dat gaat allemaal goed, tot je al je software eens naar een nieuwe versie bijwerkt, en plots een van je programma’s niet meer werkt en een vage foutmelding geeft.

Wat is er gebeurd? Een veel voorkomend scenario is het volgende. Software A en B gebruiken beide versie 1.0 van bibliotheek C. Ondertussen komt versie 2.0 van bibliotheek C uit, die incompatibel is met C 1.0. Software A wordt herschreven om van bibliotheek C 2.0 gebruik te maken, terwijl de ontwikkelaars van software B niet zo snel zijn en nog even bij bibliotheek C 1.0 blijven. Je updatet software A en daardoor wordt bibliotheek C 2.0 geïnstalleerd. Maar Raspbian kan maar één versie van een bibliotheek installeren. Daardoor werkt software B plots niet meer, want die is niet compatibel met bibliotheek C 2.0.

In de praktijk doen Linux-distributies er alles aan om dit soort situaties te vermijden, maar het gebeurt. Soms op veel subtielere manieren, zodat het niet altijd onmiddellijk duidelijk is wat de oorzaak van het probleem is.

01 Wat is Docker?

Docker maakt het eenvoudig voor ontwikkelaars om toepassingen te verspreiden zodat je die op elk Linux-systeem kunt draaien. Die toepassingen vind je in de vorm van een image op de Docker Hub. Zo’n image is in feite een sjabloon voor een minimaal Linux-systeem, dat je bovenop Raspbian kunt draaien in de vorm van een container.

Elke container is volledig geïsoleerd van andere containers. De toepassing in een container ziet dus niet de toepassingen in andere containers. En door één container te installeren en bij te werken, ben je zeker dat die nieuwe versie niet in conflict komt met toepassingen in andere containers. Als je meer dan een handvol toepassingen op je Raspberry Pi wilt draaien, helpt Docker je dus om dat op een betrouwbare manier te doen. Dankzij Docker kun je ook gerust experimenteren met nieuwe software: bevalt die je niet, dan verwijder je achteraf gewoon de container.

©PXimport

02 Installeer Docker

We gaan ervan uit dat je Raspbian hebt geïnstalleerd, de Lite-versie is voldoende. Daarna log je in via ssh om de opdrachten in deze basiscursus uit te voeren. Als eerste installeer je Docker met de opdracht:

curl -sSL https://get.docker.com | sh

Geef daarna de gebruiker pi (waarmee je ingelogd bent) toegang tot Docker, zodat je niet alle Docker-opdrachten met het commando sudo moet uitvoeren:

sudo usermod pi -aG docker

Log uit met exit en log daarna weer in. Nu behoort de gebruiker pi tot de groep docker.

©PXimport

03 Hallo wereld

Je zou nu een eerste Docker-container moeten kunnen opstarten:

docker run --rm hello-world

Met deze opdracht draai je de Docker-container hello-world. Deze container toont in zijn uitvoer wat er exact gebeurt: het image wordt niet op je Raspberry Pi gevonden en wordt dan door Docker van de Docker Hub gedownload. Daarna maakt Docker een container op basis van dit image en voert het programma erin uit. Door de optie --rm wordt de container na het afsluiten van het programma opgeruimd. Je weet nu dat Docker correct geïnstalleerd is en werkt.

©PXimport

Hypriot

We installeren in deze basiscursus eenvoudigweg Docker op Raspbian, maar er zijn ook andere besturingssystemen mogelijk als je geïnteresseerd bent in Docker op een Raspberry Pi. Zo is er Hypriot: een besturingssysteem voor de Raspberry Pi dat is geoptimaliseerd voor gebruik van Docker. Je hoeft dan alleen maar dit image op het micro-sd-kaartje van je Raspberry Pi te installeren en je kunt onmiddellijk met Docker aan de slag. Hypriot is vooral interessant als je alleen maar Docker-containers op je Raspberry Pi draait en niets anders.

04 Maak containers aan

De basis om met Docker-containers te werken, gebeurt met de opdracht docker, zoals we in de vorige stap al toonden. Meestal wil je met Docker geen container uitvoeren en onmiddellijk afsluiten, maar die laten draaien. We gebruiken dan dus niet de optie --rm. Bovendien wil je die container op de achtergrond laten draaien, zonder de uitvoer de hele tijd op het scherm te zien. Daarvoor dient de optie -d.

Als je een container op deze manier zou opstarten, geeft Docker die een willekeurige naam, wat niet handig is als je meer dan een handvol containers hebt. Met de optie --name NAAM geef je de container daarom een vaste naam.

Dan moet je ook nog kijken naar de netwerkverbindingen. Aangezien elke Docker-container geïsoleerd is, krijg je niet zomaar toegang tot bijvoorbeeld een webserver die op poort 80 draait in een container. Daarom moet je Docker opdragen om elke aanvraag op bijvoorbeeld poort 8888 op de Raspberry Pi door te sturen naar poort 80 in een specifieke container. Dat doe je met de optie -p 8888:80. Als je al deze opties samenneemt voor de voorbeeldcontainer containous/whoami, voer je de volgende opdracht uit:

docker run -d --name whoami -p 8888:80 containous/whoami

Als alles goed gaat, krijg je na een tijdje een lange tekenreeks met hexadecimale cijfers te zien (zoals 5122c935ce5178751a59699d2c5605c607700bd04e5f57a6c18de434ae53956e). Dit is het ID van de container. Als je nu in je webbrowser surft naar http://IP:8888 met in plaats van IP het ip-adres van je Raspberry Pi, krijg je een webpagina te zien die door de webserver in de container gegenereerd wordt.

©PXimport

05 Bekijk je containers

Als je zo enkele containers hebt opgestart, begint het beheer belangrijk te worden. Allereerst is het nuttig om te zien welke containers er draaien:

docker ps

Je krijgt dan informatie over alle containers te zien die actief zijn (met de optie -a erbij ook van de containers die zijn gestopt). In de eerste kolom staat een uniek ID voor elke container, daarnaast het image op basis waarvan de container aangemaakt is. De kolom STATUS bekijk je het best bij problemen. Als je container bijvoorbeeld bij een probleem maar blijft herstarten, zie je dat hier.

In de kolom PORTS zie je de gebruikte poorten. Voor onze container whoami staat daar bijvoorbeeld 0.0.0.0:8888->80/tcp. Dat betekent dat tcp-poort 8888 op de Raspberry Pi wordt omgeleid naar tcp-poort 80 op de container. In de laatste kolom zie je de naam van de container, die kun je in verdere Docker-opdrachten gebruiken.

Wil je meer informatie, dan komt het commando docker stats van pas. Je krijgt dan van elke container statistieken te zien, zoals het verbruik van de processor, het geheugen en het netwerk. Wil je alle informatie die Docker over een specifieke container kent, voer dan dit commando uit met het ID of de naam van de container:

docker inspect CONTAINER

En wil je tot slot de logs bekijken van een container, voer dan een van deze twee opdrachten uit:

docker logs CONTAINERdocker logs -f CONTAINER

Met de optie -f volg je de logs realtime terwijl de container ze genereert.

©PXimport

06 Beheer je containers en images

Als je een container wilt stoppen, starten of een draaiende container herstarten, kan dat eenvoudig met respectievelijk deze commando’s:

docker stop CONTAINERdocker start CONTAINERdocker restart CONTAINER

Wil je tijdelijk een container pauzeren (alle programma’s erin worden dan tijdelijk ‘bevroren’), voer dan deze opdracht uit:

docker pause CONTAINER

Na deze opdracht draaien alle programma’s in de container opnieuw:

docker unpause CONTAINER

Met het commando docker images krijg je de lijst te zien van de images die Docker gedownload heeft. Voor onze whoami-container zie je in de kolom REPOSITORY de tekst containous/whoami staan en in de kolom TAG staat latest. De volledige naam van het image zou containous/whoami:latest zijn, maar die latest is de standaardwaarde voor de tag, dus kan weggelaten worden. Daarom dat we in onze opdracht in paragraaf 4 met docker run gewoon containous/whoami als image hebben opgegeven.

In de kolom CREATED zie je hoelang geleden dit image is gedownload. Wil je dit image updaten, dan voer je de volgende opdracht uit:

docker pull containous/whoami:latest

Docker downloadt dan de nieuwste versie van het image of vertelt je dat het image up-to-date is. Als je daarna nog eens docker images uitvoert, zie je dat er een image is bijgekomen.

Maar de huidige whoami-container gebruikt nog altijd het oude image. Om dit te upgraden, stop (docker stop whoami) en verwijder (docker rm wohami) je de container, en creëer je de container opnieuw met de opdracht docker run uit paragraaf 4.

©PXimport

Opruimen

Update je regelmatig je Docker-images om de nieuwste versie in een container te draaien, dan blijven de oude images gewoon staan. De micro-sd-kaart van je Raspberry Pi met een capaciteit van hoogstens enkele tientallen gigabytes kan daardoor snel vol raken, zeker als je grote containers draait. Zo zijn containers zoals die van Home Assistant en Rhasspy meer dan een gigabyte groot. Nu werkt Docker wel met een systeem zodat bij een update niet die volledige gigabyte opnieuw gedownload en opgeslagen wordt, maar na vele updates blijft de benodigde opslag wel toenemen. Met de opdracht docker rmi IMAGE_ID verwijder je een image op basis van het ID dat je in de uitvoer van de opdracht docker images vindt. Docker kent ook de opdracht docker image prune waarmee je alle images verwijdert die niet door een container worden gebruikt. Met docker system prune verwijder je ook gestopte containers, netwerken die niet tenminste door één container worden gebruikt en cachebestanden.

©PXimport

07 Volumes

Onze voorbeeldcontainer whoami maakte geen gebruik van configuratiegegevens of data. Maar je kunt een directory op je Raspberry Pi delen met een Docker-container, zodat die toegang krijgt tot gegevens daarvan. Zo’n gedeelde directory noemt Docker een volume.

Als je met meerdere containers op je Raspberry Pi gaat werken, is het aan te raden om hun directory’s allemaal bij elkaar te zetten. Maak een directory daarvoor aan, bijvoorbeeld met:

mkdir -p /home/pi/containers/nginx/data

Plaats dan in de map containers/nginx/data een bestand index.html met een html-pagina.

Dan kun je nu een container met nginx (een webserver) opstarten waarmee je deze directory deelt:

docker run -d --name nginx -p 8080:80 -v /home/pi/containers/nginx/data:/usr/share/nginx/html:ro nginx

Daarna start de container met de webserver op en koppelt die de directory /home/pi/containers/nging/data op je Raspberry Pi in de container aan op de locatie /usr/share/nginx/html, met alleen leesrechten (ro staat voor read-only). Als je nu surft naar IP:8080 krijg je het html-bestand index.html te zien.

©PXimport

08 Docker Compose

Tot nu toe hebben we handmatig Docker-containers opgestart met opdracht docker run. Maar als je wat meer Docker-containers draait en regelmatig hun configuratie wilt aanpassen, is een andere aanpak beter: alles in één configuratiebestand zetten. Dat gaat met Docker Compose.

Installeer daarvoor eerst Pythons pakketbeheerder pip en dan Docker Compose (dat een Python-programma is) met deze opdrachten:

sudo apt install python3-pip

sudo pip3 install docker-compose

Nu kun je de configuratie van meerdere Docker-containers in een bestand docker-compose.yml zetten. Maak daarvoor een Docker Compose-bestand aan met:

nano docker-compose.yml

Plaats daarin de volgende configuratie voor onze voorbeeldcontainers whoami en nginx:

version: '3.7'services:whoami:image: containous/whoamicontainer_name: whoamirestart: alwaysports:- 8888:80nginx:image: nginxcontainer_name: nginxrestart: alwaysports:- 8080:80volumes:- /home/pi/containers/nginx/data:/usr/share/nginx/html:ro

09 YAML

Sla het bestand op met Ctrl+O en sluit nano af met Ctrl+X. Het gaat hier om een YAML-bestand (met de extensie .yml). YAML (staat voor de recursieve afkorting ‘YAML Ain’t Markup Language’) is een bestandsformaat om configuratiegegevens op een leesbare manier te definiëren. Meer info vind je op de officiële website.

Je ziet in dit bestand dat we twee containers als services definiëren. Bij elke container definiëren we het gebruikte image, de naam die de container moet krijgen en of de container vanzelf moet herstarten bij problemen. Daarnaast definiëren we ook de omgeleide poorten en de volumes.

Al deze informatie vind je ook op de opdrachtregels met docker run, maar in dit Docker Compose-bestand is het wat overzichtelijker.

©PXimport

10 Werken met Docker Compose

Zodra je een bestand docker-compose.yml hebt, kun je eenvoudig de erin gedefinieerde containers aanmaken en opstarten:

docker-compose up -d

Daarna kun je deze containers beheren met de docker-opdracht, maar docker-compose heeft zelf ook heel wat opties specifiek om containers te beheren die je met Docker Compose hebt aangemaakt. Zo ruim je alles op met de volgende opdracht, alle gedefinieerde containers worden gestopt en verwijderd:

docker-compose down

Verder kun je de logs van alle containers opvolgen met:

docker-compose logs -f

Elke container geeft zijn logmeldingen daarbij in een andere kleur. Ook Docker Compose heeft een bekend riedeltje voor het stoppen, starten en herstarten van alle containers:

docker-compose stop

docker-compose start

docker-compose restart

Alle containers in je Docker Compose-bestand updaten doe je met de volgende twee opdrachten:

docker-compose pull

docker-compose restart

De eerste opdracht downloadt nieuwe images voor alle containers die je hebt gedefinieerd en de tweede opdracht herstart al die containers zodat ze het nieuwe image gebruiken. Daarna kun je indien gewenst de oude images verwijderen met:

docker image prune

11 En verder

Van veel toepassingen vind je Docker-images op Docker Hub. Op LinuxServer.io vind je ook tientallen Docker-images die door vrijwilligers worden bijgehouden. Deze images zijn goed onderhouden en gedocumenteerd, en ze gebruiken allemaal een vergelijkbare aanpak en basisinfrastructuur.

Probeer je te beperken tot ‘officiële’ Docker-images, die door een project zelf worden aangeboden, of images van betrouwbare partijen zoals LinuxServer.io. Want iedereen kan in principe Docker-images publiceren op Docker Hub, maar ze worden niet altijd up-to-date gehouden.

©PXimport

De juiste processorarchitectuur

Het is belangrijk dat je Docker-images voor de juiste processorarchitectuur downloadt. De Raspberry Pi heeft een ARM-processor, die niet compatibel is met de Intel- of AMD-processoren die je in pc’s vindt. Veel Docker-images worden zo gepubliceerd dat automatisch de juiste versie voor je processorarchitectuur wordt gedownload. Op Docker Hub vind je bij de pagina over het gewenste Docker-image welke architecturen zijn ondersteund. Voor Raspbian is dat arm32v7, arm/v7 of armhf. Als je bij het starten van een Docker-container de foutmelding exec format error krijgt, heb je waarschijnlijk een image van de verkeerde processorarchitectuur gedownload. Als dat gebeurt, dien je een image met een andere tag te downloaden. Zo verspreidt het project motionEye zijn officiële Docker-image met twee mogelijke tags: je draait ccrisan/motioneye:master-amd64 op Intel-compatibele processoren en ccrisan/motioneye:master-armhf op een Raspberry Pi.

▼ Volgende artikel
Dit wil je weten over tweestapsverificatie, óók zonder je smartphone
© Looker_Studio - stock.adobe.com
Huis

Dit wil je weten over tweestapsverificatie, óók zonder je smartphone

Je inloggegevens alleen met een wachtwoord beveiligen is vragen om problemen. Steeds meer diensten en apps bieden daarom tweefactorauthenticatie (2FA) aan, of ze verplichten dit zelfs. Naast een wachtwoord heb je dan een tweede factor nodig. Vaak gebruik je hiervoor je smartphone, maar wat doe je als je (tijdelijk) geen telefoon hebt?

Dit artikel in het kort

Tweestapsverificatie (2FA) beschermt je accounts beter dan alleen een wachtwoord. Vaak gebruik je hiervoor je smartphone, maar dat hoeft niet. In dit artikel lees je hoe je ook zonder telefoon veilig kunt inloggen. Zo ontdek je hoe desktop-authenticators zoals Proton of KeePassXC werken, hoe je een hardwaresleutel zoals een YubiKey instelt, en hoe je back-upcodes aanmaakt voor noodgevallen. Ook wordt uitgelegd wat een digitale en fysieke token precies doen en hoe toegangssleutels (passkeys) een alternatief vormen voor klassieke wachtwoorden.

Wachtwoorden kun je vergeten, of ze worden gehackt. Daarom is het niet handig om de toegang tot een dienst of app alleen met een wachtwoord te beveiligen. Voor meer veiligheid voeg je daar een tweede authenticatiemethode aan toe. We hebben het over het aanmelden via 2FA (tweefactorauthenticatie oftewel tweestapsverificatie).

Bij 2FA heb je naast iets wat je weet, meestal een wachtwoord, ook iets wat je 'hebt' of 'bent' nodig om in te loggen. Zo'n tweede factor is vaak een unieke, eenmalige code via een authenticator-app op je smartphone. Het kan ook een sms-code, pushmelding, hardwaresleutel of een biometrische beveiliging zijn. Zo kan een aanvaller met je wachtwoord niet binnendringen, want hij heeft ook die tweede factor nodig. Een geraden of gelekt wachtwoord is dus niet meer voldoende, wat de veiligheid verhoogt.

Smartphone

Veel 2FA-oplossingen werken via een smartphone, bijvoorbeeld met de authenticator-app van Authy, Google of Microsoft, of via sms-berichten naar je telefoon. Dit is handig, maar er zijn ook nadelen. Je hebt altijd je telefoon nodig en bij een lege batterij, verlies of diefstal kom je mogelijk niet bij je accounts. Ook al je je in een gebied zonder mobiel bereik bevindt, is het lastig of onmogelijk om een sms te ontvangen.

2FA via sms is bovendien kwetsbaar voor praktijken als sim-swapping. Hierbij zet een aanvaller jouw telefoonnummer om naar een eigen simkaart om zo sms-codes te ontvangen. Je smartphone kan ook besmet raken (via phishing) met malware. Ook daarmee kan een aanvaller andere 2FA-codes onderscheppen.

Het kan ook zijn dat je geen smartphone voor je werk hebt en dat je je privételefoon liever niet gebruikt voor werkgerelateerde 2FA-authenticaties. Je kunt er natuurlijk ook nog bewust voor kiezen om geen eigen smartphone te hebben.

Gelukkig bestaan er veilige alternatieven om je ook zonder smartphone via 2FA aan te kunnen melden, zoals de rest van dit artikel duidelijk maakt.

Lees ook: Waarom je beter geen sms voor tweestapsverificatie kunt gebruiken

Een eenmalige code via een (mobiele) authenticator-app is een van de populairste 2FA-verificatiemethoden.

Desktop-authenticator

Veel mensen gebruiken als tweede factor een eenmalige code via een authenticator-app. Daarvoor bestaan verschillende gratis mobiele apps, maar je kunt ook je desktop of laptop inzetten. Je hoeft geen virtuele Android-omgeving op te zetten met een tool als BlueStacks om zo bijvoorbeeld de mobiele Android-authenticator van Google of Microsoft te kunnen draaien. Installeer gewoon de desktopversies, zoals het Zwitserse Proton of het Zweedse Yubico.

We vertellen je in het kort hoe je hiermee bij Google aanmeldt. De procedure bij andere diensten en apps gaat op een vergelijkbare manier. Surf naar https://myaccount.google.com en open Beveiliging. Kies Tweestapsverificatie en zorg dat deze is ingeschakeld. Klik bij tweede stap op Authenticator en daarna op Authenticator instellen. Er verschijnt een QR-code, maar voor je desktop-app klik je op Kun je de code niet scannen. Je krijgt nu de nodige gegevens om de geheime sleutel (zie kader Werking digitale token) handmatig in te voeren.

Als je dit in je authenticator-app hebt ingesteld (zie de alineaProton Authenticator), klik je op Volgende en voer je de code in die de app genereert. Je kunt nu definitief tweestapsverificatie bij Google aanzetten. Bij de volgende aanmeldingen voer je nu voortaan naast je wachtwoord ook de gevraagde code in.

De tweestapsverificatie bij Google is geactiveerd, met (voorlopig alleen) een authenticatorcode als tweede factor.

Proton Authenticator

We nemen Proton Authenticator voor Windows als voorbeeld (ook beschikbaar voor macOS en Linux). De installatie bedraagt slechts enkele muisklikken. Start daarna de app start op en klik op Create new code. Vul bij Title bijvoorbeeld Google account in en plak de sleutel van 32 tekens in het veld Secret.

Bij Issuer kun je Google opgeven. Via Advanced options pas je eventueel instellingen aan als de dienst specifieke eisen heeft voor het aantal cijfers (standaard 6), tijdsinterval (standaard 30 seconden), algoritme (standaard SHA1) of type (standaard TOTP, maar kies STEAM voor het Steam-gameplatform van Valve). Klik op Save code om de code toe te voegen.

Via het tandwielpictogram kun je onder meer je codes back-uppen, exporteren, importeren en ook synchroniseren tussen apparaten via een gratis Proton-account. Na het aanmaken verschijnt de code in het hoofdvenster, met een geanimeerd pictogram dat de resterende geldigheidsduur toont. Je hoeft deze code nu maar bij de juiste dienst in te vullen als tweede factor, naast je wachtwoord.

Via Proton Authenticator voeg je een TOTP-code toe aan Googles 2FA-verificatieproces.

Werking digitale token

De meeste mensen gebruiken een digitaal token als tweede factor, zoals een pushmelding of een eenmalige cijfercode. Dit laatste wordt ook wel TOTP genoemd (Time-based One-Time Password) en werkt als volgt.

Bij het instellen van 2FA genereert de dienst een unieke geheime sleutel. Deze wordt één keer met je authenticator-app gedeeld via een QR-code of handmatige invoer. Zowel de server van de dienst als je authenticator-app gebruiken deze sleutel samen met het actuele tijdstip om met dezelfde wiskundige formule een code van meestal 6 cijfers te berekenen. Zo'n code blijft standaard dertig seconden geldig. Zodra je deze code invoert, vergelijkt de server deze met zijn eigen berekening. Is er een match, dan weet de server dat jij de juiste geheime sleutel hebt en dat de code actueel is, waarna je kunt inloggen.

©TvD | ID.nl

De achterliggende werking van een TOTP-systeem.

TOTP-wachtwoordmanager

Wachtwoorden zijn vooralsnog niet verdwenen (zie ook kader Zonder wachtwoord) en daarom is een wachtwoordmanager aan te raden. Zo hoef je al je wachtwoorden niet zelf te onthouden, voorkom je dat je ze achteloos noteert en vermijd je te veel dezelfde of simpele varianten.

Enkele wachtwoordmanagers ondersteunen ook TOTP-codes voor 2FA, zodat je geen aparte authenticator-app nodig hebt. Gratis opties voor Windows-desktop zijn onder meer Bitwarden en KeePassXC.

We nemen KeePassXC als voorbeeld, dat ook voor macOS en Linux beschikbaar is. Je installeert de tool met enkele muisklikken. Bij de eerste start klik je op Database aanmaken, voer je een naam en eventueel een omschrijving in. Klik daarna op Doorgaan. Laat de instellingen gerust ongewijzigd en klik op Doorgaan. Geef een sterk hoofdwachtwoord in (twee keer) en bevestig met Gereed. Kies een locatie voor de database en klik op Opslaan.

Voer in het hoofdvenster de accountgegevens in, zoals Titel, Gebruikersnaam, Wachtwoord en URL, en bevestig met OK. Het item wordt toegevoegd. Klik er met de rechtermuisknop op, kies TOTP / TOTP instellen en vul de Geheime sleutel in. Pas via Aangepaste instellingen eventueel de parameters aan en bevestig met OK. Om de TOTP-code te zien, kies je TOTP / TOTP (QR code) weergeven in het contextmenu.

Je kunt ook de KeePassXC-browserextensie downloaden en installeren om je online wachtwoorden en TOTP-codes automatisch in de browser in te vullen.

Ook wachtwoordbeheerder KeePassXC kan TOTP-codes genereren.

Hardwaresleutel

In plaats van een digitale sleutel kun je ook een fysieke hardwaresleutel gebruiken als tweede factor. Zo'n sleutel is extra veilig omdat deze via internet niet kan worden gekopieerd of gestolen. Ook phishers maken nauwelijks kans, want de sleutel is gekoppeld aan de originele website-url van de dienst. Zelfs als iemand je sleutel heeft, blijft je wachtwoord nodig en vaak ook een pincode of biometrie om de sleutel te gebruiken. Bij verlies rest meestal alleen een alternatieve tweede factor, zoals een TOTP-code of back-upcodes (zie hieronder), tenzij je een reservesleutel hebt.

We nemen als voorbeeld een YubiKey 5 NFC USB-A van Yubico (circa 60 euro). Dit kan ook een ander merk of type zijn, zoals Feitian, Nitrokey of SoloKeys. Ga in Windows 11 naar Instellingen, kies Accounts / Aanmeldingsopties en selecteer Beveiligingssleutel / Beheren. Plaats de sleutel in de pc en activeer deze. Klik op Toevoegen bij Pincode voor beveiligingssleutel. Je kunt ook de Yubico Authenticator downloaden die ook beschikbaar is voor macOS en Linux. Ga door met installeren en start als administrator op. Open nu Passkeys, klik op Set PIN, voer tweemaal een pincode in en klik op Save.

We nemen opnieuw Google als voorbeeld, waar je inmiddels tweestapsverificatie hebt ingeschakeld. Op de webpagina van je Google-account open je Beveiliging en klik je op Toegangssleutels en beveiligingssleutels. Kies + Toegangssleutel maken, klik op Ander apparaat gebruiken, selecteer Beveiligingssleutel en klik op Volgende en daarna op OK (twee keer). Voer de pincode van de sleutel in, bevestig met OK en activeer de sleutel. Deze is nu bruikbaar als tweede factor.

Bij Google maak je eenvoudig een toegangssleutel aan.

Werking fysieke token

Je kunt als tweede factor ook een fysieke token gebruiken. Bij banken kan dit een klein kastje zijn dat codes genereert, maar het kan ook een hardwaresleutel zijn zoals een YubiKey. Zo'n sleutel koppel je aan je computer via usb of bij smartphones via bluetooth of NFC. Dit werkt als volgt.


Je koppelt de sleutel één keer aan je account, waarbij een uniek cryptografische sleutelpaar wordt aangemaakt. De publieke sleutel gaat naar de server van de dienst, terwijl de privésleutel veilig in het hardwaretoken blijft en deze nooit verlaat. Na het invoeren van je wachtwoord vraagt de server aan de sleutel om een unieke digitale handtekening te maken voor die specifieke aanmelding.

Jij bevestigt de aanvraag, bijvoorbeeld door het token te activeren. Vervolgens stuurt de sleutel de handtekening naar de server, die controleert of deze overeenkomt met de eerder opgeslagen publieke sleutel. Bij een match weet de server dat jij de echte sleutel bezit en kun je inloggen.

Onder meer Yubico heeft diverse hardwaretokens (YubiKey) in het aanbod.

Back-upcodes

We hebben nu al twee methoden om ons via een desktop-pc of laptop bij 2FA aan te melden: digitale TOTP-codes en een hardwaresleutel. Heb je ook een toegangssleutel, bijvoorbeeld gekoppeld aan je Windows Hello-inlogmethode, dan zijn het er zelfs drie opties. Al is dit eigenlijk geen klassieke 2FA maar een methode zonder wachtwoord (zie kader Zonder wachtwoord).

De meeste diensten die 2FA ondersteunen, bieden ook back-upcodes aan, hoewel deze eigenlijk bedoeld zijn als noodingreep. We raden je in elk geval aan deze te genereren of te downloaden en offline te bewaren, bijvoorbeeld in een kluis of andere water- en brandveilige plek. Laat ze zeker niet rondslingeren en deel ze nooit digitaal.

Voor je Google-account bijvoorbeeld werkt dit als volgt. Meld je opnieuw aan op je accountpagina, open Beveiliging, scrol naar beneden en klik op Back-upcodes en daarna op Back-upcodes genereren. Google maakt direct tien codes aan die je kunt downloaden en/of afdrukken. Dit is meestal voldoende om problematische aanmeldingen op te lossen. Je kunt op elk moment weer tien nieuwe codes aanmaken, waarmee de vorige tien codes automatisch ongeldig worden.

Google genereert tien back-upcodes die je goed dient te bewaren voor het geval er iets misgaat.

Zonder wachtwoord

2FA combineert dus iets dat je 'weet' (wachtwoord) met iets wat je 'hebt' (zoals een code of sleutel) of 'bent' (biometrie). Er komt ook steeds meer concurrentie van een oplossing zonder wachtwoord via zogeheten toegangssleutels (passkeys). Dit systeem is enkel gebaseerd op iets wat je 'hebt' (een hardwarematige of softwarematige sleutel), vaak gecombineerd met een vorm van biometrie.

Je hebt hierbij dus geen wachtwoord meer nodig. Je kunt direct inloggen met zo'n sleutel, meestal na een geslaagde vingerafdruk, gezichtsherkenning of pincode. Onderliggend werkt dit via de FIDO2-standaard met het hardwareprotocol CTAP2 en het webprotocol WebAuthn.

Op www.passkeys.io/ vind je een demonstratie en een lijst van enkele tientallen sites en apps die toegangssleutels als volledig wachtwoordalternatief ondersteunen. Nog meer diensten staan op https://passkeys.directory, een door de community beheerde lijst. De aanduiding MFA (Multi Factor Authenticatie) betekent hier dat toegangssleutels ook inzetbaar zijn als extra beveiligingslaag naast andere inlogmethodes. Zo kun je onder meer bij Google via een toegangssleutel, zoals een pincode, inloggen, zonder zelfs je wachtwoord te hoeven intikken.

Passkeys-directory: ook Google ondersteunt volop toegangssleutels.

Offline dingen veilig bewaren?

Haal een kluis in huis!
▼ Volgende artikel
Een eigen kluis, de plek voor al je wachtwoorden
Zekerheid & gemak

Een eigen kluis, de plek voor al je wachtwoorden

Je kent het wel: je wil iets online bestellen of even het saldo op je rekening checken. En dan komt het: je moet inloggen. Maar, wat was ook al weer het wachtwoord? De geboortedatum van je partner, de laatste twee cijfers van je postcode in combinatie met je lengte? Voor je het weet druk je weer op de knop 'Wachtwoord vergeten'... Dat kan makkelijker.

Partnerbijdrage - in samenwerking met Bitdefender

Ons brein is er niet voor gemaakt om voor vijftig verschillende sites unieke codes te onthouden. En juist daarom zijn wachtwoordmanagers de laatste jaren zo populair geworden. In dit artikel kijken we eens goed naar de oplossing van Bitdefender. Ze zijn wereldberoemd om hun antivirus, maar kunnen ze ook zorgen dat jij nooit meer buitengesloten wordt bij je eigen accounts?

In het kort

In dit artikel bespreken we hoe een wachtwoordmanager dient als oplossing voor het veilig beheren van talloze online accounts. We laten je zien dat je met slechts één sterk hoofdwachtwoord toegang krijgt tot een digitale kluis, waarna de software automatisch complexe inlogcodes genereert en invult op al je apparaten. Daarnaast wordt behandeld hoe lokale versleuteling en digitale herstelsleutels zorgen voor privacy en toegangszekerheid, zonder dat gegevens op straat komen te liggen

Waarom een wachtwoordmanager?

Laten we eerlijk zijn, de meeste mensen gebruiken nog steeds overal hetzelfde wachtwoord, of een kleine variatie daarop. Of ze schrijven het ergens op. Dat voelt misschien wel veilig, tot je beseft hoe lek het internet soms kan zijn of dat je net dat boekje kwijtraakt.

Met een wachtwoordmanager zoals Bitdefender SecurePass password manager los je dat probleem voor een groot deel op. Die fungeert als een onzichtbare butler die je helpt met de wachtwoorden invullen, ook al is het misschien lastig of spannend om alles zomaar uit handen te geven. Je installeert de software op je eigen computer en je telefoon, en je bedenkt één heel sterk hoofdwachtwoord. Dat is de enige die je nog hoeft te onthouden.

Voor BitDefender SecurePass heb je een hoofdwachtwoord nodig, en alleen die hoef je te onthouden.

Zodra je die invoert, gaat de kluis open en regelt Bitdefender de rest. Als je dan naar Facebook of je favoriete webshop gaat, ziet het programma dat je wil inloggen en vult het de velden voor je in. Je hoeft niet meer te typen, niet meer te denken en vooral niet meer te stressen. Het mooie is dat het programma je ook meteen helpt bij het aanmaken van wachtwoorden voor nieuwe accounts. In plaats van dat jij weer moet gaan nadenken over een code met een uitroepteken en een cijfer, genereert de software gewoon een onmogelijk te kraken reeks tekens uit en slaat deze direct op. En jij ziet het wachtwoord niet eens, en dat hoeft ook niet, want de software onthoudt het voor je.

En ben je bang dat je misschien ook het hoofdwachtwoord niet meer weet? SecurePass genereert ook nog een digitale herstelsleutel die je in het allerergste geval dan kunt inzetten om in te loggen. Die herstelsleutel bewaar je bij voorkeur op een andere plek dan je smartphone of computer, of print je uit en sla je op in een kluis.

Met een herstelsleutel zorg je dat je altijd toegang kunt krijgen tot je wachtwoordkluis.

Lokaal opgeslagen: veilig!

Het blijft een raar idee: al je wachtwoorden bij één bedrijf parkeren. Wat als zij gehackt worden? Dan ligt alles op straat, toch? Nou, gelukkig zit dat bij Bitdefender wel goed in elkaar. De versleuteling van je wachtwoorden gebeurt namelijk lokaal op jouw eigen apparaat, nog voordat het via het internet naar hun servers wordt gestuurd. Jouw hoofdwachtwoord is de sleutel die die versleuteling ongedaan maakt. Omdat Bitdefender jouw hoofdwachtwoord niet heeft (en ook nergens opslaat), kan niemand bij jouw gegevens; ook niet in geval van een lek of hack.

Maar omdat Bitdefender jouw wachtwoord nergens hebben opgeslagen, niet hebben, kunnen ze je ook niet helpen als je het vergeet. Er is geen "wachtwoord vergeten" optie voor je hoofdwachtwoord. Je krijgt bij het installeren alleen die speciale herstelcode. Die moet je echt uitprinten of op een veilige plek bewaren, want als je je hoofdwachtwoord kwijt bent én die herstelcode, dan ben je echt de pineut en kom je je kluis nooit meer in.

Hoe werkt het in de praktijk?

Bitdefender SecurePass installeer je als app op een Android- of iOS-toestel, en is beschikbaar als browser-add-on voor de Windows- en MacOS-versies van Chrome, Edge, Firefox en Safari.

Op een desktop werkt Bitdefender SecurePass als een extensie in je browser en op de smartphone als een app.

Veiligheid is leuk, maar als de software lastig is in gebruik, gooi je het er na een week weer vanaf. Gelukkig heeft Bitdefender goed gekeken naar hoe mensen surfen en software gebruiken. De interface oogt fris voor zowel de browser-extensie als de app op je telefoon. Wat vooral fijn is, is de synchronisatie. We leven in een tijd waarin je 's ochtends op je telefoon zit, overdag op een laptop werkt en 's avonds misschien met een tablet op de bank hangt. Als je op je laptop een nieuw wachtwoord aanmaakt voor Netflix, wil je niet op je telefoon die hele rits tekens moeten overtypen.

Je hebt daardoor toegang tot alle accounts zonder dat je overal moet nadenken over wat de gebruikersnaam of het wachtwoord ook echt precies was: makkelijk en handig dus!

Ieder nieuw account sla je op in SecurePass zodat de gegevens overal automatisch worden ingevuld, op ieder apparaat.

Het meeste werk gebeurt via een extensie in je browser (via het icoontje rechtsboven in de browser) of via de app op je telefoon. Bitdefender synchroniseert dit razendsnel. Zodra je iets opslaat op het ene apparaat, is het vrijwel meteen beschikbaar op het andere. Daarnaast doet het meer dan alleen wachtwoorden. Je kunt er ook notities in kwijt die niemand mag zien

Ook is het handig dat je een of meerdere betaalkaarten en creditcards kunt toevoegen. Iedere keer dat je op een betaalpagina komt, laat Bitdefender je een scherm zien waarop je kunt aangeven welke opgeslagen creditcard je wil gebruiken. Na de selectie vult Bitdefender automatisch alle creditcardgegevens in en kun je de bestelling afmaken.

Ook je creditcardgegevens sla je eenvoudig op in SecurePass, zodat je die gegevens niet telkens handmatig hoeft in te typen als je iets online bestelt.

Gebruik je slechte of makkelijk te raden wachtwoorden, dan is er een beveiligingsscan die ten eerst kijkt of je geen zwakke wachtwoorden hebt gebruikt, maar ook op het dark web op de achtergrond scant naar gelekte gegevens. Je krijgt dan direct de tip om je wachtwoord direct aan te passen.

Met het beveiligingsrapport kun je zien welke wachtwoorden zwak of zelfs gelekt zijn, waardoor je direct weet waar je iets moet aanscherpen.

Tot slot

Als we alles op een rijtje zetten, is Bitdefender SecurePass een goede keuzae als je geen zin hebt in een lastig te beheren omgeving . Voor de gemiddelde gebruiker is dit precies wat je zoekt. Het doet wat het moet doen: het beveiligt je gegevens muurvast en haalt de frustratie van het inloggen weg. Vooral als je al gebruikmaakt van de antivirus van Bitdefender, is dit een logische toevoeging die naadloos in je bestaande pakket past. Het is misschien even wennen om de controle uit handen te geven, maar als je eenmaal gewend bent aan het feit dat je nooit meer een wachtwoord hoeft te onthouden, wil je nooit meer terug.