Kerberos - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Kerberos est un protocole d'authentification réseau qui repose sur un mécanisme de clés secrètes (chiffrement symétrique) et l'utilisation de tickets, et non de mots de passe en clair, évitant ainsi le risque d'interception frauduleuse des mots de passe des utilisateurs. Créé au Massachusetts Institute of Technology (MIT), il porte le nom grec de Cerbère, gardien des Enfers (Κέρϐερος). Kerberos a d'abord été mis en œuvre sur des systèmes Unix.

Fonctionnement

Dans un réseau simple utilisant Kerberos, on distingue plusieurs entités :

  • le client (C), il a sa propre clé secrète KC
  • le serveur (S), il dispose aussi d'une clé secrète KS
  • le service d'émission de tickets (TGS pour Ticket-Granting Service), il a une clé secrète KTGS et connaît la clé secrète KS du serveur
  • le centre de distribution de clés (KDC pour Key Distribution Center), il connaît les clés secrètes KC et KTGS

Le client C veut accéder à un service proposé par le serveur S.

La première étape pour le client consiste à s'identifier auprès du serveur de clés (KDC). Le client a une clé secrète KC, celle-ci est également connue par le serveur de clés. Le client envoie son nom au serveur de clés et lui indique le TGS qui l'intéresse. Après vérification sur l'identité du client (cette partie dépend des implémentations, certains serveurs utilisent des mots de passe à usage unique), le serveur de clés lui envoie alors un ticket TTGS. Ce ticket autorise le client à faire des requêtes auprès du TGS.

Ce ticket TTGS est chiffré par le serveur de clés avec la clé du TGS (KTGS). Il contient notamment des informations sur le client mais également la clé utilisée pour établir la communication entre le client et le TGS. Cette clé de session, nous la noterons KC,TGS. Le client reçoit également cette clé de session KC,TGS, elle a toutefois été chiffrée avec la clé secrète KC du client.

À ce stade, le client possède un ticket TTGS (qu'il ne peut pas déchiffrer) et une clé KC,TGS.

La deuxième étape est l'envoi par le client d'une demande de ticket auprès du TGS. Cette requête contient un identifiant (des informations sur le client ainsi que la date d'émission) chiffré avec la clé de session KC,TGS (qui est trouvée par le client en déchiffrant les informations reçues depuis le serveur de clés avec sa clé secrète). Le client envoie aussi le ticket qui lui avait été transmis par le serveur de clés.

Le TGS reçoit alors son ticket et il peut le déchiffrer avec sa clé secrète KTGS. Il récupère le contenu du ticket (la clé de session) et peut ainsi déchiffrer l'identifiant que lui a envoyé le client et vérifier l'authenticité des requêtes. Le TGS peut alors émettre un ticket d'accès au serveur. Ce ticket est chiffré grâce à la clé secrète du serveur KS. Le TGS envoie aussi au client une autre clé de session KC,S pour les communications entre le serveur final et le client. Cette seconde clé de session a été chiffrée à l'aide de la clé KC,TGS connue à la fois par le TGS et le client.

La troisième étape est le dialogue entre le client et le serveur. Le client reçoit le ticket pour accéder au serveur ainsi que l'information chiffrée contenant la clé de session entre lui et le serveur. Il déchiffre cette dernière grâce à la clé KC,TGS. Il génère un nouvel identifiant qu'il chiffre avec KC,S et qu'il envoie au serveur accompagné du ticket.

Le serveur vérifie que le ticket est valide (il le déchiffre avec sa clé secrète KS) et autorise l'accès au service si tout est correct.

Page générée en 0.025 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales | Partenaire: HD-Numérique
Version anglaise | Version allemande | Version espagnole | Version portugaise