Présentation
Dans les infrastructures Microsoft, nous avons deux protocoles pour l’authentification :
- NTLM (New Technology LAN Manager)
- Kerberos
Le protocole NTLM est utilisé pour des raisons de compatibilité, mais il est vulnérable à plusieurs attaques.
Le protocole Kerberos est plus robuste en matière de sécurité, mais pour des raisons de compatibilité, de nombreuses organisations conservent le protocole NTLM sans même le savoir.
Dans un domaine Active Directory, où des machines et des utilisateurs cherchent à accéder à une ressource, la méthode d’authentification sera définie en fonction de la résolution du nom de la ressource cible :
- Si l’accès aux ressources se fait via le FQDN (Fully Qualified Domain Name), alors la méthode d’authentification sera Kerberos.
- Si l’accès aux ressources se fait via son adresse IP, alors la méthode d’authentification sera NTLM.
NTLM
Le protocole est mis à disposition par Microsoft et permet de confirmer l’identité des utilisateurs qui souhaitent accéder à des ressources. L’authentification avec ce protocole se fait via une connexion directe entre un client et un serveur cible, sous forme de challenge/réponse.
L’authentification NTLM est prise en charge par de nombreux protocoles :
- SMB
- HTTP
- IMAP
- SMTP
- MS-SQL
- etc …
L’authentification NTLM sera encapsulée au seins du protocole utilisé.
Fonctionnement de NTLM
Pour comprendre le fonctionnement de l’authentification voici un schéma qui détaille les différentes étapes :
- Le client indique au serveur qu’il veut s’authentifier
- Le serveur répond au client avec un challenge
- Le client chiffre le challenge avec le hash NT de son mot de passe, et il envoie le résultat au serveur
- Le serveur effectue la même opération que le client sur le challenge (avec le hash NT du mot de passe client). Une fois l’opération faite le serveur va comparer son résultat avec celui que le client lui a envoyé. Si le résultat est identique, l’utilisateur est authentifié pour accéder ressource souhaitée.

Deux versions NTLMv1 et NTLMv2
Le protocole d’authentification NTLM se décline en deux versions : NTLMv1 et NTLMv2.
Les deux versions ont un fonctionnement similaire ; ce qui change, c’est la méthode de calcul du hash NT.
Pourquoi un NTLMv2 ?
Une deuxième version du protocole a été développée car le hash NT-NTLMv1 était facilement réversible, ce qui permettait de retrouver le mot de passe de l’utilisateur.
De plus, NTLMv2 intègre une notion de signature qui permet de vérifier l’intégrité du challenge NTLM.
Sécurité
Ce n’est pas parce que l’opération qui permet de retrouver le mot de passe original à partir du hash NTLMv2 est plus longue et complexe que cela devient impossible. Cette action reste faisable avec des outils comme Hashcat. La complexité, la longueur du mot de passe et la puissance de calcul de la machine attaquante seront les éléments déterminants.
Kerberos
Kerberos est un autre protocole d’authentification, initialement créé dans les années 1980-90. C’est actuellement le protocole d’authentification par défaut utilisé dans les environnements Microsoft. Des implémentations de ce dernier existent également sur Apple OS, UNIX, FreeBSD et Linux.
Le protocole Kerberos introduit le principe du Single-Sign-On (SSO), qui permet à un utilisateur d’accéder à plusieurs ressources disponibles sur le réseau avec un même mot de passe.
Microsoft a implémenté le protocole Kerberos dans Windows 2000.
Kerberos est un protocole d’authentification AAA :
- Authentication | Authentification
- Authorization | Autorisation
- Accounting | Surveillance
Fonctionnement de Kerberos
Kerberos gère l’authentification via un tiers de confiance appelé KDC (Key Distribution Center). Tous les utilisateurs et services réseau font confiance au KDC et partagent une clé secrète avec lui. Kerberos repose sur un mécanisme de clés symétriques et un système de tickets pour authentifier les utilisateurs.
Kerberos divise le KDC en deux services :
- AS (Authentication Service) : Il a pour rôle de fournir les TGT (Ticket-Granting Ticket), qui permettent de faire des demandes d’accès à des services auprès du TGS.
- TGS (Ticket-Granting Service) : Il a pour rôle de vérifier l’authenticité des demandes et, en cas de réussite, il fournit le ticket d’accès au service demandé.
L’utilisateur s’authentifie auprès du service d’authentification. Ce dernier lui donne un ticket (TGT). L’utilisateur se rend auprès du service de gestion des tickets et demande un accès à un service. La présence d’un TGT prouve que l’utilisateur s’est bien authentifié, donc le KDC fournit à l’utilisateur un TGS, ce qui permet à l’utilisateur d’accéder à la ressource demandée.

Différence entre Kerberos et NTLM
Comme vous avez pu le voir dans ce cours, la différence principale entre les deux protocoles est la vérification par un tiers, qui est ici le KDC (Key Distribution Center), ainsi que le système de chiffrement, qui est plus robuste.