Kerberos : Le protocole d'authentification par défaut dans Active Directory
Comprendre Kerberos dans les environnements Active Directory
Lorsque vous ouvrez une session sur un ordinateur joint à un domaine Windows, accédez à un dossier partagé ou vous authentifiez sur une application web intégrée à Active Directory (AD), vous utilisez presque certainement Kerberos — le protocole d'authentification par défaut d'Active Directory depuis Windows 2000. Comprendre son fonctionnement est essentiel pour administrateurs système, experts sécurité et développeurs d'applications intégrées AD.
Qu'est-ce que Kerberos ?
Kerberos est un protocole d'authentification réseau développé au MIT dans les années 1980. Il utilise la cryptographie à clé secrète et un tiers de confiance pour fournir une authentification mutuelle forte entre clients et services sur réseaux non sécurisés. Le nom vient de la mythologie grecque — Cerbère, le chien à trois gardant les enfers — représentant les trois parties : client, serveur et Centre de Distribution de Clés (KDC).
Composants principaux
- Client : Utilisateur ou service demandant l'accès
- Centre de Distribution de Clés (KDC) : Autorité de confiance sur contrôleurs de domaine, comprenant deux services :
- Service d'Authentification (AS) : Émet les Ticket Granting Tickets (TGT)
- Service d'Octroi de Tickets (TGS) : Émet tickets de service pour ressources spécifiques
- Service cible : Ressource accédée (serveur fichiers, SQL, appli web, etc.)
Flux d'authentification
- Requête AS : Client envoie nom d'utilisateur au KDC (AS)
- Réponse AS : KDC renvoie TGT chiffré (avec hash mot de passe client) et clé de session
- Requête TGS : Client présente TGT au KDC (TGS) pour demander accès à un service
- Réponse TGS : KDC renvoie ticket de service (chiffré avec clé secrète du service) et clé de session
- Requête AP : Client présente ticket de service au service cible
- Réponse AP (optionnelle) : Service s'authentifie auprès du client pour authentification mutuelle
Pourquoi Kerberos plutôt que NTLM ?
| Fonctionnalité | Kerberos | NTLM |
|---|---|---|
| Authentification | Mutuelle (client et serveur se vérifient) | Unilatérale (serveur vérifie client) |
| Performance | Mise en cache tickets réduit charge DC | Chaque auth sollicite le DC |
| Délégation | Supporte délégation contrainte/non contrainte | Support délégation limité |
| Carte à puce/PKI | Support natif (PKINIT) | Non supporté |
| Multi-plateforme | Oui (Linux, macOS, Unix) | Centré Windows |
Concepts clés pour administrateurs
- Noms principaux de service (SPN) : Identifiants uniques pour services (ex:
HTTP/webserver.domain.com). Critiques pour que Kerberos trouve le bon compte de service. - Délégation : Permet aux services d'usurper l'utilisateur pour accéder ressources backend (ex: appli web → SQL). Configurer prudemment — délégation contrainte plus sûre.
- Synchronisation horaire : Kerberos échoue si horloges diffèrent >5 min (défaut). Assurez sync NTP sur domaine.
- Types de chiffrement : AES256/AES128 préférés. RC4-HMAC désactivé par défaut dans Windows modernes pour sécurité.
- Pré-authentification : Empêche attaques par force brute hors ligne sur requêtes TGT. Toujours activée.
Dépannage problèmes courants
- KRB_ERR_GENERIC / KRB_AP_ERR_MODIFIED : Mauvaise config SPN, SPN dupliqués, ou mot de passe erroné
- KDC_ERR_PREAUTH_FAILED : Mauvais mot de passe ou verrouillage compte
- Erreurs décalage horloge : Corriger sync horaire
- Repli sur NTLM : Vérifier SPN, DNS, et que client/serveur sont joints au domaine
Améliorations modernes
- Blindage Kerberos (FAST) : Protège pré-authentification via tunnel anonyme
- PKINIT : Authentification par certificat pour cartes à puce
- Délégation contrainte basée sur ressources : Modèle délégation plus sûr contrôlé par propriétaires ressources
Kerberos reste la colonne vertébrale de l'authentification domaine Windows. Si protocoles comme OAuth/OIDC et SAML dominent le SSO web, Kerberos reste irremplaçable pour l'authentification Windows intégrée, la communication service-à-service en entreprise, et scénarios cloud hybrides avec Azure AD Domain Services ou AD sur site.
