Beveilig jouw social intranet beter | Twee-weg authenticatie in jouw (Drupal) systeem

16 Dec 2015

Joris Snoek - Business Dev
+31 (0)20 - 261 14 99

Wellicht wel eens van gehoord: ‘twee-weg authenticatie’. Als je actief bent op Facebook, Twitter of LinkedIn heb je het sowieso wel eens gezien: er is je vast wel eens gevraagd om je telefoonnummer in te geven.

In eerste instantie was ik daar huiverig voor, omdat ‘ze’ dan álles van je weten. Maar inmiddels zijn social media accounts erg belangrijk geworden; je wilt niet dat iemand relatief makkelijk jouw account hackt en je identiteit op Facebook, Twitter of LinkedIn kan aannemen.

Vandaar dat ik inmiddels mijn telefoonnummer bij alledrie heb ingevoerd. Als ik nu mijn wachtwoord wil wijzigen, zal ik dat moeten bevestigen middels een verificatiecode, die naar mijn telefoonnummer wordt gestuurd. Iemand die kwaad wil heeft jouw telefoon niet (als het goed is), waardoor de kans dat je account gehackt wordt - door het raden en vervolgens wijzigen van je wachtwoord - geminimaliseerd wordt.

Two-factor authentication bij bijvoorbeeld Facebook

Deze manier van extra beveiliging heet ‘two-factor authentication’ / ‘twee weg authenticatie’. Om als voorbeeld Facebook te nemen: als je inlogt dan is de standaard verificatie een gebruikersnaam en wachtwoord, iets wat je wéét. De tweede stap is authenticatie met iets wat je hébt, zoals een smartphone, een vingerscanner, of een bank-cardreader.

Dit hoeft niet alleen gebruikt te worden bij het wijzigen van wachtwoorden, maar kan ook als extra beveiliging bij het inloggen van bijvoorbeeld jouw social intranet gebruikt worden:

  1. Voer je gebruikersnaam en wachtwoord in
  2. Het social intranet stuur je een sms met verificatiecode
  3. Voer de verificatiecode in, in het social intranet
  4. Ingelogd

Drupal social intranet?

Gebruik je een social intrant gebouwd op Drupal? Dan is hier een module voor beschikbaar: Two-factor Authentication- TFA. Deze module faciliteert de basis voor twee weg authenticatie in Drupal:

  • Kies welke oplossing, zoals tijd-gebaseerde eenmalige wachtwoorden.
  • Sms verificatie codes.
  • Vooraf gegenereerde codes.
  • Integratie met externe services als Authy of Duo.

Verder features van de module:

  • Pluggable: ondersteunt meerdere manieren van twee weg authenticatie en kan tegelijk werken met meerdere externe services
  • Instelbaar: ondersteunt fallback methodes en context afhankelijke uitzonderingen
  • Ondersteunt ‘flood control’ voor brute force attacks
  • goed geteste module
  • Gevoelige data voor deze authenticatie wordt versleuteld opgeslagen met behulp van de PHP extentie mcrypt.

Voorbeeld: installatie Two-factor Authentication in Drupal social intranet OpenLucius

Om te starten, installeer volgende modules in OpenLucius:

  1. Two-factor Authentication (TFA): de basis module welke alleen een API bevat
  2. TFA Basic plugins: basis TFA plugins die volgende onderdelen bevat:
  • SMS: uitserveren een verificatie sms via externe service Twilio.
  • TOTP: een “Time-based One Time Password plugin” maakt gebruik van PHP_Gansta\GoogleAuthenticator PHP library.
  • Trusted device: een plugin die ervoor zorgt dat een eenmaal ingelogde browser wordt gekenmerkt als ‘vertrouwd’. Zodat de volgende keer niet nóg een keer via de twee-weg ingelogd hoeft te worden, maar alleen één-weg: invoeren gebruikersnaam en wachtwoord.

1. Configureer de Two-factor Authentication

Ik ga in dit voorbeeld voor de TOTP, omdat die gratis is. Zoals eerder gezegd kan je ook sms verificatie inbouwen, maar dan zul je een externe betaalde service moeten aanschaffen.

Als je de module geïnstalleerd hebt, ga dan naar /admin/config/people/tfa:

  1. Schakel Twee-weg authenticatie in
  2. TOTP kies ik als de standaard. Dit is dus een variant waarbij je geen externe betaalde services hoeft te integreren.
  3. Schakel ‘recovery codes’ in als fallback.
  4. Schakel ‘Trusted Browsers’ in, als je eenmaal een keer ingelogd bent via een bepaalde browser en de twee-traps authenticatie dan kan je daarna inloggen in betreffende browser middels één-trap: gebruikersnaam en wachtwoord.
  5. Gebruikers met deze rollen zijn verplicht een twee-weg authenticatie te activeren. Ik heb alle rollen, dus iedereen ingeschakeld.

2. Activeer de twee-weg authenticatie bij een gebruiker

Installeer Google Authenticator op je smartphone

Om deze TOTP te gebruiken kan je gebruik maken van de gratis app van Google: Google Authenticator. Download en installeer die op je smartphone.

3. Configureer een nieuwe gebruiker:

  • Voeg een gebruiker toe.
  • Navigeer naar die gebruiker en klik op de tab ‘security’, klik daar op ‘set up application’. Het volgende scherm verschijnt:

  • Ga naar je Google Authenticator app en kies voor ‘scan barcode’:

  • Scan de barcode met je smartphone camera, zodat je een verificatiecode krijgt, vul die in.
  • Bij het volgende scherm ‘recovery codes’ kies voor nu even ‘skip’.
  • Je hebt je twee-weg-authenticatie ingesteld:

4. Inloggen met twee-weg authenticatie

Zodra ik met de zojuist ingesteld account inlog, dan zal er gevraagd worden om een extra verificatie code, die kan ik uitlezen van mijn smartphone:

Voer die in en that’s it! Je ziet nu dat er een twee-weg-verificatie tot stand is gekomen:

  1. Invoeren van iets wat je weet: gebruikersnaam en wachtwoord
  2. Invoeren van iets wat je hebt: een code vanaf je smartphone.

Wat dus een extra optimalisatie in beveiliging van jouw social intranet doorvoert.

Gerelateerde modules

Comments

Nóg meer
kennis nodig?

Check ons ons blog archief >