Authentification : NTLM et Kerberos

Dans cette leçon, je vais présenter brièvement les deux méthodes d’authentifications disponibles dans un environnement Active Directory.

Dans un environnement Active Directory, il existe deux méthodes d’identification qui sont :

Table des matières

NTLM

NTLM (NT Lan Manager) est le protocole d’authentification le plus ancien qui a vu le jour dans les années 80. Aujourd’hui le protocole est à sa version 2 (NTLM v2).

NTLM utilise un mécanisme de Challenge <-> Reponse pour authenfier l’utilisateur.

À chaque authentification, un hash du mot de passe de l’utilisateur transite plusieurs fois sur le réseau.

NTLM est toujours utilisé pour des raisons historique car certaines applications ne prennent pas en charge Kerberos ou quand on accède par exemple à un partage réseau par l’adresse IP du serveur.

Aperçu d’une authentification NTLM :

Schéma authentification NTLM
  1. L’utilisateur se connecte sur un ordinateur du domaine avec son identifiant et mot de passe.
  2. L’utilisateur souhaite accéder à un partage, il envoie son identifiant au serveur.
  3. Le serveur génère un hash (challenge) qu’il envoie au demandeur.
  4. L’utilisateur répond au serveur en envoyant son mot de passe crypté avec le hash (réponse).
  5. Le serveur envoie au contrôleur de domaine l’utilisateur, le mot de passe crypté et le hash.
  6. Le contrôleur de domaine vérifie l’identité de l’utilisateur
  7. Le contrôleur de domaine notifie le serveur pour indiquer sur l’utilisateur est bien authentifié.

Kerberos

Kerberos est un système d’authentification plus évolué basé sur un système clef (KDC) distribué par les contrôleurs de domaine.

Kerberos présente l’avantage de ne pas faire transiter le mot de passe à chaque authentification.

Résumé d’une authentification avec Kerberos :

  1. L’utilisateur ouvre sa session avec un couple identifiant / mot de passe sur un ordinateur du domaine.
  2. Envoie d’une requête d’authentification ou demande TGT (Ticket Granting Ticket) au contrôleur de domaine (KDC). Cette est appelée KRB_AS_REQ.
  3. La réponse est appelée KRB_AS_REP, le contrôleur de domaine retourne à l’utilisateur une clé de session et le TGT qui contient plusieurs Informations :
    • Nom d’utilisateur
    • Période de validité
    • PAC (Privilege Attribute Certificate) qui va contenir des informations sur le client comme les groupes dont il est membre.
  4. L’utilisateur souhaite accéder au serveur de fichiers, il envoie une de demande de ticket au KDC pour accéder au service. Cette demande est appelée KRB_TGS_REQ (Ticket-Granting Service).
  5. Le KDC retourne à l’utilisateur un ticket pour qu’il puisse accéder au service sur le serveur. Le ticket plusieurs informations sur l’utilisateur et le service. La réponse est appelée KRB_TGS_REP.
  6. L’utilisateur envoie la demande au serveur de fichier en fournissant le ticket pour la demande au service. Cette demande s’appelle KRB_AP_REQ, le serveur va vérifier l’identité de l’utilisateur.
  7. Le serveur peut éventuellement répondre au client avec KRP_AP_REP pour que le client identifie le serveur.

Kerberos a en charge l’authentification, les autorisations d’accès (droits NTFS, appartenance à un groupe …) sont vérifiées dans un second temps par le serveur où le service est hébergé.