Fonctionnement de Kerberos

Vous connaissez à présent quelques termes propres à Kerberos. Voici une explication simplifiée du fonctionnement d'un système d'authentification Kerberos :

Sur un réseau "normal" utilisant des mots de passe pour authentifier les utilisateurs, lorsqu'un utilisateur demande un service réseau nécessitant une authentification, il est invité à entrer son mot de passe. Celui-ci est transmis sous forme de texte en clair via le réseau, et l'accès au service réseau est autorisé.

Comme mentionné plus haut, le problème central résolu par Kerberos a trait à la manière d'utiliser les mots de passe d'authentification sans qu'ils transitent sur le réseau. Sur un réseau "kerbérisé", la base de données Kerberos contient les principaux et leurs clés (pour les utilisateurs, les clés sont dérivées des mots de passe). La base de données Kerberos contient également des clés pour tous les services réseau.

Lorsqu'un utilisateur d'un réseau "kerbérisé" se connecte sur son poste de travail, son principal est envoyé au KDC comme une demande de TGT. Cette demande peut être émise par le programme de connexion (de sorte qu'elle est transparente pour l'utilisateur) ou par le programme kinit une fois l'utilisateur connecté.

Le KDC vérifie la présence du principal dans sa base de données. Si le principal est trouvé, le KDC crée un TGT, le crypte à l'aide de la clé de l'utilisateur, puis le renvoie à ce dernier.

Le programme de connexion ou kinit décrypte le TGT à l'aide de la clé de l'utilisateur (qu'il recompose à partir du mot de passe). Défini pour expirer après un certain laps de temps, le TGT est stocké dans un cache de certificats d'identité. Un délai d'expiration est défini de manière à ce qu'un TGT compromis ne puisse être utilisé que pendant une certaine période de temps, généralement de huit heures (à la différence d'un mot de passe compromis qui peut être utilisé tant qu'il n'a pas été modifié). L'utilisateur n'a pas à entrer à nouveau son mot de passe tant que le TGT n'a pas expiré ou tant qu'il ne se déconnecte pas.

Lorsque l'utilisateur doit accéder à un service réseau, le TGT demande un ticket au TGS (Ticket Granting Service, service d'émission de tickets) fonctionnant sur le KDC. Le TGS émet un ticket pour le service souhaité, qui permet d'authentifier l'utilisateur.

Bien entendu, cette explication est très sommaire. Pour une explication plus approfondie du fonctionnement de Kerberos, reportez-vous à la la section intitulée Sources d'informations sur Kerberos.

NoteRemarque
 

Le bon fonctionnement de Kerberos dépend de certains services réseau. Premièrement, Kerberos a besoin d'une (vague) synchronisation d'horloge entre les ordinateurs du réseau. Si vous n'avez pas installé de programme de synchronisation d'horloge pour le réseau, vous allez devoir le faire. Etant donné que certains aspects de Kerberos reposent sur le DNS (Domain Name Service), veillez à ce que les entrées DNS et les hôtes sur votre réseau soient tous correctement configurés. Pour plus d'informations sur ces questions, reportez-vous au Kerberos V5 System Administrator's Guide, disponible aux formats PostScript et HTML dans /usr/share/doc/krb5-server-numéro_de_version/.