Privacy tools - Tweestapsauthenticatie (2FA)

Afbeelding van een persoon die aan de hand van zijn smartphone 2 factor authenticatie voltooit.

De volgende stap

Zoals ik reeds in het artikel over de password manager beschreef, zijn accounts en wachtwoorden iets waarmee we dagelijks geconfronteerd worden en waarvan we er gemiddeld 100 tot 150 hebben. Een klein deel daarvan (een 10-tal) gebruiken we heel regelematig en kunnen we beschouwen als onze belangrijkste accounts.

In dat artikel argumenteer ik ook waarom het noodzakelijk is om een wachtwoordkluis te gebruiken: je wil niet overal hetzelfde wachtwoord gebruiken, want eens dat gelekt wordt, heeft een aanvaller toegang tot al je accounts die dat wachtwoord gebruiken.

Een uniek wachtwoord voor elke account is dus een belangrijke stap om je andere accounts te beschermen wanneer eentje lekt.

Maar kunnen we nog een stap verder gaan? Kunnen we onze accounts nog extra beschermen, ook als het wachtwoord gelekt is?

Zoals je ongetwijfeld voelt aankomen, is het antwoord op beide vragen 'JA'. En dat is waar tweestapsverificatie, 2-factor authentication, 2FA (of meerstapsverificatie, multi-factor authentication, MFA) een oplossing biedt.

Tweestapsverificatie of meerstapsverificatie

Zoals de naam het al wat zegt, zul je in twee of meer stappen gaan bewijzen dat jij het echt bent wanneer je inlogt.

Wat is dat nu eigenlijk, meerstapsverificatie? Dit is een vorm van authenticatie die gebaseerd is op verschillende soorten verificatie: iets dat je weet, iets dat je hebt, iets dat je bent. In de meest voorkomende gevallen vertaalt zich dat naar: een combinatie van gebruikersnaam en wachtwoord, een code die elke 30 seconden wijzigt en gegenereerd wordt door een app op je smartphone (of op een aparte sleutel) en biometrische gegevens (irisscan, gezichtsscan, vingerafdruk).

We beperken ons voor de rest van het artikel tot twee stappen. De eerste hebben we al, dat is de combinatie van je gebruikersnaam (e-mailadres) en wachtwoord. Dit is de factor die je weet. Als je gebruikmaakt van een wachtwoordkluis (zoals je zou moeten), dan is dat 'weten' wat indirecter. Je kent je 'master passphrase' om in je kluis te geraken en haalt daar dan de juiste gegevens uit.

De tweede zullen we toevoegen aan de hand van een TOTP-code (time-base one-time password). Deze code wijzigt frequent, is eenmalig geldig en wordt gegenereerd door een applicatie op je smartphone, aan de hand van een gedeeld 'secret'.

Dit 'secret' wordt je meestal getoond in de vorm van een QR-code door de website waar je 2FA op je account activeert. De app op je smartphone gebruik je om deze QR-code te scannen. Nu kennen zowel de website als jouw app het 'secret' en weten ze beide op eender welk moment wat de juiste code moet zijn. Aangezien deze codes tijdsafhankelijk zijn, is het natuurlijk belangrijk dat de tijd van je smartphone juist staat.

Dit is je tweede factor, de factor die je hebt, in de vorm van je smartphone met een geconfigureerde app.

Wat is een goede TOTP app?

Net zoals in het artikel over de password manager gaan we weer op zoek naar een app die Open Source is. Dit is software waarvan de code vrij in te kijken is voor iedereen die dat wenst. Dat wil niet zeggen dat wij al die code gaan onderzoeken om te zien wat er gebeurt. Maar dat wil wel zeggen dat security researchers en enthousiasten dit kunnen doen. Het verplicht de makers van de software om integer te zijn, als ze op hun website iets beweren dat niet overeenstemt met wat de code doet, kan dat gemakkelijk ontdekt worden.

Daarnaast geven we de voorkeur aan applicaties die volledig op zichzelf staan en niet afhankelijk zijn van een login (of een telefoonnummer). Het zou wel heel onhandig zijn als die login gelekt wordt en iemand anders toegang krijgt tot al jouw 2FA-codes. Daarnaast kan je die login, om in je 2FA-app te komen, moeilijk met 2FA beveiligen. Tenzij je daarvoor weer een andere app gebruikt. Maar zit je daar dan met hetzelfde probleem?

Bij voorkeur een 'offline' app dus. Dit houdt natuurlijk wel in dat je zelf weer wat meer verantwoordelijkheid moet nemen en ik begrijp dat dit mogelijks niet iedereen zijn voorkeur is.

De app waarvoor ik, net als voor Bitwarden in het artikel over password managers, een filmpje heb dat je kan gebruiken om van start te gaan, is '2FAS Auth'. In het filmpje zal je zien dat de app gewoon '2FAS' heet, het is een tijdje geleden gemaakt, maar het helpt je nog steeds goed op weg. Als bonus geef ik nog een filmpje mee om je Bitwarden account ook met 2FAS te beveiligen.

