Basic Security
cryptografie
CERTIFICATEN

Kerberos

Single sign-on (SSO) wordt geïmplementeerd via het Kerberos-authenticatieprotocol. Binnen een computernetwerk dat gebruikmaakt van Kerberos, fungeert een centrale server als de uitgever van toegangstickets voor gebruikers tijdens het aanmeldingsproces. Deze toegangstickets stellen een computergebruiker in staat om zich vervolgens te authenticeren op elke server of service die compatibel is met het Kerberos-protocol. De geldigheid van dit ticket blijft behouden zolang de gebruiker actief is ingelogd.

Een passende analogie voor het Kerberosticket is die van een reispas. Net als een treinkaartje biedt het ticket de gebruiker de mogelijkheid om vrijelijk door het gehele netwerk te navigeren. Echter, op het moment dat de gebruiker uitlogt, vervalt de geldigheid van het ticket, en daarmee de verleende toegangsrechten.

Kerberos, ontwikkeld door het Massachusetts Institute of Technology (MIT), is een veelzijdig authenticatieprotocol dat compatibel is met de meeste computerplatforms, waaronder Windows, Unix, Linux en OS X. Het wordt vaak beschouwd als de standaardmethode voor authenticatie.

De werking van Kerberos is drievoudig: er is een client die toegang wenst, er is een service die een dienst aanbiedt, en er is een vertrouwde derde partij die bekend staat als het Key Distribution Center (KDC). Het KDC verstrekt een toegangsticket aan de client. De client kan zijn identiteit bewijzen aan de service aan de hand van dit ticket. Het KDC bestaat uit twee componenten: de Authentication Server en de Ticket Granting Server. In een typisch Microsoft Windows-netwerk fungeren de Domain Controllers als het KDC.

Net zoals we eerder hebben besproken, volgt het toegangscontroleproces in Kerberos drie stappen: identificatie, authenticatie en autorisatie. We zullen kort de stappen van het toegangscontroleproces in Kerberos bekijken.

Kerberos toegangscontroleproces

  1. Identificatie | De gebruiker maakt bekend wie hij is 
    • De gebruiker voert zijn of haar gebruikersnaam en wachtwoord in.
    • De computerclient stuurt de gebruikersnaam door naar de Key Distribution Center (KDC). (Het KDC bewaart uitsluitend de namen en de hashwaarden van de wachtwoorden, niet de wachtwoorden zelf.)
  2. Authenticatie | De KDC controleert of de gebruiker is, wie hij zegt dat hij is.
    • Het KDC raadpleegt de naam en de opgeslagen hashwaarde van het wachtwoord.
    • Het KDC genereert een sessiesleutel door deze te versleutelen met behulp van de wachtwoord-hashwaarde. Bovendien versleutelt het KDC zowel de sessiesleutel als de gebruikersnaam met het wachtwoord van de service, wat resulteert in het zogenaamde ticket.
    • Het KDC zendt zowel de versleutelde sessiesleutel als het versleutelde ticket terug
    • De computerclient decodeert uitsluitend de sessiesleutel met behulp van de hashwaarde van het ingevoerde wachtwoord. 
  3. Autorisatie | De service besluit of de gebruiker toegang tot de service moet worden verleend.
    • De computerclient maakt gebruik van de sessiesleutel om onder andere de huidige tijd te coderen (de authenticator).
    • De computerclient zendt zowel de authenticator als het ticket naar de service.
    • De service decodeert het ticket met zijn eigen wachtwoord, en verkrijgt hieruit de sessiesleutel en de gebruikersnaam.
    • De service maakt nu gebruik van de sessiesleutel om de authenticator te decoderen.
    • De service vergelijkt de gedecodeerde tijd met de actuele tijd om te controleren of deze overeenkomen, en zo wordt gevalideerd dat de sessiesleutel geldig is. Aangezien alleen de computerclient, de KDC en de service in het bezit zijn van de sessiesleutel, heerst er wederzijds vertrouwen en krijgt de gebruiker toegang tot de service.

wist-je-dat·je: Cerberus

De keuze voor de naam ‘Kerberos’ voor dit authenticatieprotocol is niet willekeurig gemaakt. De naam ‘Kerberos’ vindt zijn oorsprong in de Griekse mythologie, waar het verwijst naar ‘Cerberus’. Cerberus was een driekoppige hond met een slangenstaart, belast met de bewaking van de onderwereld. Zijn taak was om ervoor te zorgen dat de doden niet terugkeerden naar de wereld van de levenden en dat levende wezens niet in de rijk van de doden konden binnendringen.

Het Kerberos-protocol weerspiegelt symbolisch de drie betrokken partijen: de computerclient, het Key Distribution Center en de service, als een analogie naar de drie koppen van Cerberus uit de Griekse mythologie. Deze mythologische hond bewaakte eveneens de grens tussen twee werelden, wat een relevante parallel vormde met het beveiligingsprincipe van het protocol. Het is dan ook omwille van deze symbolische overeenkomsten dat de ontwikkelaars bij het MIT hebben gekozen voor de naam ‘Kerberos’ voor hun authenticatieprotocol.

In ons eerdere overzicht van het Kerberos-protocol werd beloofd dat we een beknopte behandeling zouden geven, hoewel het protocol zelf behoorlijk complex is. Toch is het van cruciaal belang dat elke ICT Security-professional bekend is met deze basisprincipes.

Een opvallend kenmerk van het Kerberos-protocol, met name in een Windows Server-netwerk, is dat het wachtwoord nooit over het netwerk wordt verzonden, en zelfs de hashwaarde van het wachtwoord blijft veilig. Deze rigoureuze procedures zijn een van de redenen waarom het Kerberos-protocol als zeer veilig wordt beschouwd en waarom het door alle belangrijke besturingssystemen wordt omarmd.

De huidige iteratie van Kerberos is versie 5, die symmetrische cryptografie gebruikt, specifiek AES. In voorgaande versies werd DES gebruikt.