FAQ: wachtwoorden, FIDO2 en TOTP

Alieke van Sommeren
0

In theorie zijn tweede factoren om je accounts te beveiligen (FIDO2, TOTP) makkelijk te gebruiken: naast het wachtwoord moet je bewijzen dat je iets hebt dat een geheime sleutel bevat wanneer je inlogt. De praktijk is wat weerbarstiger.

We hebben prangende vragen over wachtwoorden, FIDO2 en TOTP en de bijbehorende antwoorden voor je op een rij gezet.

wachtwoorden FIDO2 en TOTP FAQ intro

Wachtwoorden

Er wordt altijd gezegd dat er een groot risico bestaat dat online diensten wachtwoord­databases kwijtraken en dat je daarom voor elke dienst een apart wachtwoord moet gebruiken. Is dat echt zo, of is dat gevaar overdreven?

Er zijn ongetwijfeld veel diensten die zeer verantwoord omgaan met wachtwoorden van gebruikers door ze te voorzien van een zogeheten salt en te bewaren als een hashwaarde en niet in platte tekst.

Een aanvaller die erin slaagt op een server in te breken kan met zo’n wachtwoordendatabase heel weinig doen. Sommige diensten doen dat echter nog steeds niet, zijn slordig met updates en maken het mogelijk onversleutelde wachtwoordlijsten te stelen.

Wachtwoorden Bitwarden wachtwoordgenerator

Zelf veilige wachtwoorden verzinnen hoeft niet meer: wachtwoordkluizen bieden je de optie om een goed sterk uniek wachtwoord aan te maken.

Als je wilt weten of er al ergens gebruikersnaam- en wachtwoord-records voor jouw accounts in omloop zijn, is dat te controleren op haveibeenpwned.com door daar je mailadres in te voeren.

De website wordt beheerd door een vrijwilliger zonder commercieel belang en houdt gegevens bij van bekende lekken waarvan de gegevens meestal al in de duistere kringen op het web verhandeld worden.

Volgens hem heeft hij al 11 miljard accounts in zijn gegevensverzameling zitten. Dat zou zelfs de laatste voorstander van zogenaamd veilige universele wachtwoorden ervan moeten overtuigen om voor elke dienst een apart wachtwoord toe te kennen.

Is het inloggen met een Google-, Facebook- of GitHub-account een veilige optie?

Steeds meer websites bieden aan om in te loggen via Google, Facebook en andere grote online diensten. Die grote namen hebben de middelen om hun systemen zeer goed te beveiligen met FIDO2 en TOTP als opties, beter dan een kleine webwinkel die op zijn IT-dienstverlener vertrouwt om de software van de webwinkel up-to-date te houden.

Iemand die af en toe bij kleine webshops koopt, is bijvoorbeeld vaak veiliger af met een check-out via Amazon dan met een nieuw account.
Anderzijds worden de grote diensten daardoor ook een single point of failure en wordt het voor aanvallers aantrekkelijker om dergelijke accounts buit te maken.


Meer lezen over security? Schrijf je in voor onze nieuwsbrief:

Blijf op de hoogte!

Schrijf je in voor de c't nieuwsbrief en ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

Daarom moet je dat soort functies alleen gebruiken als je je account bij de betreffende grote provider met alle beschikbare middelen dichtgetimmerd hebt.

Een ­ander probleem los je zo niet op: Google en Facebook en dergelijke bieden die optie niet aan uit pure lief­dadigheid. In ruil voor het makkelijk kunnen inloggen verzamelen ze gebruiksgegevens via tracking, zodat ze bijvoorbeeld onthouden in welke winkels jij rondkijkt.

Dergelijke informatie kan vervolgens worden gebruikt voor gepersonaliseerde reclame.

FIDO2 en encryptie

Soms lees ik over FIDO2, soms over WebAuthn. Wat is dat nou precies?

Achter beide termen staat de FIDO Alliance, waar industriereuzen als Apple, Amazon, Google, Intel en Microsoft lid van zijn. Twee componenten zijn nodig voor een FIDO2-registratie.

