Kerberos

Cerbère (Κέρβερος en grec ancien), animal mythique représenté par un chien à plusieurs têtes (traditionnellement trois), a pour principale fonction d'empêcher ceux que Charon a menés de l'autre côté du Styx de faire le voyage dans l'autre sens. Éventuellement, il peut même servir à empêcher les touristes qui voudraient traverser le Styx sans passer par les services de Charon.

Dans les systèmes d'information, kerberos est tout autre chose. Il s'agit d'un protocole d'authentification en réseau, dont les principales caractéristiques sont :

  • authentification sécurisée : le mot de passe de l'utilisateur ne circule jamais sur le réseau, nous verrons par quel prodige ;
  • authentification unique pour plusieurs services : SSO (Single Sign On), l'utilisateur n'a pas à se ré-authentifier chaque fois qu'il utilise un nouveau service qui nécessite un droit d'accès ;
  • le réseau est « ouvert », autrement dit, c'est un bouge où tout le monde cherche à voler l'information qui circule. Kerberos propose donc une série de mécanismes fondés sur la cryptographie à clé symétrique, pour :
    • éviter qu'un indiscret puisse se faire passer pour qui il n'est pas ;
    • éviter qu'un indiscret « rejoue » un dialogue qu'il a enregistré sur le réseau ;
    • permettre à chaque partenaire dans un dialogue de s'authentifier vis-à-vis de l'autre.

Kerberos ne fait tout de même pas de miracles et ne saurait à lui seul garantir l'intégrité de chaque protagoniste. En particulier :

  • il ne sait pas déjouer les attaques par déni de service ;
  • il ne sait pas détecter le vol de clés secrètes, il est de la responsabilité des partenaires de protéger eux-mêmes leurs clés d'un vol ;
  • il ne sait pas déjouer les attaques par dictionnaire sur les mots de passe ;
  • il n'est pas fait pour rendre les échanges confidentiels bien que ceci puisse se faire avec des extensions, il n'est là que pour authentifier des utilisateurs et des services.

Ce protocole a été créé au MIT Massachusetts Institute of Technology, puis normalisé dans sa version 5 dans les RFC 1510 en 1993, rendu obsolète par les RFC 4120 en 2005. Avant, il y a eu la version 4 dont on entend encore parler, mais qui n'est plus maintenue. Les versions précédentes n'étant restées qu'au stade de « proof of concept ». Autant dire que kerberos n'est plus vraiment une nouveauté.

Pourquoi s'intéresser à kerberos ? Pour ses avantages bien sûr, et aussi parce que Microsoft a introduit (en le torturant quelque peu, nous savons tous le mal que cette entreprise éprouve à respecter scrupuleusement une norme) ce protocole dans « Active Directory » à partir de Windows 2000 Server. Notons tout de même un effort d'interopérabilité dans la version Windows 2008.

Pour les gens qui comme moi sont astreints à gérer ce genre de serveurs, autant essayer d'en tirer profit quand c'est possible.

Nous allons d'abord essayer de comprendre comment fonctionne cette usine à gaz sulfureux (kerberos), la mettre en œuvre dans une solution 100% GPL (plus facile pour comprendre ce que l'on fait).

Nous verrons enfin ce que l'on peut tirer du Cerbère caché dans Active Directory.

L'objectif de ce chapitre n'est pas vraiment d'expliquer dans le détail le fonctionnement de l'usine, mais plutôt de donner quelques informations utiles pour la mettre en œuvre en comprenant un minimum ce que l'on fait, de manière à savoir quoi en attendre et pouvoir réagir avec un peu d'intelligence si jamais ça ne fonctionnait pas comme prévu.

Dernière modification: le 06/03/2010 à 10:08
   
 
Cette création est mise à disposition sous un contrat Creative Commons. Creative Commons License