PRÉSENTATION DE NTLM

mars 25, 2022

À quoi sert NTLM ?

Windows New Technology LAN Manager (NTLM) est une suite de protocoles de sécurité mise à disposition par Microsoft pour confirmer l’identité des utilisateurs et protéger l’intégrité et la confidentialité de leurs activités. Fondamentalement, NTLM est un outil d’authentification unique (SSO) qui s’appuie sur un protocole de stimulation/réponse pour confirmer l’identité d’un utilisateur sans lui demander de saisir un mot de passe.

En dépit de vulnérabilités connues, NTLM reste largement déployé, même sur les nouveaux systèmes, afin d’assurer la compatibilité avec des clients et serveurs plus anciens. Si NTLM est toujours pris en charge par Microsoft, il a été remplacé par Kerberos comme protocole d’authentification par défaut dans Windows 2000 et les domaines Active Directory (AD) ultérieurs.

Comment fonctionne le protocole NTLM ?

NTLM authentifie les utilisateurs au moyen d’un mécanisme de stimulation-réponse. Ce processus consiste en trois messages :

  1. Message de négociation du client
  2. Message de stimulation (demande de preuve d’identité) du serveur
  3. Message d’authentification du client

Processus d’authentification NTLM

Le processus d’authentification NTLM se déroule généralement comme suit :

  1. L’utilisateur partage son nom d’utilisateur, son mot de passe et son nom de domaine avec le client.
  2. Le client génère une version brouillée du mot de passe (hachage) et supprime le mot de passe complet.
  3. Le client transmet une version en texte simple du nom d’utilisateur au serveur approprié.
  4. Le serveur répond au client par une stimulation, à savoir un nombre aléatoire de 16 octets.
  5. En réponse, le client envoie la stimulation chiffrée par le hachage du mot de passe de l’utilisateur.
  6. Le serveur envoie ensuite la stimulation, la réponse et le nom d’utilisateur au contrôleur de domaine.
  7. Le contrôleur de domaine récupère le mot de passe de l’utilisateur dans la base de données et l’utilise pour chiffrer la stimulation.
  8. Il compare ensuite la stimulation chiffrée et la réponse du client. Si celles-ci correspondent, l’utilisateur est authentifié et l’accès est octroyé.

Différence entre NTLM et Kerberos

À l’instar de NTLM, Kerberos est un protocole d’authentification. Il a remplacé NTLM en tant qu’outil d’authentification standard/par défaut sous Windows 2000 et les versions ultérieures.

La principale différence entre NTLM et Kerberos réside dans la façon dont les deux protocoles gèrent l’authentification. NTLM s’appuie sur une connexion en trois temps entre le client et le serveur pour authentifier un utilisateur. Kerberos utilise un processus en deux temps qui fait appel à un service d’émission de tickets ou à un centre de distribution de clés.

Autre différence majeure : NTLM hache les mots de passe, tandis que Kerberos les chiffre. NTLM s’appuie sur le hachage de mots de passe, une fonction unidirectionnelle qui produit une chaîne de texte basée sur un fichier d’entrée. Kerberos utilise quant à lui le chiffrement, une fonction bidirectionnelle qui « brouille » les informations à l’aide d’une clé de chiffrement et les « déverrouille » avec une clé de déchiffrement.

Même si le protocole Kerberos est désormais la méthode d’authentification par défaut de Microsoft, NTLM peut être utilisé en renfort. En effet, si Kerberos ne réussit pas à authentifier l’utilisateur, le système va alors tenter d’utiliser NTLM.

Pourquoi NTLM a-t-il été remplacé par Kerberos ?

NTLM comportait plusieurs vulnérabilités de sécurité connues liées au hachage et au « salage » des mots de passe.

Avec NTLM, les mots de passe stockés sur le serveur et le contrôleur de domaine ne sont pas « salés » (concaténés). En d’autres termes, aucune chaîne aléatoire de caractères n’est ajoutée au mot de passe haché pour renforcer sa protection contre le craquage. Les cyberadversaires qui possèdent un hachage de mot de passe n’ont donc pas besoin du mot de passe sous-jacent pour authentifier une session. En conséquence, les systèmes sont vulnérables aux attaques en force, qui consistent à craquer un mot de passe en multipliant les tentatives de connexion. Si l’utilisateur choisit un mot de passe courant ou faible, il sera tout particulièrement exposé à ces tactiques.

La cryptographie du protocole NTLM ne permet pas non plus de tirer parti des progrès réalisés au niveau des algorithmes et du chiffrement qui améliorent sensiblement les fonctionnalités de sécurité.

Protocole Kerberos

Kerberos a été développé par des chercheurs du MIT (Massachusetts Institute of Technology) dans les années 1980. Il doit son nom à un personnage de la mythologie grecque, Cerbère, le chien à trois têtes qui garde les enfers.

En pratique, les trois composants de sécurité du protocole Kerberos sont représentés comme suit :

  1. Client cherchant à s’authentifier
  2. Serveur auquel le client tente d’accéder
  3. Service de tickets ou centre de distribution de clés (KDC, Key Distribution Center)

Authentification Kerberos