Enerzijds moet de browser meewerken, via JavaScript op de hoogte worden gebracht dat een aanmelding via FIDO2-hardware plaatsvindt, en de opdracht aan de hardware doorgeven.

Dat deel is geregeld in de webstandaard WebAuthn (afkorting van Web Authentication), die wordt beheerd door het World Wide Web Consortium (W3C). De tweede component is de hardware zelf (als stick of via de in apparaten ingebouwde TPM of Secure Element).

De norm daarvoor heet Client to Authenticator Protocol (CTAP) en wordt onderhouden door de FIDO Alliance.

Bij FIDO2 en U2F zit er een geheime sleutel in de hardware. Wordt die doorgegeven als je inlogt? Als dat zo zou zijn, zouden de methoden even onveilig en kwetsbaar voor man-in-the-middle aanvallen als wachtwoorden.

Het cryptografische geheim verlaat de FIDO2-stick of de TPM nooit. Er wordt gebruik ge­maakt van een challenge-response-methode, ofte­wel asymmetrische cryptografie.

De server ver­stuurt een tekenreeks, die wordt cryptografisch ondertekend in de cryptochip en teruggestuurd (de browser bemiddelt tussen de server en de chip). De server kan de handtekening gebruiken om na te gaan of je in het bezit bent van de geheime sleutel, zonder dat die wordt verstuurd.

FIDO2 TOTP TrustKey T110 & T120 FIDO2-sleutel - gelekte wachtwoorden beveiligen

Een hardwaresleutel om je online accounts te beveiligen maakt het hackers lastig, zelfs als je wachtwoord gelekt is.

Veel andere asymmetrische procedures, zoals de certificaatlogin voor SSH-verbindingen of een digitale handtekening, werken vergelijkbaar.

Als een aanvaller erin slaagt het verkeer tussen je browser en de server te hacken, kan hij daar weinig schade aanrichten. Als hij alleen het verkeer leest, ziet hij geen geheime sleutels.

Als hij erin slaagt het verkeer te manipuleren, kan hij er in het ergste geval voor zorgen dat een inlogpoging mislukt. Hij kan nog steeds geen geheime sleutels stelen.

Ik begrijp nog steeds niet waarom de geheime sleutel in de cryptochip onder geen enkele omstandigheid kan worden gelezen. Als hij daar in gaat, moet het ook mogelijk zijn om hem uit te lezen.

De cryptografiechips in de TPM en in de FIDO2-sticks zijn speciaal voor dat doel ontworpen, zodat precies bepaald kon worden welke functies ze hebben. Er is geen commando dat de geheime sleutel vrijgeeft.

Bovendien wordt die sleutel niet op een pc door software gegenereerd en aan de chip gegeven, maar direct in de chip gegenereerd en opgeslagen. Elke keer dat een FIDO-stick wordt teruggezet naar de fabrieksinstellingen, genereert hij een nieuwe geheime sleutel.

Is het verstandig om een FIDO2-stick in de computer te laten zitten of moet ik hem er altijd uithalen om het aanvallers niet te makkelijk te maken?

Bij laptops is er in de eerste plaats een zeer direct gevaar: de stick kan onderweg gestolen worden als je de computer even uit het oog verliest. Er is ook een theoretisch gevaar op afstand.

Aanvallers zouden kunnen proberen de stick een groot aantal challenges te sturen die hij moet ondertekenen. Aanvallers zouden met voldoende ondertekende tekenreeksen mogelijk de sleutel kunnen afleiden. Maar dat is een hypothetische aanval die nog niemand uitgevoerd heeft.

Een ander praktisch obstakel is de eis in de norm voor de aanwezigheid van de gebruiker. Je moet elke keer dat je inlogt op een fysieke knop drukken.

Diensten die speciale bescherming vereisen kunnen ook user-verification (via een pincode of biometrie) ­eisen. Aanvallers kunnen beide niet omzeilen voor massa-­ondertekening.

FIDO2 TOTP wachtwoorden security key beveiligingssleutel Yubico vingerafdrukscanner Biokey

Hardwarekeys die bestaan uit een doorlopende printplaat (zoals Solo Keys en YubiKeys) kunnen prima jarenlang overleven aan je sleutelbos

