Precedent Haut Suivant


7.3.3 -  KERBEROS :

Le protocole Kerberos est basé sur un algorithme d’authentification fondé sur une cryptographie. L’utilisation de cet algorithme ne permet pas à une personne malveillante qui écoute le dialogue d’un client à l’insu de ce dernier de se faire passer pour lui plus tard. Ce système permet à un processus client travaillant pour un utilisateur donné de prouver son identité vis-à-vis d’un serveur sans envoyer de données dans le réseau permettant à un tiers de découvrir le code d’authentification.

L’ensemble du protocole Kerberos est basé sur un mécanisme permettant au processus client de prouver qu’il possède la clé de chiffrement qui est connue des seuls utilisateurs de base et du serveur.

 

Ce mécanisme peut être résumé par le schéma ci-dessous :

 

Figure 51 : Modèle de fonctionnement du protocole KERBEROS

Dans le cadre d’une implémentation du protocole KERBEROS, le client et le processus client ne connaissent pas la clé de chiffrement de base utilisée pour l’authentification. Quand un client doit répondre à une demande d’identification, il se met en contact avec un serveur d’authentification. Le client et le serveur d’authentification possèdent la même clé d’authentification (clé client) qui équivaut à un mot de passe pour le client concerné. Le client envoie un message d’authentification Kerberos chiffré avec sa clé client au serveur d’authentification. Celui-ci utilise la clé client pour vérifier l’identité de l’émetteur. Si le message est déchiffré, le client est alors identifié.

Dans le cas d’une identification positive du client, le serveur d’authentification émet un ticket Kerberos, certificat chiffré contenant une clé unique permettant d’identifier le client (clé de session) et une date limite de validité du certificat. Ce ticket Kerberos est chiffré à l’aide d’une clé connue seulement du serveur d’authentification et du serveur de vérification (clé de serveur). Puisque cette clé n’est connue que des serveurs d’authentification et de vérification, il est impossible au client de modifier le ticket sans que cela passe inaperçu.

 Le certificat est alors acheminé jusqu’au serveur de vérification qui le déchiffre à l’aide de la clé de serveur et utilise la clé de session obtenue pour authentifier le client. Dans le schéma ci-dessus, la demande n°1 de vérification, génère la réponse n°2 qui délivre un ticket de vérification et la clé de session. Les messages n°3 et 4 permettent l’authentification en prouvant que le client connaît la clé de session incluse dans le ticket Kerberos.

 

Le protocole Kerberos est implémenté en standard par le système d’exploitation Windows 2000. Des versions « Kerberos » des différents outils existent également en standard sous la plupart des environnements Unix.

7.3.3.A -  Les limites de Kerberos en environnement Microsoft :

L'authentification MS-Kerberos n'est pas universelle et elle n'est pas utilisée par de nombreux systèmes de connexion à la machine. Les serveurs FTP et Telnet fournis dans W2K ne connaissent pas MS-Kerberos, tout comme les services Macintosh fournis en standard.

Il est à noter également qu’il n'existe pas de support de MS-Kerberos dans le middleware comme la messagerie MS-Exchange. Il n'y a pas de SSH (Secure Shell) fourni en standard, ni de SSH disponible supportant MS-Kerberos, ce qui constitue un frein important compte tenu de l'importance de SSH. De plus, il ne faut pas oublier que les clients habituels Windows 95 et 98 n'ont bien sûr pas de support pour MS-Kerberos. Tout cela limite donc très fortement la portée à court terme de MS-Kerberos.

Pour le développeur d'applications, Microsoft ne fournit pas les API (Application Program Interface) Kerberos, mais des API propriétaires spécifiques : SSPI (Security Support Provider Interface).

Une application « cerberisée » (supportant Kerberos) ne peut ainsi pas être recompilée sur Windows 2000. Les SSPI sont proches des GSS-API mais restent différentes et n'existent que sur l’environnement Microsoft. À noter que les noms des royaumes MS-Kerberos sont obligatoirement les noms du DNS, seule la casse changeant.

Un client Windows 2000 trouve le serveur Kerberos (KDC) auquel il doit s'adresser par le DNS qui repose sur la bonne configuration du client. En outre, il n'y a pas véritablement de compatibilité entre MS-Kerberos et Kerberos V diffusé avec DCE (Distributed Computing Environment) (Solaris, Aix, HP-UX, OSF-1) même s’il est vrai que cette dernière solution est peu implémentée.

La sécurité dans MS-Kerberos repose sur le champ propriétaire SID dont le fonctionnement est tenu secret par Microsoft.

Une autre difficulté est de savoir quand l'authentification MS-Kerberos est utilisée. La seule solution est d'avoir un serveur Kerberos MIT et de le tester avec un compte déclaré uniquement dans ce serveur. Si cela fonctionne, c'était une authentification Windows NT, sinon, il s'agissait de l'authentification centralisée Kerberos.

Les attaques suivantes sont toujours possibles malgré l'authentification MS-Kerberos :

-                     la connexion anonyme (null session) permet par défaut la lecture de tous les objets ;

-                     la connexion anonyme par MSRPC permet d'avoir la liste des utilisateurs ;

-                     W2K a des comptes par défaut : Administrator, Guest, IUSR-systemname, etc.;

-                     il est possible d'extraire les hashes de la SAM locale ou d'Active Directory, et les techniques de crackages seront alors utilisables.



Precedent Haut Suivant