Passer au contenu

Kerberos : le chien de garde à trois têtes

Avec Kerberos V5, le MIT fournit en open source un élément clé permettant de garantir la sécurité de systèmes d’information distribués. Conçu dans un esprit de simplicité, il reprend la syntaxe de commandes Unix traditionnelles.

Kerberos V5 est un système d’authentification développé par l’université de Berkeley sous le contrôle du MIT (Massachusetts Institute of Technology). Le nom de ce système provient de la figure mythologique grecque du chien de garde à trois têtes qui garde l’entrée des enfers. Kerberos V5 gère les authentifications et le chiffrement des communications entre deux points quelconques reliés par un réseau IP. Il fournit ainsi un composant essentiel dans la sécurité globale du système d’information, y compris au sein même de l’entreprise, c’est-à-dire une fois passé un éventuel coupe-feu. Une récente étude révèle, à ce propos, que près de 50 % des intrusions et des violations sont opérées depuis le c?”ur même des entreprises.

Disponible en versions commerciales

Kerberos est disponible en open source (téléchargeable depuis le site Internet du MIT). Cependant, certains éditeurs, dont Microsoft, proposent des versions commerciales (et donc payantes) de ce système. Ces logiciels respectent de manière générale les principes de fonctionnement du code source original qui est maintenu par le MIT. Kerberos a été conçu dans un esprit de simplicité. Lorsqu’il n’est pas incorporé dans un logiciel commercial, la plupart de ses commandes reprennent la syntaxe des commandes traditionnelles d’Unix.Avec Kerberos, un client (un utilisateur ou un service quelconque, par exemple) commence une session en émettant une demande de ticket au sous-système KDC (centre de distribution de clés) par le biais du programme kinit. Après vérification de son identité, et en particulier de la validité de son mot de passe, le KDC produit un ticket spécial, le TGT (Ticket-Granting Ticket), à l’attention du client du système Kerberos. Il encode alors ce ticket générique à l’aide du mot de passe fourni par le client lui-même (lors de sa demande de ticket transmise au KDC). Le client peut ainsi décoder le TGT à l’aide de ce même mot de passe. Une fois correctement décodé, le client conserve le TGT qui garantit son identité vis-à-vis de Kerberos.Le TGT, qui expire à une date et à une heure déterminées, permet au client d’obtenir d’autres tickets associés à des permissions spéciales d’accès à d’autres services (TGS pour Ticket-Granting Service). Une fois le TGT obtenu, la manipulation des tickets additionnels est totalement transparente pour l’utilisateur du système Kerberos. Par défaut, la durée de validité de ce TGT est fixée à 10 heures. Naturellement, cette durée peut être limitée ou étendue selon les besoins. Mais, une fois obtenu, le TGT reste valable pendant toute la durée de la session et aucun autre mot de passe ne sera demandé.C’est pourquoi, il convient de protéger l’accès à chaque poste de travail afin d’éviter qu’un intrus puisse usurper l’identité d’une personne détenant un TGT encore valide. Deux options sont alors possibles. Soit l’utilisateur se déconnecte et efface explicitement ses tickets (grâce, par exemple, à la commande kdestroy) lorsqu’il quitte son poste de travail, soit il utilise un écran de veille qui est lui-même protégé par un mot de passe. Les tickets d’authentification délivrés par Kerberos sont associés à des composants spécifiques du système d’information.

Accéder à un poste distant

Ces composants, appelés Principal, sont identifiés par un nom unique composé de trois parties. La structure primaire correspond au nom d’utilisateur (username) ou à l’identité du poste de travail (host) lorsque le Principal désigne l’ordinateur. La deuxième partie du nom, l’instance, est une chaîne de caractères optionnelle qui qualifie la structure primaire. L’instance permet, par exemple, de définir le rôle que l’utilisateur envisage de tenir au cours de sa session (administration, visiteur, etc.). Sinon, cette zone contient le nom de l’ordinateur concerné. Enfin, la troisième partie, l’extension, permet de spécifier un nom de domaine. Naturellement, une même personne peut librement solliciter Kerberos afin d’obtenir plusieurs TGT associés à plusieurs noms de domaine. Lors de sa connexion au système, l’utilisateur demande au KDC de produire un TGT capable de générer des tickets additionnels (TGS). Cette option lui permet de rendre ces tickets transmissibles à d’autres ordinateurs (avec le même nom de domaine). Dès lors, sous réserve de disposer des droits d’accès nécessaires, ceux-ci pourront être connectés à des ordinateurs distants (par exemple, en utilisant la fonction rlogin ou Telnet). Kerberos présentera alors ce TGT au système distant puis demandera au KDC distant de produire un ticket additionnel spécifique. Cette opération sera mise en ?”uvre de manière totalement transparente pour l’utilisateur qui ne saisira son mot de passe Kerberos qu’une seule fois. À tout instant, il pourra obtenir la liste de ses tickets en cours de validité grâce à la commande klist. Pour finir, même s’il est fiable, Kerberos possède néanmoins quelques faiblesses. Ainsi, un pirate peut utiliser d’anciens authentifiants et réutiliser les tickets, soit durant leur période de validité, soit en modifiant les horloges des ordinateurs en jeu. Autre attaque possible, un hacker peut remplacer tous les logiciels clients par une version qui réalise les protocoles Kerberos et enregistre les mots de passe.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Laurent Maury