Wat is op tokens gebaseerde authenticatie?

Op tokens gebaseerde authenticatie is een protocol waarmee gebruikers hun identiteit kunnen bevestigen, waarvoor ze een unieke toegangstoken ontvangen. Zolang een token geldig is, hebben gebruikers toegang tot de website of app waarvoor de token is uitgegeven, zodat ze niet elke keer inloggegevens hoeven in te voeren wanneer ze naar dezelfde webpagina, app of andere resource gaan die met die token beveiligd is.

Authenticatietokens werken net zoals een afgestempeld ticket. De gebruiker behoudt toegang zolang de token geldig is. Zodra de gebruiker uitlogt bij een app of deze afsluit, is de token niet meer geldig.

Op tokens gebaseerde authenticatie verschilt van traditionele op wachtwoorden of servers gebaseerde authenticatietechnieken. Tokens bieden een tweede beschermingslaag en beheerders hebben uitgebreide controle over elke actie en transactie.

Maar voor het gebruik van tokens is wel wat kennis over coderen nodig. De meeste ontwikkelaars hebben de techniek snel in de vingers, maar dat geldt niet voor iedereen.

Dus laten we aan de slag gaan zodat u kunt bepalen of het gebruik van tokens iets voor u en uw organisatie is. 

De geschiedenis van authenticatietokens

Authenticatie en autorisatie zijn verschillende maar aan elkaar verwante concepten. Voordat er authenticatietokens waren, hadden we wachtwoorden en servers. We werkten met traditionele methoden om ervoor te zorgen dat de juiste mensen op het juiste moment toegang hadden tot de juiste dingen. Maar dat was niet altijd even effectief.

Kijk bijvoorbeeld eens naar wachtwoorden. Daarbij gaat het doorgaans om:

  • Gebruikersinvoer. Iemand voert een combinatie van letters, cijfers en symbolen in.
  • Geheugen. De gebruiker moet die unieke combinatie onthouden.
  • Herhaling. Wanneer de gebruiker toegang tot iets wil hebben, moet het wachtwoord worden ingevoerd.

Diefstal van wachtwoorden komt veelvuldig voor. Een van de eerste gedocumenteerde gevallen van diefstal van wachtwoorden vond overigens al plaats in 1962. Omdat mensen niet al hun wachtwoorden kunnen onthouden, gebruiken ze trucjes zoals:

  • Alle wachtwoorden opschrijven. Losse velletjes papier vol wachtwoorden zijn een nachtmerrie voor de beveiliging.
  • Hetzelfde wachtwoord overal gebruiken. Mensen gebruiken vaak hetzelfde wachtwoord op verschillende plekken. Als dat wachtwoord ergens wordt ontdekt, maakt dat veel accounts kwetsbaar.
  • Slechts kleine wijzigingen aanbrengen. Mensen veranderen één letter of cijfer wanneer gevraagd wordt een wachtwoord bij te werken.

Voor wachtwoorden is ook serverauthenticatie vereist. Telkens wanneer de gebruiker inlogt, legt de computer de transactie vast,wat extra belasting voor het systeemgeheugen betekent.

Tokenauthenticatie is anders.

Met tokenauthenticatie verifieert een tweede service een serververzoek. Wanneer de verificatie is voltooid, stuurt de server een token en reageert de server op het verzoek.

De gebruiker moet dan misschien nog wel één enkel wachtwoord onthouden, maar de token biedt een andere vorm van toegang die veel moeilijker te stelen of te omzeilen is. En de record van de sessie neemt geen ruimte in beslag op de server. 

Drie typen authenticatietokens

Alle authenticatietokens zorgen voor toegang, maar elk type werkt net even anders.

Dit zijn drie veelvoorkomende typen authenticatietokens:

  • Aangesloten: sleutels, schijven, USB-sticks en andere fysieke devices worden op het systeem aangesloten om toegang te kunnen krijgen. Als u ooit een USB-device of smartcard hebt gebruikt om in te loggen bij een systeem, hebt u een aangesloten token gebruikt.
  • Contactloos: een device is dicht genoeg bij een server om ermee te communiceren, maar hoeft niet aangesloten te worden. De zogenaamde "magische ring" van Microsoft is een voorbeeld van dit type token.
  • Niet-aangesloten: een device kan op grote afstand communiceren met de server, ook als het niet op een ander device is aangesloten. Als u ooit uw telefoon hebt gebruikt voor tweefactor-authenticatie, hebt u dit type token gebruikt.

