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. Nous allons d'abord essayer de comprendre comment fonctionne cette usine à gaz sulfureux (kerberos), la mettre en œuvre dans une solution 100% GPL.