Voor de zekerheid moet je de stick altijd loskoppelen en opbergen, vooral als je hem ingesteld hebt om naast zijn taak als FIDO2-authenticator ook als toetsenbordemulator te werken en met één druk op de knop een lange wachtwoordzin in te voeren.

Onze ervaring op de lange termijn is dat alle sticks die bestaan uit een doorlopende printplaat (zoals de Solo Keys en YubiKeys) prima jarenlang kunnen overleven aan je sleutelbos.

Ik wil FIDO2 niet gebruiken met verschillende diensten omdat ik bang ben mijn anonimiteit op te geven. Omdat de diensten een publieke sleutel van mijn FIDO2-stick opslaan wanneer ik me registreer, zouden ze met elkaar informatie kunnen uitwisselen over waar ik allemaal accounts heb, of is dat niet zo?

Dat is precies wat de bedenkers van FIDO2 in het achterhoofd hielden en voorkomen hebben: de sticks en ook de TPM’s gebruiken hun geheime sleutel om voor elke dienst een afzonderlijke publieke sleutel af te leiden. Daar gebruiken ze de url van de dienst voor.

Elke aanbieder krijgt dus zijn eigen openbare sleutel te zien, conclusies over accounts bij andere aan­bieders zijn dus niet te trekken.

2FA implementeren

Mijn werkgever wil dat ik als ontwikkelaar een door ons ontwikkelde applicatie beveilig met een tweede factor. Waar moet ik op letten en waar moet ik beginnen?

Het beste is om je te beperken tot TOTP en FIDO2. Op die manier bereik je veel gebruikers en beschik je over veilige procedures. Voor sms-codes heb je een sms-dienstverlener nodig en betaal je voor een betrekkelijk onveilige methode een aardige som bij veel gebruikers.

Voordat je begint met FIDO2 en TOTP in je eigen applicatie in te bouwen, moet je overwegen of het integreren van een tussenliggende authenticatiedienst een goed idee zou kunnen zijn.

Op die manier kunnen webtoepassingen worden beveiligd met een tweede factor met de opensource software Authelia zonder dat daar programmeerwerk aan te pas komt.

Als je de functie zelf wilt integreren, begin dan niet vanaf nul. Bij cryptografische functies moet je altijd vertrouwen op beproefde bibliotheken die door de community getest zijn. TOTP- en WebAuthn-biblio­theken zijn beschikbaar in vele programmeertalen.

FIDO2 TOTP meerdere tweede factoren voor wachtwoorden

Veel diensten bieden een hele lijst aan tweede factoren om je account te beveiligen. (hier: Microsoft).

Maak bij het ontwerpen van het back-end niet de fout om slechts een enkele tweede factor per gebruiker toe te staan.

In een relationele database moet er een ­aparte tabel zijn met één item per ingesteld apparaat. In het front-end moet er een duidelijke instellingen­pagina zijn waar oude factoren ook verwijderd kunnen worden.

Pas dan kan een gebruiker een geschikte back-upstrategie toepassen. Het is ook het beste om gebruikers de mogelijkheid te geven elk apparaat een naam te geven.

Herinner gebruikers die maar één authenticatie­methode met twee factoren hebben ingesteld er regelmatig aan dat dit niet per se slim is, om het aantal supportverzoeken voor zoekgeraakte apparaten te verminderen.

Lees meer artikelen over security in c't 05/2024

Meer over

security

Deel dit artikel

Alieke van Sommeren
Alieke van SommerenTypen geleerd op een 8086 met DOS 5.0 en al vroeg zelf aan het pc-(ver)bouwen geslagen. Speelt graag pc-games, houdt van gadgets en klikt ook wat rond op een MacBook.

Lees ook

TrustKey T110 & T120 FIDO2-sleutel – veilig online zonder wachtwoord

De nieuwe TrustKey T110 & T120 FIDO2-sleutel beveiligen je online accounts, zelfs als je wachtwoord gelekt is. Lees de review en beveilig je gegevens.

Reiner SCT Authenticator

De Reiner SCT Authenticator beveiligt online accounts met 2FA. Dit is vaak handiger en makkelijker dan een smartphone-app gebruiken.

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er