L’authentification Kerberos se déroule en douze étapes, comme suit :

  1. L’utilisateur partage son nom d’utilisateur, son mot de passe et son nom de domaine avec le client.
  2. Le client assemble un package — ou authentificateur — contenant toutes les informations pertinentes le concernant, y compris son nom d’utilisateur, la date et l’heure. Toutes les informations contenues dans l’authentificateur, hormis le nom d’utilisateur, sont chiffrées avec le mot de passe de l’utilisateur.
  3. Le client envoie l’authentificateur chiffré au centre de distribution de clés.
  4. Ce dernier vérifie le nom d’utilisateur pour établir l’identité du client. Il consulte ensuite la base de données Active Directory pour retrouver le mot de passe de l’utilisateur. Après quoi, il tente de déchiffrer l’authentificateur à l’aide du mot de passe. Si le KDC parvient à déchiffrer l’authentificateur, l’identité du client est vérifiée.
  5. Une fois l’identité du client confirmée, le KDC crée un ticket ou une clé de session, qui est également chiffré et envoyé au client.
  6. Le ticket ou la clé de session est stocké dans le système Kerberos du client. Le ticket peut être utilisé pour accéder au serveur pendant une durée déterminée, généralement 8 heures.
  7. Si le client doit accéder à un autre serveur, il envoie le ticket d’origine au KDC, ainsi qu’une demande d’accès à la nouvelle ressource.
  8. Le KDC déchiffre le ticket avec sa clé. (Le client n’a pas besoin d’authentifier l’utilisateur, car le KDC peut utiliser le ticket pour vérifier si l’identité de l’utilisateur a été précédemment confirmée.)
  9. Le KDC génère une clé de session ou un ticket mis à jour pour accéder à la nouvelle ressource partagée. Ce ticket est également chiffré par la clé du serveur. Le KDC envoie ensuite ce ticket au client.
  10. Le client enregistre cette nouvelle clé de session dans son système Kerberos et envoie une copie au serveur.
  11. Le serveur utilise son propre mot de passe pour déchiffrer le ticket.
  12. Si le serveur parvient à déchiffrer la clé de session, le ticket est légitime. Le serveur ouvre alors le ticket et examine la liste de contrôle d’accès (ACL, Access Control List) pour déterminer si le client possède les autorisations nécessaires pour accéder à la ressource.

Applications utilisant NTLM

Kerberos a remplacé NTLM en tant que protocole d’authentification par défaut à partir de Windows 2000. Cependant, NTLM est toujours pris en charge par tous les systèmes Windows pour assurer la compatibilité avec les clients et serveurs plus anciens.

Par exemple, les ordinateurs qui exécutent toujours Windows 95, Windows 98 ou Windows NT 4.0 utilisent le protocole NTLM pour l’authentification réseau avec un domaine Windows 2000. De leur côté, les ordinateurs Windows 2000 utilisent NTLM lors de l’authentification de serveurs Windows NT 4.0 ou antérieurs, ou lorsqu’ils accèdent à des ressources hébergées dans des domaines Windows 2000 ou antérieurs. NTLM sert également à authentifier les ouvertures de session locales avec des contrôleurs de domaine non Windows.

Avantages et inconvénients de NTLM

NTLM est considéré comme un protocole obsolète. Ses avantages, en comparaison avec une solution plus moderne comme Kerberos, sont donc limités. Pourtant, NTLM continue de tenir sa promesse initiale : les clients utilisent le hachage pour éviter d’envoyer des mots de passe non protégés sur le réseau.

À ce stade, l’authentification NTLM présente plusieurs inconvénients :

  • Authentification unique. NTLM offre une méthode d’authentification unique. Il s’appuie sur un protocole de stimulation-réponse pour confirmer l’identité de l’utilisateur. Il ne prend pas en charge l’authentification multifacteur (MFA), qui consiste à utiliser deux éléments d’information ou plus pour confirmer l’identité de l’utilisateur.
  • Vulnérabilités de sécurité. Le hachage relativement simple des mots de passe rend les systèmes NTLM vulnérables à plusieurs types d’attaques, dont les attaques en force ou « Pass the Hash ».
  • Cryptographie dépassée. NTLM ne tire pas parti des progrès récents réalisés en matière d’algorithmes ou de chiffrement pour renforcer la sécurité des mots de passe.

Comment faire pour protéger votre réseau avec NTLM ?

Compte tenu des risques de sécurité associés à NTLM, CrowdStrike recommande aux entreprises de limiter au maximum son utilisation dans leur réseau.

Pour celles qui l’utilisent toujours à des fins de compatibilité, CrowdStrike propose les recommandations suivantes pour renforcer la sécurité et minimiser les risques.

  1. Prenez des mesures pour atténuer les risques posés par NTLM. Pour être totalement protégé contre les attaques par relais NTLM, vous devez activer la signature serveur et un mécanisme EPA (Enhanced Protection for Authentication) sur tous les serveurs concernés.
  2. Appliquez des correctifs. Vérifiez que vos systèmes disposent des dernières mises à jour de sécurité publiées par Microsoft.
  3. Utilisez des techniques avancées. Implémentez des techniques de détection et de prévention des relais NTLM similaires à celles présentées par Preempt (désormais CrowdStrike) lors de la conférence Black Hat de 2019.
  4. Identifiez les variations faibles. Certains clients NTLM utilisent des variations NTLM faibles (par exemple, ne pas envoyer de code d’intégrité de message), ce qui expose votre réseau à des risques plus élevés d’attaque par relais NTLM.
  5. Surveillez le trafic NTLM sur votre réseau. Efforcez-vous de limiter le trafic NTLM non sécurisé.

Éliminez les clients qui envoient des réponses LM et configurez une règle de sécurité réseau de type GPO (objet de stratégie de groupe) : niveau d’authentification LAN Manager pour refuser les réponses LM.