Protocole d’authentification : la fin de NTLM et ses alternatives

Temps de lecture : 5 mins
Description de l'image
Sylvain Le Souder Architecte Cloud
08 juillet 2024

NTLM (Windows NT LAN Manager) est une suite de protocoles utilisée pour authentifier un client auprès d’une ressource. Il a été introduit en 1993 dans Windows NT 3.1, puis intégré en 2000 à Active Directory lors de la sortie de Windows 2000 Server. La suite NTLM comprend les protocoles NTLMv1, NTLMv2 et NTLM2 Session.

Vulnérabilités du protocole NTLM 

NTLM est la méthode d’authentification principale utilisée avant Windows 2000. Bien que vulnérable à de nombreuses attaques telles que le « Relay attacks » ou le « brut force », NTLM est toujours largement déployé pour maintenir la compatibilité avec les systèmes plus anciens qui ne peuvent pas utiliser les nouvelles technologies de cryptographie. 

NTLM est un outil d’authentification ancêtre du SSO (Single Sign On) qui permet aux utilisateurs de s’authentifier une seule fois et d’accéder à plusieurs ressources sans avoir à saisir à nouveau leurs informations d’identification.

En effet, NTLM n’est plus recommandé par Microsoft depuis 2010. Par exemple, ce protocole doit être explicitement activé dans Windows 10 (sorti en 2015) ou Windows Server 2016 (sorti en 2016). Cet ensemble de protocoles d’authentification va être abandonné le 7 juillet 2024, lors de la prochaine mise à jour de Windows 11. Par conséquent, il ne sera plus possible d’utiliser ce dernier afin d’authentifier des utilisateurs.

Usages  

NTLM a été utilisé afin d’authentifier des utilisateurs sur des applications compatibles avec Active Directory. On pourra citer par exemple les partages de fichiers CIFS ou les imprimantes réseaux.

Cette suite de protocoles a également été utilisée dans nombre d’applications métier. Cela permettait d’avoir une implémentation simple (mais vulnérable) d’une forme de SSO.  

Enfin, NTLMv2, et des outils d’authentification réseaux, tels que Radius et Tacacs fonctionnent bien ensemble. Par conséquent, lorsque l’on souhaitait avoir une authentification unique pour ses utilisateurs, il était le protocole privilégié.

On trouve ainsi NTLMv2 dans l’authentification pour des réseaux WiFi (en sous-jacent de WPA, WPA2, WPA3 enterprise), ou pour des VPN (par exemple OpenVPN est compatible avec Radius). 

Il est donc important de comprendre que l’on peut retrouver NTLM à différents niveaux :  

C’est bien là tout le problème de ces protocoles : ils peuvent être partout, et sont souvent peu visibles.

Alternatives au protocole d’authentification NTLM

Heureusement, il existe diverses manières de sécuriser NTLM, ou de le remplacer :

Kerberos

Kerberos est un protocole d’authentification largement utilisé qui fournit une authentification mutuelle et sécurisée. Il est devenu le protocole d’authentification par défaut dans les environnements Windows modernes, y compris Active Directory. Kerberos utilise des tickets cryptés et des clés secrètes pour authentifier les utilisateurs et les services, offrant une sécurité améliorée par rapport à NTLM.  

Authentification basée sur les certificats

Cette approche utilise des certificats numériques pour authentifier les utilisateurs ou les appareils. Les certificats sont émis par des autorités de certification approuvées et offrent une forme d’authentification plus forte que les noms d’utilisateurs et les mots de passe seuls.

Authentification à deux facteurs (MFA)

MFA ajoute une couche supplémentaire de sécurité à l’authentification en exigeant plusieurs formes distinctes d’authentification (en général deux). Cela peut inclure quelque chose que l’utilisateur sait (comme un mot de passe) et quelque chose qu’il possède (comme un code généré par une application mobile ou envoyé par SMS).  

SAML (Security Assertion Markup Language)

SAML est un cadre d’échange de données ouvert qui permet l’authentification et l’autorisation sécurisées entre les domaines. Il est couramment utilisé pour l’authentification unique (SSO) et la fédération d’identité entre différents fournisseurs d’identité.  

OAuth et OpenID Connect

OAuth est un protocole d’autorisation ouvert qui permet aux utilisateurs d’accorder l’accès à leurs informations à des applications tierces sans partager leurs informations d’identification. OpenID Connect est une couche d’identité basée sur OAuth 2.0 qui fournit une authentification et une gestion des sessions.  

LDAP (Lightweight Directory Access Protocol)

LDAP est un protocole logiciel utilisé pour accéder et gérer les entrées dans un service d’annuaire, tel qu’Active Directory. Bien qu’il ne soit pas un protocole d’authentification en soi, il peut être utilisé en conjonction avec d’autres mécanismes d’authentification pour fournir une authentification et une autorisation sécurisées.  

L’ensemble de ces protocoles doivent à un moment utiliser un canal chiffré, assuré par TLS/SSL. 

Pour aller plus loin

Article – Attaques d’ingénierie sociale : comment les prévenir ?

Article – AWS IAM : la gestion des identités

Article – La sécurité dans le cloud : stratégie du Zero Trust

Articles Similaires

AWS : quels outils pour implémenter le DevSecOps ?

Définition du DevSecOps  Le DevSecOps se matérialise par l’intégration des tests de sécurité à chaque étape du processus de développement...

Comment mettre en œuvre une approche DevSecOps ? 

SecDevOps ou DevSecOps : définitions et différences   La sécurité occupe une place de plus en plus prépondérante dans les projets,...

La sécurité dans le cloud : stratégie du Zero Trust

Cloud : la sécurité par défaut Il y a peu, Vincent Strubel, Directeur Général de l’ANSSI, a affirmé que la...