19.3. Fonctionnement de Kerberos

Kerberos est différent des autres méthodes d'authentification basées sur la combinaison nom d'utilisateur/mot de passe car, au lieu d'authentifier chaque utilisateur auprès de chaque service réseau, il utilise un cryptage symétrique et un tiers digne de confiance connu sous le nom de Centre de distribution de tickets (ou KDC de l'anglais Key Distribution Center) afin d'authentifier les utilisateurs auprès d'un ensemble de services réseau. Une fois l'authentification auprès du KDC effectuée, il renvoie à l'ordinateur de l'utilisateur un ticket spécifique à cette session de sorte que tout service kerberisé puisse rechercher le ticket sur l'ordinateur de l'utilisateur plutôt que de demander à l'utilisateur de s'authentifier à l'aide d'un mot de passe.

Lorsqu'un utilisateur faisant partie d'un réseau kerberisé se connecte sur son poste de travail, son principal est envoyé au KDC dans une demande de ticket d'émission de ticket ou TGT (de l'anglais Ticket-granting Ticket) de la part du serveur d'authentification (ou AS de l'anglais Authentication Server). Cette demande peut être envoyée par le programme de connexion afin qu'elle soit transparente pour l'utilisateur ou elle peut être soumise 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 y figure, 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 le progamme kinit présent sur l'ordinateur client décrypte ensuite le TGT à l'aide de la clé de l'utilisateur (qu'il obtient à partir du mot de passe). La clé de l'utilisateur est utilisée seulement sur l'ordinateur client et n'est pas envoyée sur le réseau.

Le TGT, qui est paramétré de sorte qu'il expire après un certain laps de temps (généralement dix heures), est stocké dans le cache de certificats d'identité de l'ordinateur client. Un délai d'expiration est défini de manière à ce qu'un TGT compromis puisse être utilisé par un pirate seulement pendant une courte durée. Une fois que le TGT est émis, l'utilisateur n'a pas à redonner son mot de passe au KDC tant que le TGT n'a pas expiré ou tant qu'il ne se déconnecte pas et se connecte à nouveau plus tard.

Chaque fois que l'utilisateur doit accéder à un service réseau, le logiciel client utilise le TGT pour demander au serveur d'émission de tickets (TGS) de fournir un nouveau ticket pour ce service spécifique. Le ticket du service est alors émis et utilisé pour authentifier l'utilisateur auprès de ce service de façon transparente.

AvertissementAvertissement
 

Le système Kerberos peut être compromis chaque fois qu'un utilisateur présent sur le réseau s'authentifie auprès d'un service non-kerberisé en envoyant un mot de passe en texte en clair. Telle est la raison pour laquelle l'utilisation d'un service non-kerberisé est fortement déconseillée. Parmi de ces services figurent Telnet et FTP. L'utilisation d'autres protocoles cryptés tels que les services sécurisés OpenSSH ou SSL est certes acceptable, mais n'est pas idéale.

Ces informations n'offrent qu'un aperçu général du fonctionnement typique de l'authentification avec Kerberos sur un réseau. Pour obtenir de plus amples informations sur ce sujet, reportez-vous à la Section 19.7.

NoteRemarque
 

Le bon fonctionnement de Kerberos dépend de certains services réseau. Il a tout d'abord besoin d'une synchronisation approximative de l'horloge entre les différents ordinateurs du réseau. Par conséquent, un programme de synchronisation de l'horloge devrait être installé pour le réseau, comme par exemple, ntpd. Pour obtenir de plus amples informations sur la configuration de ntpd, consultez /usr/share/doc/ntp-<version-number>/index.htm et examinez les renseignements concernant la configuration des serveurs Network Time Protocol (remplacez <version-number> par le numéro de la version du paquetage ntp installée sur le système).

En outre, étant donné que certains aspects de Kerberos dépendent du service de noms de domaines (ou DNS, de l'anglais Domain Name Service), assurez-vous que les entrées DNS et les hôtes sur le réseau sont tous correctement configurés. Pour obtenir de plus amples informations, reportez-vous au guide de l'administrateur système Kerberos V5 (Kerberos V5 System Administrator's Guide) disponible en anglais aux formats PostScript et HTML dans /usr/share/doc/krb5-server-<version-number> (remplacez <version-number> par le numéro de la version du paquetage krb5-server installée sur le système).