Twee-factor authenticatie (2FA) en MFA.
Waarom één wachtwoord niet genoeg is en hoe je je applicatie echt beveiligt.
Wat is twee-factor authenticatie?
Twee-factor authenticatie (2FA) voegt een extra beveiligingslaag toe bovenop het traditionele wachtwoord. In plaats van alleen “iets wat je weet” (je wachtwoord) vraagt 2FA ook om “iets wat je hebt”; een telefoon, een hardware key of een authenticator app. Pas wanneer beide factoren kloppen, krijg je toegang.
Multi-factor authenticatie (MFA) gaat nog een stap verder en kan drie of meer factoren combineren: iets wat je weet, iets wat je hebt, en iets wat je bent (biometrie). In de praktijk worden 2FA en MFA vaak door elkaar gebruikt, maar het principe is hetzelfde: meerdere onafhankelijke verificatiestappen.
Waarom is het noodzakelijk?
Wachtwoorden alleen zijn niet veilig genoeg. Uit onderzoek blijkt dat de meerderheid van datalekken begint met gestolen of zwakke inloggegevens. Phishing, credential stuffing (hergebruikte wachtwoorden van andere lekken) en brute-force aanvallen maken accounts kwetsbaar; ongeacht hoe sterk het wachtwoord is.
Met 2FA wordt een gestolen wachtwoord waardeloos zonder de tweede factor. Zelfs als een aanvaller je wachtwoord heeft, kan die zonder je telefoon of authenticator app niet inloggen. Dit vermindert het risico op ongeautoriseerde toegang drastisch.
Voor applicaties die gevoelige data verwerken; financiële gegevens, persoonsgegevens, medische dossiers; is 2FA niet meer optioneel. De AVG verwacht “passende technische maatregelen” en 2FA is daar een logisch onderdeel van.
Een gestolen wachtwoord is slechts een kwestie van tijd. Twee-factor authenticatie is het slot op de deur dat bepaalt of het ook echt misgaat.
Methoden voor 2FA
Er zijn verschillende manieren om de tweede factor te implementeren, elk met eigen voor- en nadelen:
- TOTP (Time-based One-Time Password); Apps als Google Authenticator, Authy of Microsoft Authenticator genereren elke 30 seconden een nieuwe code. Dit is de meest gangbare en veilige methode voor webapplicaties. Geen afhankelijkheid van SMS of e-mail.
- SMS-codes; Een verificatiecode per sms. Laagdrempelig, maar kwetsbaar voor SIM-swapping en onderschepping. Wordt steeds minder aanbevolen als primaire 2FA-methode.
- E-mail-codes; Een eenmalige code per e-mail. Beter dan niets, maar als het e-mailaccount gecompromitteerd is, valt deze beveiliging weg.
- Hardware keys (FIDO2/WebAuthn); Fysieke USB-keys zoals YubiKey. De veiligste optie, phishing-proof, maar vereist een fysiek apparaat. Ideaal voor high-security omgevingen.
- Push-notificaties; Een goedkeuringsverzoek op je telefoon. Gebruiksvriendelijk, maar vereist een eigen app of integratie met een dienst als Duo.
2FA implementeren in maatwerk software
In Laravel-applicaties implementeren wij 2FA standaard via TOTP. De gebruiker scant een QR-code met een authenticator app en voert bij elke login de gegenereerde code in. Laravel biedt hier uitstekende ondersteuning voor, inclusief het veilig opslaan van recovery codes.
Bij de implementatie letten wij op:
- Recovery codes; Eenmalige backup-codes voor het geval de gebruiker de authenticator app kwijtraakt. Versleuteld opgeslagen in de database.
- Onboarding flow; Een duidelijke stap-voor-stap uitleg bij het activeren van 2FA. Niet iedereen is technisch en het moet laagdrempelig zijn.
- Verplicht vs. optioneel; Voor admin-accounts en gevoelige rollen maken we 2FA verplicht. Voor eindgebruikers kan het optioneel zijn met een duidelijke aanmoediging.
- Remember trusted devices; Optioneel een apparaat “onthouden” zodat de gebruiker niet bij elke login de code hoeft in te voeren. Met een verstandige timeout (bijv. 30 dagen).
- Rate limiting; Maximaal aantal pogingen voor de 2FA-code om brute-force te voorkomen.
Beveiliging die je achteraf toevoegt is altijd zwakker dan beveiliging die je vanaf dag één inbouwt.
Wij bouwen het standaard in
Bij Coding Agency beschouwen we 2FA niet als een nice-to-have maar als een basisvoorziening. In elke applicatie die wij bouwen met gebruikersaccounts adviseren we 2FA; en bij applicaties met gevoelige data is het standaard inbegrepen.
Meerdere van onze applicaties hebben externe beveiligingsaudits en pentests positief doorstaan, waarbij de implementatie van 2FA specifiek als goed beoordeeld werd. We bouwen security niet achteraf in, maar vanaf het eerste ontwerp.
Of het nu gaat om een intern bedrijfsportaal, een SaaS-platform of een klantomgeving met persoonsgegevens; de juiste authenticatie is de eerste verdedigingslinie. Wil je weten hoe we dit voor jouw applicatie implementeren? Neem contact op.
/Gerelateerde artikelen