Uitleg
Verificatie vs. Autorisatie
Authenticatie (verificatie): Bevestigen dat een gebruiker is wie hij beweert te zijn. Methoden zijn onder andere:
- Wachtwoorden: Gebruikers kiezen een geheim wachtwoord. Eenvoudig, maar vatbaar voor sterke/brute-force aanvallen als niet goed ingericht.
- Multi-factor authenticatie (MFA): Combineert iets dat je weet (wachtwoord) met iets dat je hebt (smartphone-app, SMS-code) of iets dat je bent (biometrie).
- Biometrie: Vingerafdruk, gezichtsherkenning of irisscan. Comfortabel, maar kan privacyrisico’s en false positives/negatives hebben.
Autorisatie: Na succesvolle authenticatie bepaalt het systeem welke resources en acties een gebruiker mag uitvoeren. Veelgebruikte modellen:
- Role-Based Access Control (RBAC): Gebruikers krijgen rollen, en rollen krijgen permissies. Eenvoudig beheer bij groeiende aantallen rechten.
- Attribute-Based Access Control (ABAC): Beslissingen op basis van attributen (tijdstip, locatie, type apparaat) naast gebruikerskenmerken.
Wachtwoordbeveiliging
-
Sterkte eisen: Minimaal 8-12 tekens, combinatie van hoofdletters, cijfers en speciale tekens.
-
Hashing en salting: Sla wachtwoorden nooit in platte tekst op. Gebruik een cryptografische hashfunctie (bijvoorbeeld bcrypt of Argon2) en voeg een unieke salt per wachtwoord toe om rainbow-table aanvallen te voorkomen.
-
Opslag en beleid: Denk aan periodieke reset, lockout na mislukte pogingen en geblokkeerde accounts na verdachte activiteiten.
MFA en moderne methoden
-
SMS- of e-mailcodes: Gemakkelijk, maar kwetsbaar voor SIM-swaps of onderschepping.
-
TOTP-apps (Time-based One-Time Password): Google Authenticator, Authy. Veiliger omdat codes lokaal gegenereerd worden.
-
Push-notificaties: Gebruiksvriendelijk: een push naar de telefoon ter bevestiging.
-
WebAuthn en FIDO2: Standaarden voor wachtwoordloze authenticatie met hardware tokens (zoals YubiKey) of biometrie.
Autorisatiemodellen
-
RBAC: Eenvoudig in te richten: definieer rollen zoals “student”, “docent” en “beheerder”. Wijs per rol rechten toe (bijv. lezen, schrijven, beheren).
-
ABAC: Complexer, biedt fijnmazige controle. Voorbeeld: alleen docenten mogen lesmateriaal bewerken én alleen binnen werktijden.
-
Least privilege: Geef gebruikers altijd de minimaal noodzakelijke rechten.
Beveiligingspatronen en anti-patronen
-
Fail-secure vs. fail-open: Bepaal hoe je systeem reageert bij fouten. Bij fail-secure is toegang geblokkeerd; bij fail-open blijft het open, wat risico’s geeft.
-
Session management: Gebruik secure flags op cookies, stel een redelijke sessietimeout in en forceer herauthenticatie voor kritieke acties.
-
Password reset flows: Vereisen kennisvragen of extra verificatie om social engineering te voorkomen.
Praktijkvoorbeeld
Stel je bouwt een onderwijsportal:
-
Gebruiker logt in met username+password (bcrypt-hashing).
-
Bij gevoelige data (cijfers, persoonlijke gegevens) is MFA verplicht via TOTP-app.
-
De portal werkt met RBAC:
-
Student: Bekijkt opdrachten en resultaten.
-
Docent: Plaatst opdrachten, beoordeelt werk.
-
Beheerder: Beheert gebruikers en systeeminstellingen.
-
-
Session cookies bevatten een secure en HttpOnly-flag en verlopen na 30 minuten inactiviteit.
-
Voor het resetten van wachtwoord krijgt de gebruiker een e-mail met een eenmalige link die na 10 minuten verloopt.