In alle drie deze scenario's moet een gebruiker iets doen om het proces te starten. Ze moeten een wachtwoord invoeren of een vraag beantwoorden. Maar zelfs als ze deze voorbereidende stappen perfect uitvoeren, kunnen ze geen toegang krijgen zonder hulp van een toegangstoken.

Tokenauthenticatie in vier eenvoudige stappen

Bij gebruik van een op tokens gebaseerd authenticatiesysteem hoeven gebruikers inloggegevens slechts eenmaal te bevestigen. Daarvoor krijgen ze een token terug dat toegang biedt gedurende een periode die u opgeeft.

Het proces werkt als volgt:

  • Verzoek: de persoon vraagt om toegang tot een server of beveiligde resource. Dat kan een login met een wachtwoord zijn of een ander proces dat u opgeeft.
  • Verificatie: de server stelt vast dat de persoon toegang moet hebben. Dat kan door het wachtwoord te controleren aan de hand van een gebruikersnaam of door een ander proces dat u opgeeft.
  • Tokens: de server communiceert met het authenticatiedevice, zoals een ring, sleutel, telefoon of soortgelijk device. Na verificatie stuurt de server een token naar de gebruiker.
  • Opslag: de token bevindt zich in de browser van de gebruiker terwijl het werk doorgaat.

Als de gebruiker toegang wil tot een ander deel van de server, communiceert de token opnieuw met de server. Op basis van de token wordt toegang verleend of geweigerd.

Beheerders stellen beperkingen in voor tokens. U kunt een eenmalige token instellen die onmiddellijk wordt vernietigd wanneer de gebruiker uitlogt. U kunt ook instellen dat de token zichzelf vernietigt aan het eind van een opgegeven periode.

Token Based Authentication

JSON-webtoken (JWT): een speciale vorm van een authenticatietoken

Omdat zoveel gebruikers tegenwoordig systemen openen via mobiele apps en webapps, hebben ontwikkelaars een veilige manier van authenticatie nodig die voor deze platforms geschikt is.

