AccueilđŸ‡«đŸ‡·Chercher

Kerberos (protocole)

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, il porte le nom grec de CerbĂšre, gardien des Enfers (ΚέρÎČÎ”ÏÎżÏ‚). Kerberos a d'abord Ă©tĂ© mis en Ɠuvre sur des systĂšmes Unix. Kerberos dialogue en UDP sur le port 88 par dĂ©faut.

Principe du protocole Kerberos
Principe du protocole Kerberos

Composants et termes

Realm

Le Realm (royaume) est un domaine administratif et non physique. Il dĂ©finit les limites de contrĂŽle d’un serveur d’authentification. Un utilisateur, un ordinateur hĂŽte ou un service appartiennent tous Ă  un realm. Cependant il est possible d’établir des relations entre realm pour permettre l’authentification entre utilisateurs et services de realm diffĂ©rents.

Le nom du royaume est couramment Ă©crit en lettres majuscules (EXAMPLE.COM) et peut ĂȘtre identique au nom de domaine d’une organisation. Cependant le nom d’un hĂŽte est toujours indiquĂ© avec son nom de domaine complet en plus du nom du royaume : host/server.example.com@EXAMPLE.COM.

Centre de distribution de clé (KDC)

Le centre de distribution de clĂ© est un serveur composĂ© de trois Ă©lĂ©ments : la base de donnĂ©es, le serveur d’authentification (AS) et le serveur d’attribution des tickets (TGS).

Le serveur d’authentification met en place un secret partagĂ© (TGT) entre un utilisateur et le KDC. Ce secret est temporaire et est Ă©tabli grĂące au mot de passe de l’utilisateur qui permet de prouver son identitĂ©. Les services sont Ă©galement authentifiĂ©s auprĂšs de l’AS mais la clĂ© n’expire pas.

Le TGS distribue des tickets de session entre les utilisateurs authentifiĂ©s et les services. L’utilisateur ne communique pas son mot de passe avec le service directement.

Fonctionnement

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

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

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

Principe de fonctionnement de Kerberos

La premiĂšre Ă©tape pour le client consiste Ă  s'identifier auprĂšs du centre de distribution de clĂ©s (KDC). Le client a une clĂ© secrĂšte , celle-ci est Ă©galement connue par le serveur de distribution. Le client envoie son nom au serveur de distribution 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 distribution lui envoie alors un ticket . Ce ticket autorise le client Ă  faire des requĂȘtes auprĂšs du TGS.

Ce ticket est chiffré par le serveur de distribution avec la clé du TGS (). 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 . Le client reçoit également cette clé de session , elle a toutefois été chiffrée avec la clé secrÚte du client.

À ce stade, le client possĂšde un ticket (qu'il ne peut pas dĂ©chiffrer) et une clĂ© .

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 (qui est trouvĂ©e par le client en dĂ©chiffrant les informations reçues depuis le serveur de distribution avec sa clĂ© secrĂšte). Le client envoie aussi le ticket qui lui avait Ă©tĂ© transmis par le serveur de distribution.

Le TGS reçoit alors son ticket et il peut le dĂ©chiffrer avec sa clĂ© secrĂšte . 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 . Le TGS envoie aussi ce ticket chiffrĂ© avec la clĂ© secrĂšte du serveur et la clĂ© de session chiffrĂ©e Ă  l'aide de la clĂ© au client pour les communications entre le serveur final 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é . Il génÚre un nouvel identifiant qu'il chiffre avec 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 ) et autorise l'accÚs au service si tout est correct.

Sécurité

Une fois qu'un client s'est identifiĂ©, celui-ci obtient un ticket (gĂ©nĂ©ralement, un fichier texte - mais son contenu peut aussi ĂȘtre stockĂ© dans une zone de mĂ©moire sĂ©curisĂ©e). Le ticket joue le rĂŽle d'une carte d'identitĂ© Ă  pĂ©remption assez courte, huit heures gĂ©nĂ©ralement. Si nĂ©cessaire, celui-ci peut ĂȘtre annulĂ© prĂ©maturĂ©ment. Sous les systĂšmes Kerberos comme celui du MIT, ou de Heimdal, cette procĂ©dure est gĂ©nĂ©ralement appelĂ©e via la commande « kdestroy ».

La sĂ©curitĂ© de Kerberos repose sur la sĂ©curitĂ© des diffĂ©rentes machines qu'il utilise. Une attaque sur le serveur de clĂ©s serait dramatique car elle pourrait permettre Ă  l'attaquant de s'emparer des clĂ©s privĂ©es des clients et donc de se faire passer pour eux. Un autre problĂšme qui pourrait survenir sur la machine du client est le vol des tickets. Ils pourraient ĂȘtre utilisĂ©s par une tierce personne pour accĂ©der aux services offerts par les serveurs (si la clĂ© entre le client et le serveur est connue).

L'expiration du ticket permet de limiter les problĂšmes liĂ©s au vol des tickets. De plus, un ticket peut contenir l'adresse IP du client et le ticket n'est alors valable que s'il est employĂ© depuis cette IP (ce champ est toutefois optionnel dans Kerberos, qui peut tout Ă  fait ĂȘtre utilisĂ© sur un rĂ©seau attribuant dynamiquement les IP au travers de DHCP). Une attaque sur les identifiants Ă©chouera car Kerberos leur ajoute un Ă©lĂ©ment. Cela Ă©vite les attaques par renvoi d'identifiants qui auraient Ă©tĂ© interceptĂ©s. Les serveurs conservent l'historique des communications prĂ©cĂ©dentes et peuvent facilement dĂ©tecter un envoi frauduleux.

L'avantage de Kerberos est de limiter le nombre d'identifiants et de pouvoir travailler sur un réseau non sécurisé. Les identifications sont uniquement nécessaires pour l'obtention de nouveaux tickets d'accÚs au TGS.

Actuellement, deux implémentations de Kerberos version 5 existent pour OpenLDAP :

  • MIT krb5
  • Heimdal

Similitudes

Le fonctionnement de Kerberos est calqué sur ce que pratiquent les ouvreurs et ouvreuses des théùtres et des cinémas :

  • au moment d'accĂ©der Ă  la sĂ©ance de cinĂ©ma ou de spectacle, le client paye son ticket qui l'authentifie.
  • au point d'accĂšs de la salle, l'ouvreur ou l'ouvreuse dĂ©chire le ticket en deux, conserve une partie et laisse l'autre au client.
  • en cas de contrĂŽle, on vĂ©rifie si les deux morceaux du ticket se recollent.
  • la durĂ©e de vie du ticket est limitĂ©e Ă  une sĂ©ance.

Utilisations

L'identification Kerberos peut ĂȘtre utilisĂ©e par ces protocoles/applications :

Implémentations

Il existe plusieurs implémentations libre ou propriétaire du protocole Kerberos. L'implémentation propriétaire la plus courante est la version de Microsoft Kerberos v5 intégré à Active Directory. Les principales implémentations libres sont les suivantes :

La version MIT Kerberos est choisie par les distributions Linux « Enterprise » comme Red Hat ou SUSE comme l'unique version Kerberos acceptée pour les paquets supportés[1]. Le projet Samba a initialement choisi Heimdal comme librairie Kerberos pour le support Active Directory. Il y a actuellement des efforts pour remplacer Heimdal par MIT Kerberos. La premiÚre version de Samba compilé avec MIT Kerberos est la version 4.7[2].

Voir aussi

Articles connexes

Notes

Liens externes



Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.