De filmpjes zijn gemaakt voor Android, maar afgaande op wat de website laat zien, biedt ook 2FAS een gelijkaardige gebruikerservaring op iOS.

Als je hun website (en de app) wat verkent, zal je merken dat ze ook 'Cloud sync' functionaliteit aanbieden. Deze maakt gebruikt van de ingebakken cloud-connectie van je smartphone: Google Drive voor Android en iCloud voor iOS. Hierdoor heb je dus geen '2FAS'-account nodig om je codes op verschillende apparaten toegankelijk te hebben. Voordat de data gesynchroniseerd wordt, wordt ze versleuteld. Voor de mensen die geen Google Services gebruiken (sterk bezig, ik weet dat het geen gemakkelijke weg was!), is er een mogelijkheid om een backup te exporteren en te importeren. Je beslist dan zelf hoe je die backup op een ander toestel krijgt.

Andere opties (waarschuwing: niet voor beginners)

Ter volledigheid wil ik nog enkele andere opties meegeven voor je TOTP-codes.

Veel password managers bieden de mogelijkheid om TOTP-secrets op te slaan en kunnen dus ook de TOTP-codes genereren. Met 'auto copy' functionaliteiten wordt die code meteen na de 'autofill' van je login in je klembord geplaatst. Zo maken ze het gemakkelijker om die code direct te kunnen plakken in het inlogscherm van een website. Hoewel dit handig is, raad ik enige voorzichtigheid aan.

In deze situatie vertrouw je enkel op de veiligheid van je 'master passphrase' voor alle factoren van je authenticatie. Zeker bij een online password manager brengt dat enig risico met zich mee. Je kan hier creatief mee omspringen en bijvoorbeeld een aparte 2FA-app gebruiken om in je password manager te komen, maar het feit blijft dat al je logingegevens op een enkele plek bewaard worden.

Beide password managers (Bitwarden en KeePassXC) die ik in het artikel over password managers beschrijf, ondersteunen deze functionaliteit.

Dit geeft je natuurlijk wel de mogelijkheid om te combineren. Je kunt verschillende kluisen gebruiken: eentje voor je logins, eentje voor je 2FA-codes.

Je kunt verschillende password managers (met verschillende kluizen) gebruiken voor verschillende doelen.

... Bedenk het zelf maar 😉

Wanneer je een andere wachtwoordkluis gebruikt voor je 2FA-codes, zitten ze op die manier wat meer 'verstopt'. Het helpt je als aanvaller niet om te zoeken naar een voor de hand liggende 2FA-applicatie.

Wat met SMS?

Er zijn wel wat websites die je om een GSM-nummer vragen wanneer je een account aanmaakt. Los van extra dataverzameling kan dit nummer ook gebruikt worden voor tweestapsverificatie.

Het is namelijk een extra factor die iedereen met een GSM (ja, GSM, het hoeft geen smartphone te zijn) kan gebruiken. Tijdens het inloggen ontvang je een SMS met een eenmalige code die je dan moet ingeven om verder te gaan.

Hier zijn enkele voor- en nadelen aan verbonden, maar het heeft vooral te maken met hoe veilig je je tweestapsverificatie wil hebben.

Tweestapsverificatie via SMS is namelijk kwetsbaar voor 'SIM swap' aanvallen, die van nature uit minder technische aanvallen zijn. Een aanvaller zal in dit geval proberen om jouw GSM-nummer te verplaatsen naar een SIM-kaart die hij controleert. Om hierin te slagen, is het vooral nodig dat de aanvaller een medewerker van jouw GSM-provider kan overtuigen om deze actie door te voeren. (Dit is ook de reden waarom je geen 2FA-app wil die afhankelijk is van je GSM-nummer.)

Daartegenover staat dat SMS-codes een heel simpele vorm van tweestapsverificatie zijn om in te stellen en dus zeker beter zijn dan geen tweestapsverificatie.

Mijn advies is dus: hou een echte tweestapsverificatie met TOTP-codes als einddoel voor ogen, maar maak in aanloop daar naartoe zeker gebruik van SMS-codes als extra beveiliging van je accounts. Beter iets dan helemaal niets.

Hoe moet het nu verder?

Net zoals in het artikel over password managers is het nu tijd om te geleerde kennis toe te passen.

Ik raad je ook hier ten zeerste af om meteen al je accounts af te lopen en tweestapsverificatie te beginnen instellen, dat is een (onprettig) werkje dat veel geduld (en tijd) vraagt.

In plaats daarvan, zou ik je aanraden om met je belangrijkste en meestgebruikte accounts te beginnen. Log in op je account, ga naar je accountinstellingen en kies om tweestapsverificatie in te stellen.

Elke volgende keer dat je inlogt op een account waar je nog geen tweestapsverificatie hebt ingesteld, doe je hetzelfde: ga na je accountinstellingen en activeer 2FA.

Op die manier spreid je de benodigde tijd en moeite en uiteindelijk worden je accounts stap voor stap weer wat veiliger.

Veel succes!

Vertalingen: