Kerberos biedt geheime sleutelauthenticatie en veilige distributie via een geavanceerd systeem waarbij een vertrouwde derde partij, het Key Distribution Center (KDC), en het gebruik van cryptografische technieken betrokken zijn. Hier is een overzicht:
1. Authenticatie met geheime sleutel:
* Symmetrische codering: Kerberos is sterk afhankelijk van symmetrische encryptie, wat betekent dat zowel de client als de server een geheime sleutel delen. Deze sleutel wordt *nooit* transparant verzonden. Alle communicatie wordt gecodeerd met behulp van deze gedeelde sleutel. Dit waarborgt vertrouwelijkheid en integriteit.
* Ticketverleningsticket (TGT): De kern van Kerberos is de TGT. Wanneer een client zich voor het eerst authenticeert bij het KDC, bewijst deze zijn identiteit (meestal met behulp van een wachtwoord). Het KDC genereert vervolgens een sessiesleutel (een unieke, tijdelijke sleutel) en codeert deze sleutel met behulp van de langetermijngeheime sleutel van de klant (afgeleid van het wachtwoord). Deze gecodeerde sessiesleutel wordt, samen met andere informatie, verpakt in de TGT. Cruciaal is dat *alleen de client de TGT* kan ontsleutelen, omdat alleen deze over de bijbehorende geheime sleutel voor de lange termijn beschikt.
* Sessiesleutels: De TGT wordt gebruikt om sessiesleutels voor individuele services te verkrijgen. De klant biedt de TGT aan bij de Ticket Granting Service (TGS), onderdeel van het KDC, om een *serviceticket* te verkrijgen. Dit ticket bevat een sessiesleutel die wordt gedeeld tussen de klant en de specifieke service waartoe deze toegang wil hebben. Opnieuw wordt deze sessiesleutel versleuteld, dit keer met behulp van een sleutel die is afgeleid van de TGT.
* Wederzijdse authenticatie: Het proces omvat doorgaans wederzijdse authenticatie. De cliënt bewijst zijn identiteit aan de KDC, en de KDC bewijst zijn identiteit aan de cliënt door de TGT te versleutelen met de geheime sleutel voor de lange termijn van de cliënt. Op dezelfde manier bewijst de TGS, wanneer de klant een serviceticket aanvraagt, zijn identiteit door het serviceticket te coderen met behulp van de sessiesleutel van de TGT. Ten slotte bewijst de dienst zijn identiteit aan de klant door een bericht te versleutelen met behulp van de sessiesleutel uit het serviceticket.
2. Veilige distributie:
* Gecodeerde communicatie: Alle communicatie tussen de client, KDC en service is gecodeerd. De TGT- en servicetickets zijn gecodeerd, waardoor afluisteren en manipulatie wordt voorkomen. Het wachtwoord van de klant wordt nooit via het netwerk verzonden; alleen de cryptografische hash is dat.
* Betrouwbare derde partij: Het KDC treedt op als een vertrouwde derde partij. Het is verantwoordelijk voor het veilig opslaan en beheren van de geheime sleutels voor de lange termijn van klanten en diensten. Deze centrale autoriteit vereenvoudigt het sleutelbeheer in vergelijking met een gedistribueerd systeem waarbij elke client en server de sleutels voor elkaar zouden moeten beheren.
* Tijdsynchronisatie: Kerberos vertrouwt op gesynchroniseerde klokken om replay-aanvallen (waarbij een aanvaller een eerder vastgelegd ticket opnieuw speelt) te voorkomen. De tickets hebben een beperkte levensduur (geldigheidsperioden), waardoor tijdgevoelige authenticatie wordt afgedwongen.
Samenvattend beveiligt Kerberos authenticatie en sleuteldistributie door:
* Gebruik van symmetrische codering om alle communicatie te beschermen.
* Het inschakelen van een vertrouwde derde partij (KDC) om sleutels te beheren.
* Gebruik van in de tijd beperkte tickets om replay-aanvallen te verminderen.
* Implementatie van wederzijdse authenticatie om identiteiten aan beide kanten te bevestigen.
Deze combinatie van technieken zorgt ervoor dat alleen geautoriseerde klanten toegang hebben tot specifieke diensten, en dat de communicatie tussen hen vertrouwelijk en fraudebestendig blijft. |