Om dat op te lossen, gebruiken veel ontwikkelaars JSON-webtokens (JWT's) wanneer ze tokens voor hun applicaties instellen.

Een JSON-webtoken (JWT) is een open standaard. Het eindresultaat maakt een veilige en beschermde communicatie tussen twee partijen mogelijk. Data wordt geverifieerd met een digitale handtekening en als de data via HTTP wordt verzonden, zorgt versleuteling voor de beveiliging ervan.
 

JWT's hebben drie belangrijke onderdelen.

  1. Header: in de header wordt aangegeven welk algoritme en welk type token wordt gebruikt.
  2. Payload: hier worden de uitgever van de token, de vervaltijd van de token en andere informatie gedefinieerd.
  3. Signature: hier wordt met een beveiligde handtekening gecontroleerd of het bericht tijdens de overdracht niet gewijzigd is.

Deze onderdelen zijn met codering aan elkaar gekoppeld. Het eindresultaat ziet er ongeveer zo uit.

Laat u niet van uw stuk brengen door JSON-code. Dit type codering wordt veel gebruikt wanneer entiteiten data heen en weer willen sturen. Er is veel documentatie beschikbaar. Als u geïnteresseerd bent in het gebruik van JSON-tokens maar nog nooit met deze taal hebt gewerkt, kan een hulpbron als deze van pas komen.

Voor- en nadelen van JWT's

JWT's hebben veel voordelen.

  • Grootte: tokens in deze coderingstaal zijn klein en ze worden redelijk snel tussen twee entiteiten verzonden.
  • Gemak: tokens kunnen vanaf bijna elke plek worden gegenereerd en ze hoeven niet op uw server te worden geverifieerd.
  • Controle: u kunt bepalen waar iemand toegang toe heeft, hoelang de toestemming duurt en wat de gebruiker kan doen zolang deze ingelogd is.

Er zijn ook potentiële nadelen.

  • Eén sleutel: JWT's vertrouwen op één enkele sleutel. Wordt die sleutel gehackt, dan is het hele systeem in gevaar.
  • Complexiteit: deze tokens zijn niet zo eenvoudig te begrijpen. Als een ontwikkelaar geen gedegen kennis van algoritmes met cryptografische handtekeningen heeft, kan het systeem onbedoeld gevaar lopen.
  • Beperkingen: u kunt geen berichten naar alle clients sturen en u kunt geen clients beheren vanaf de serverzijde.

Waarom zou u authenticatietokens gebruiken?

U hebt uw huidige strategie onder de loep genomen en u vindt dat het allemaal prima werkt. Waarom zou u dan nog authenticatietokens voor uw systemen nodig hebben? Ontwikkelaars die hiervoor kiezen, krijgen met heel reële voordelen te maken.

Authenticatietokens bieden veel voordelen voor beheerders van systemen die:

  • Vaak tijdelijk toegang verlenen. Uw gebruikersbestand fluctueert op basis van datum, tijd of een speciale gebeurtenis. Het telkens weer verlenen en intrekken van toegang is erg belastend. Tokens kunnen daarbij helpen.

    Beheerders van sites van universiteitsbibliotheken kunnen bijvoorbeeld baat hebben bij gebruik van tokens.

  • Specifieke toegang vereisen. Uw server verleent toegang op basis van specifieke documenteigenschappen, niet op basis van gebruikerseigenschappen. Wachtwoorden bieden niet de ruimte voor zoveel details.

    Stel u hebt een online tijdschrift. U wilt dat iedereen maar één specifiek document en geen enkel ander document kan lezen en daarop kan reageren. Tokens maken dat mogelijk.

  • Een ideaal doelwit voor hackers zijn. Uw server bevat gevoelige documenten en uw organisatie zou heel wat schade kunnen leiden als ze op straat komen te liggen. Een wachtwoord alleen biedt niet genoeg bescherming. Een stuk hardware helpt al heel wat.

Zo zijn er nog veel meer use cases van authenticatietokens. Maar wellicht heeft dit lijstje uw interesse gewekt. En hoe meer u de voordelen overweegt, hoe eerder ook u overstapt. 

Volg best practices voor authenticatietokens

Authenticatietokens zijn bedoeld om uw beveiligingsprotocollen te versterken en uw server veilig te houden. Maar ze zijn alleen maar effectief als u uw processen samenstelt met veiligheid in gedachten.

Uw authenticatietokens moeten de volgende kenmerken hebben:

  • Privé. Gebruikers kunnen geen tokenauthenticatiedevices delen of ze in andere bedrijfsafdelingen gebruiken. Net zoals ze geen wachtwoorden moeten delen, moeten ze dat ook niet doen met andere onderdelen van uw beveiligingssysteem.
  • Veilig. Communicatie tussen de token en uw server moet veilig worden uitgevoerd via HHTPS-verbindingen. Encryptie is cruciaal om tokens veilig te houden.
  • Getest. Test regelmatig uw tokens om er zeker van te zijn dat uw systeem beveiligd is en goed functioneert. Als u een probleem aantreft, los het dan meteen op.
  • Toepasselijk. Kies het juiste tokentype voor uw specifieke situatie. JWT's zijn bijvoorbeeld niet ideaal voor sessietokens. Ze kunnen kostbaar zijn en het is onmogelijk om veiligheidsrisico's als gevolg van interceptie te elimineren. Zorg dat u altijd de juiste tool voor de juiste taak kiest.

Ga bij uw keuze voor een authenticatietoken niet over één nacht ijs. Doe uw huiswerk, vraag collega's om informatie en haal er alles uit voor uw organisatie. 

Laat ons helpen

Tijdens onderzoek hoe we de toegang tot onze systemen thuis en op kantoor kunnen beveiligen, is het net zo belangrijk om mechanismen zoals op tokens gebaseerde authenticatie te implementeren om ervoor te zorgen dat alleen de juiste mensen toegang tot onze digitale resources hebben.

Ontdek hoe Okta uw wereld beter kan beveiligen.

Referenties

The World's First Computer Password? It Was Useless Too. (Januari 2012). Wired.

Microsoft Says This Magic Ring Could Make Passwords Obsolete. (Juni 2020). Small Business Trends.

JSON Web Token. (Mei 2015). Internet Engineering Task Force.

Working With JSON. Mozilla.

Security Token. Citi.

Security Token Definition. (Juni 2020). Investopedia.

Two-Factor Authentication. (Februari 2020). Explain That Stuff.

When Are Tokens Securities? Some Questions from the Perplexed. (December 2018). Harvard Law School Forum on Corporate Governance

Wilt u graag meer weten?

Okta Adaptive Multi-factor Authentication is de eerste stap op weg naar passwordless.