Accounts beveiligen met tweestapsverificatie
Tweestapsverificatie is een van de beste manieren om een account te beveiligen tegen ongewenste indringers. Je kent vrijwel zeker de methode via sms, maar er zijn meer soorten. We nemen ze in dit artikel eens onder de loep. Want accounts beveiligen is nu eenmaal nodig.
Tweestapsverificatie of tweefactorauthenticatie (afgekort 2FA), is een ingewikkelde term voor het gebruik van een extra wachtwoord of ‘token’ boven op je gebruikersnaam en wachtwoord. Die extra code ontvang je via een sms, app of een speciaal stuk hardware. Het is een bijzonder goede beveiligingsmethode voor de meeste accounts waar je moet inloggen.
In tegenstelling tot een gebruikersnaam en wachtwoord is een 2FA-token (meestal) tijdelijk. Er zijn daarom geen databases vol met inlogcodes. Aanvallers moeten ze direct weten te onderscheppen, anders verlopen ze. Bovendien is het lastig zowel een wachtwoord als 2FA-token te achterhalen. Niet onmogelijk, maar doorgaans te moeilijk voor een grootschalige aanval. Dat maakt tweestapsverificatie juist zo veilig.
Het idee om een extra authenticatiestap toe te voegen aan het inlogproces is verre van nieuw, en een explosief groeiend aantal online diensten biedt wel een of andere vorm van 2FA aan. En hoewel ook tweestapsverificatie niet onfeilbaar is, is het voor de doorsnee gebruiker een erg goede methode om accounts te beveiligen. Toch blijft het gebruik ervan flink achter.
Grote spelers zoals Google proberen het proces al jaren makkelijker en toegankelijker te maken, maar zelfs dan willen gebruikers nog niet aan de 2FA. In januari vertelde Google dat minder dan tien procent van de 1,4 miljard gebruikers tweestapsverificatie had ingesteld op zijn of haar account.
One-time-passwords
Bij tweestapsverificatie wordt gebruikgemaakt van ‘One Time Passwords’, OTP’s. Daar zijn twee varianten van: HOTP (HMAC-based One Time Passwords, waarbij HMAC weer staat voor Hash-based Message Authentication Code) en TOTP (Time-based One-Time Passwords). HOTP’s zijn wachtwoorden die eenmalig worden aangemaakt en langer blijven bestaan. Deze methode wordt gebruikt voor wachtwoorden die per sms of e-mail worden verstuurd, of die met een fysieke hardwaretoken zoals een Yubikey worden aangemaakt.
De methode heeft als voordeel dat je het langer kunt gebruiken, wat weer handig is als je lang moet wachten voor een sms binnen is. TOTP’s (Time-based One Time Passwords) zijn wachtwoorden die een beperkte tijd beschikbaar zijn. Dat is de standaard die gebruikt wordt in apps zoals Google Authenticator. Die wachtwoorden zijn slechts beperkt te gebruiken, wat ze een stuk veiliger maakt tegen ‘brute force’-aanvallen.
©PXimport
Een one-time-password wordt gegenereerd op basis van een unieke privésleutel die je krijgt als je 2FA instelt. Meestal is dat in de vorm van een QR-code die je scant, maar je kunt de ‘key’ ook vaak handmatig opgeven. Die privésleutel wordt vervolgens via een algoritme omgezet in een unieke ‘hashcode’. Bij een Time-Based OTP is dat algoritme gebaseerd op een tijdstempel van de server waar je verbinding mee maakt. Deze ‘time stamp’ wordt gemaakt op het moment dat je 2FA instelt.
Verschillende authenticatiemethodes
Er zijn inmiddels veel verschillende manieren om tweestapsverificatie te gebruiken, allemaal met hun eigen voor- en nadelen. De bekendste manier is waarschijnlijk sms, maar dat is gelijk ook een vreemde eend in de bijt. Sms is handig, maar ook onveilig om meerdere redenen – daarover later meer.
Je kunt authenticatiecodes ook via e-mail ontvangen, maar ook dat is niet erg veilig. Je brengt 2FA dan namelijk terug naar een zogeheten ‘single point of failure’, waarbij iemand met toegang tot je e-mailaccount gelijk toegang tot andere accounts heeft. In dat geval voegt 2FA niets toe. Toch is het bij diensten als Firefox Sync alleen nog mogelijk e-mailverificatie te gebruiken.
Een populaire én relatief veilige methode is om een app te gebruiken. Google heeft met Authenticator een van de bekendste, maar er zijn er meer. Microsoft heeft Microsoft Authenticator, en hoewel die veel minder gedownload is, is het aan te raden deze dienst te gebruiken als je een Windows Phone hebt.
Als je vaak van telefoon wisselt kan het vervelend zijn om alle codes opnieuw te scannen, en in dat geval is Authy de beste optie: die app kan de privésleutels opslaan in de cloud, zodat je de hashcode die daarop gebaseerd wordt ook op een nieuwe telefoon kunt instellen. Maar ook daar zit natuurlijk weer een risico aan: je moet je Authy-account dan wel erg veilig houden.
De veiligste (maar ook duurste) manier om tweefactorauthenticatie in te schakelen is het gebruik van een hardwaretoken. Dat zijn fysieke sleutels, zoals een usb-stick, die offline een code genereren op een klein scherm of die je via usb kunt gebruiken om een code door te geven. Op die manier kan de code niet via bijvoorbeeld een hack onderschept worden. De Yubikey is de bekendste versie van zo’n apparaat.
©PXimport
Een handjevol diensten biedt een eigen, alternatieve methode van tweestapsverificatie aan of geeft daar zijn eigen draai aan. Google is een goed voorbeeld. Het bedrijf biedt al sinds jaren tweestapsverificatie aan via sms en natuurlijk Googles eigen Authenticator-app, maar je kunt ook kiezen voor een pop-up via de Google-app op je telefoon. Die verschijnt meteen zodra je ergens inlogt, zodat je alleen maar op ‘Ja’ hoeft te tikken om te authenticeren.
Een andere dienst die 2FA tot slot heel goed implementeert is WhatsApp. Als je die functie hebt ingeschakeld, vraagt de app om een zescijferige pincode wanneer je WhatsApp op een nieuw apparaat installeert. Maar omdat dat niet vaak gebeurt, is een geheugensteuntje wel handig. Daarom vraagt de applicatie je eenmaal per week de code in te voeren, gewoon om te zorgen dat je die niet vergeet.