Wietze

woensdag, 26 oktober 2022


Tweefactorauthenticatie in Drupal

Het gebeurt steeds vaker dat Databases met persoonlijke informatie of wachtwoorden van miljoenen mensen op straat komen te liggen dankzij een datalek. Hoewel dit uitermate vervelend is, zijn er gelukkig preventieve maatregelen te nemen. Deze maatregelen verhinderen dat een wildvreemde, ook al heeft deze jouw gebruikersnaam en wachtwoord, alsnog niet zomaar kan inloggen. Tweefactorauthenticatie (2FA) is hier een bekend voorbeeld van.
Drupal security
Wat is tweefactorauthenticatie?

2FA is het proces van authenticatie van de desbetreffende gebruiker bij het inloggen, bestaande uit twee verificatiemethoden. De eerste methode verwijst naar de bekende login door een gebruikersnaam en wachtwoord in te voeren. Vervolgens wordt er een extra stap ingevoerd, waarmee wordt gepoogd nader te verifiëren dat de inlogpoging daadwerkelijk door de rechtmatige eigenaar wordt verricht. Er zijn natuurlijk tal van manieren om deze tweede stap in de praktijk te brengen.
De meest populaire methoden zijn:

  • een code die per sms-bericht wordt verstuurd,
  • een zin bestaande uit willekeurig gegenereerde woorden. Een voorbeeld hiervan is de ‘seed phrase’ die nodig is om toegang te krijgen tot een crypto wallet
  • het genereren van toegangscodes in externe applicaties zoals Google Authenticator.
Implementatie van tweefactorauthenticatie in Drupal

De installatie van tweefactorauthenticatie in Drupal is niet erg lastig. Het komt neer op het installeren van verschillende modules en het configureren ervan. Hieraan voorafgaand kun je de volgende zaken onder handen nemen ter voorbereiding:

  • het veranderen van het login proces in Drupal,
  • het creëren van een nieuw blok met een login formulier,
  • het genereren van tekst toegangscodes.

Zoals je ziet, is het login proces zelf al snel aangepast en klaar voor de implementatie van 2FA. Hierover zullen wij dan ook niet verder uitweiden. Om de tweefactorauthenticatie echter succesvol te implementeren, moeten telkens de codes die in de Google Authenticator applicatie worden gegenereerd, gekoppeld zijn aan jouw website. Zoals je waarschijnlijk wel begrijpt, is dit het ietwat gecompliceerdere deel van het implementeren van 2FA. Hierbij komen dan ook enkele uitdagingen kijken.

Modules

Voordat we daar echter aan beginnen, is het van belang om duidelijk op een rijtje te hebben welke modules nodig zijn om de 2FA op rolletjes te laten draaien. Om de twee-factor authenticatie te bouwen die in dit artikel wordt gepresenteerd, heb je de volgende modules nodig:

  • Two-factor Authentication (TFA) - hoofdfunctionaliteit,
  • Key - Drupal module voor het beheren van sleutels,
  • Encrypty - zorgt ervoor dat andere modules gegevens kunnen versleutelen en ontsleutelen,
  • Real AES of een andere module die een encryptiemethode toevoegt (een lijst van deze modules staat op de site van de Encrypt module),
  • GA_login - integratie met Google Authenticator, een mobiele toepassing die codes genereert.

Inlogproces na installatie van de Two-Factor Authentication (TFA) module

Nadat je alle modules succesvol hebt geïnstalleerd, zal het inlogproces er als volgt uit gaan zien:

  1. De gebruiker vult zijn inloggegevens (login en wachtwoord) in op het formulier en bevestigt deze.
  2. Als de gegevens correct zijn, maakt Drupal een gebruikerssessie aan, die de gebruiker als geauthenticeerd identificeert.
  3. De module TFA implementeert hook_user_login.
  4. TFA controleert of de ingelogde gebruiker de tweede authenticatiemethode moet gebruiken. Zo ja, dan wordt de gebruiker uitgelogd en doorgestuurd naar de tweede authenticatiemethode.
  5. Het authenticatieproces volgt, bijvoorbeeld door het invoeren van een code uit een SMS-bericht.
  6. Als de code correct is, wordt de gebruiker opnieuw ingelogd.
Veiligheid voorop

Het installeren van 2FA reikt dus wat verder dan alleen het installeren van een paar modules, zo blijkt uit stap 6. Deze modules moeten immers op een bepaalde manier worden geconfigureerd en er moet bepaalde code worden geschreven. Hoewel we onze klanten of diens developers, die vaak wel redelijk bekend zijn met CMS-systemen die op Drupal lijken, aanmoedigen om zelf ook te leren met Drupal te werken, is het coderen van deze 2FA bij uitstek een voorbeeld dat je beter aan Drupal developers kunt uitbesteden. Je zou het bijvoorbeeld kunnen vergelijken met het aanleggen van een alarmsysteem in je bedrijfspand. Hoewel je misschien zelf wel monteurs in dienst hebt die beschikken over de nodige technische kennis, huur je hier toch liever een erkende monteur voor in. Zo weet je namelijk 100% zeker dat alles goed functioneert. Het gaat in het geval van de beveiliging van je website immers om de veiligheid van jouw databases en gebruikers. Dit is iets dat je liever aan vakmensen overlaat.

Bij VDMi beschikken wij over dat soort vakmensen. Aangezien onze developers enkel en alleen met Drupal werken, kennen zij het CMS als de besten. Bovendien biedt dit hen de mogelijkheid om zich te specialiseren op bepaalde vlakken. Zo zijn enkelen gespecialiseerd in het beveiligen van websites, terwijl anderen zich juist bezighouden met het zo zichtbaar mogelijk maken van websites in zoekmachines. Een developer is gespecialiseerd in het beveiligen van websites, kan bovendien de 2FA aanpassen aan jouw wensen door een eigen module te schrijven. Zo kunnen we jou voorzien van waterdichte beveiliging op maat.

Maak jij nog geen gebruik van twee-factor-authenticatie, maar ben je door het lezen van dit artikel enthousiast geraakt om de mogelijkheden te verkennen?

Schroom dan niet om contact met ons op te nemen! Je kunt ons ook altijd bereiken via info@vdmi.nl of door het contact formulier in te vullen hieronder.