Webbeveiliging

Tweefactorauthenticatie (2FA): definitie

Definitie

Tweefactorauthenticatie (2FA) voegt bij het inloggen een tweede bewijs van identiteit toe aan het wachtwoord: een tijdelijke code uit een app, een beveiligingssleutel of een melding op een vertrouwd apparaat. Een gestolen of geraden wachtwoord is dan niet meer genoeg om het account te openen.

Tweefactorauthenticatie (2FA), Webbeveiliging

Je hoort ook tweestapsverificatie, twee-factor-authenticatie of, ruimer, multifactorauthenticatie (MFA). Het idee is dat je niet langer alles laat afhangen van één geheim dat geraden, hergebruikt of gestolen kan worden. Zelfs als het wachtwoord in verkeerde handen valt, loopt de aanvaller vast op de tweede stap, waarvoor hij een voorwerp of een kenmerk nodig heeft dat hij niet heeft.

De drie soorten factoren

De gangbare indeling onderscheidt drie families:

  • Iets wat je weet (kennis): wachtwoord, wachtzin, pincode.
  • Iets wat je hebt (bezit): een telefoon met een app die codes genereert, een beveiligingssleutel, een chipkaart, een passkey.
  • Iets wat je bent (biometrie): vingerafdruk, gezicht.

Echte tweefactorauthenticatie vraagt om twee verschillende families. Een wachtwoord gevolgd door een geheime vraag blijft authenticatie met één factor, want beide zijn kennis.

Hoe een TOTP-code werkt

De meest gebruikte methode op websites is gebaseerd op het TOTP-algoritme, vastgelegd in RFC 6238. Bij het activeren delen de site en de app op je telefoon een geheim, meestal via een QR-code. Daarna berekenen ze allebei zelfstandig een code uit dat geheim en de huidige tijd, standaard in blokken van 30 seconden. De site hoeft de telefoon niet te bereiken: als beide berekeningen kloppen, bezit de persoon het geheim.

Inloggen met een TOTP-code in vijf stappen: de gebruiker voert zijn wachtwoord in, de site controleert het en vraagt een code, de app op de telefoon berekent de code uit een gedeeld geheim en de tijd, de gebruiker neemt de code over die 30 seconden geldig is, en de site berekent de verwachte code opnieuw voordat de sessie opent
De site verstuurt de code nooit: de telefoon en de server berekenen hem elk voor zich.
Video: “Tweestapsverificatie (2FA): Hoe, wat en waarom?” (Marketing Presis)

De methoden, van zwak naar sterk

  • Code per SMS of e-mail: beter dan niets, maar afhankelijk van de beveiliging van je telefoonnummer of mailbox. Een SMS kan worden omgeleid, bijvoorbeeld via simkaartfraude (SIM swapping).
  • TOTP-app (Google Authenticator, Microsoft Authenticator, Aegis, 2FAS...): werkt offline, zonder afhankelijkheid van de telecomprovider.
  • Beveiligingssleutels en passkeys (WebAuthn): gekoppeld aan de domeinnaam van de site, waardoor ze veel beter bestand zijn tegen phishing, terwijl een TOTP-code wel op een nepsite kan worden overgetypt.

Zorg altijd voor een noodoplossing: herstelcodes voor eenmalig gebruik, die je buiten je telefoon bewaart.

Voor WordPress

WordPress heeft geen ingebouwde tweefactorauthenticatie: de documentatie raadt aan die toe te voegen met een plugin of een identiteitsprovider, in elk geval voor beheerders. Het is het meest doeltreffende verweer tegen een brute-force-aanval en tegen credential stuffing. Een paar punten om te controleren:

  • maak het verplicht per rol, niet alleen optioneel;
  • dek ook de andere ingangen af: sinds WordPress 5.6 dienen applicatiewachtwoorden voor tools die verbinding maken met de REST API of met XML-RPC; een beschermd account zou daar zijn hoofdwachtwoord niet mogen accepteren;
  • houd de plugin up-to-date: een lek kan de tweede stap omzeilen, zoals het geval van Really Simple Security liet zien.

De tweestapsverificatie van WP Masquerade Pro gebruikt TOTP-codes die op je eigen site worden gegenereerd, zonder externe dienst, met tien herstelcodes, verplichting per rol, en voor beschermde accounts alleen applicatiewachtwoorden bij XML-RPC en de REST API. Onze gids over TOTP, herstelcodes en passkeys vergelijkt de opties uitgebreid.

Veelgemaakte fouten

  • Je telefoon kwijtraken zonder je herstelcodes te hebben genoteerd.
  • De klok van je telefoon laten afwijken: TOTP-codes worden dan geweigerd.
  • Denken dat tweefactorauthenticatie een al geopende sessie beschermt: het houdt geen XSS-lek en geen diefstal van een sessiecookie tegen.

Verder lezen

  • Artikel Zo kies en voer je tweestapsverificatie in op WordPress
  • Artikel Really Simple Security CVE-2024-10924: het lek dat 2FA omzeilde
  • Pagina Tweestapsverificatie voor WordPress

Bronnen

  1. NCSC: (Multifactor)authenticatie (externe link, opent in een nieuw tabblad)
  2. RFC 6238: TOTP, Time-Based One-Time Password Algorithm (externe link, opent in een nieuw tabblad)
  3. WordPress Advanced Administration: Brute Force Attacks (externe link, opent in een nieuw tabblad)
  4. WordPress REST API Handbook: Authentication (externe link, opent in een nieuw tabblad)

Alle definities

WordPress-beveiliging, zonder ruis

Eén e-mail wanneer het ertoe doet: nieuw waargenomen aanvallen, updates van de plugin en praktische gidsen. Geen spam, afmelden met één klik.

Begin gratis, stap over op Pro wanneer je eraan toe bent

De gratis versie verbergt WordPress al en verplaatst de inlogpagina. Pro voegt aliassen, tweestapsverificatie en bewaking toe.