Stratégie de mot de passe AD : longueur, FGPP, listes noires
Bâtissez une stratégie de mot de passe AD selon le NIST : longues phrases secrètes, stratégies affinées, contrôle des mots de passe interdits ou divulgués, sans rotation.
La plupart des compromissions d'Active Directory qui commencent par un mot de passe n'impliquent aucun cassage sophistiqué. Elles commencent par une pulvérisation de mots de passe (password spraying) contre une stratégie qui autorise Welcome1!, par un compte de service dont le mot de passe date de 2014, ou par un hachage cassé hors ligne parce que huit caractères et un symbole obligatoire produisent un espace de recherche minuscule. Dans de nombreux parcs, la stratégie de domaine par défaut reflète encore des recommandations vieilles de vingt ans : mots de passe courts, règles de complexité, expiration à 90 jours et rien pour vérifier si un mot de passe figure déjà dans un corpus de fuites.
Ce guide reconstruit la stratégie à partir des connaissances actuelles. Il couvre ce que dit désormais le NIST SP 800-63B, comment mesurer la qualité des mots de passe existants, comment superposer des stratégies de mot de passe affinées pour les administrateurs et les comptes de service, comment ajouter des contrôles de mots de passe interdits et divulgués au moment du changement, et comment abandonner la rotation forcée en toute sécurité.
Ce que disent réellement les recommandations actuelles
Le NIST SP 800-63B révision 4 (finalisé en 2025) est la référence acceptée par la plupart des auditeurs. Les points qui comptent pour AD :
- La longueur plutôt que la complexité. Minimum 15 caractères lorsque le mot de passe est le seul facteur, 8 lorsqu'il fait partie d'une MFA. Autorisez au moins 64 caractères.
- Aucune règle de composition. Les vérificateurs ne doivent pas exiger de mélange de types de caractères ; cela pousse les utilisateurs vers des substitutions prévisibles.
- Aucune rotation périodique. Ne changez les mots de passe qu'en cas d'indice de compromission.
- Les listes de blocage sont obligatoires. Comparez les nouveaux mots de passe aux mots de passe connus comme divulgués, aux mots du dictionnaire et aux termes propres au contexte (nom de l'entreprise, noms de produits).
- Limitez le rythme des tentatives en ligne plutôt que de compter sur la complexité.
Les bases de sécurité Microsoft ont abandonné l'expiration des mots de passe en 2019 pour la même raison. Votre régulateur ou votre assureur cyber peut encore exiger la rotation ; documentez les contrôles compensatoires ci-dessous et négociez à partir d'eux.
Mesurer : ce que le domaine impose aujourd'hui
Get-ADDefaultDomainPasswordPolicy
Get-ADFineGrainedPasswordPolicy -Filter * |
Select-Object Name, Precedence, MinPasswordLength, MaxPasswordAge, LockoutThreshold, AppliesTo
# Comptes qui contournent entièrement la stratégie
Get-ADUser -LDAPFilter '(userAccountControl:1.2.840.113556.1.4.803:=32)' | Select-Object SamAccountName # PASSWD_NOTREQD
Get-ADUser -Filter 'PasswordNeverExpires -eq $true -and Enabled -eq $true' -Properties PasswordLastSet |
Sort-Object PasswordLastSet | Select-Object SamAccountName, PasswordLastSet
Get-ADUser -Filter 'AllowReversiblePasswordEncryption -eq $true' | Select-Object SamAccountNameLes comptes PASSWD_NOTREQD peuvent avoir un mot de passe vide quelle que soit la stratégie ; effacez l'indicateur avec Set-ADUser -PasswordNotRequired $false après avoir confirmé que chacun possède un vrai mot de passe. Le chiffrement réversible stocke un mot de passe récupérable : le nombre de comptes concernés doit être nul.
Auditer : la qualité des mots de passe existants
La stratégie ne s'applique qu'au prochain changement : vous devez donc savoir ce qui existe déjà. La commande Test-PasswordQuality du module DSInternals compare les hachages NT à une liste de hachages divulgués (par exemple le téléchargement NTLM de Have I Been Pwned) et signale les mots de passe vides, dupliqués, par défaut et faibles. Elle fonctionne en répliquant les hachages depuis un DC, ce qui fait de son exécution elle-même une opération Tier 0 : lancez-la depuis un poste d'administration sécurisé avec une attribution de droits de réplication limitée dans le temps, conservez le résultat chiffré et retirez les droits ensuite. Des outils commerciaux comme Specops Password Auditor offrent le même rapport en lecture seule.
Concentrez-vous sur trois constats :
- Les mots de passe partagés entre le compte d'administration et le compte standard d'une même personne.
- Les mots de passe divulgués sur tout compte privilégié ou de service.
- Les hachages dupliqués entre comptes de service, qui révèlent des identifiants réutilisés qu'un seul cassage par Kerberoasting suffirait à déverrouiller.
Forcez immédiatement une réinitialisation pour les cas privilégiés et divulgués ; n'attendez pas la nouvelle stratégie.
Appliquer : la base du domaine
La stratégie de mot de passe du domaine est lue depuis la GPO liée à la racine du domaine, normalement la Default Domain Policy, sous Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Password Policy. Les GPO de stratégie de mot de passe liées à des UO n'ont aucun effet sur les comptes du domaine.
| Paramètre | Recommandation |
|---|---|
| Minimum password length | 14 (15 ou plus via PSO, voir ci-dessous) |
| Password must meet complexity requirements | Enabled tant qu'aucun filtre de mots de passe interdits n'est en place, facultatif ensuite |
| Maximum password age | 0 (jamais) une fois la liste de blocage et la MFA en place pour compenser ; sinon 365 jours |
| Enforce password history | 24 |
| Minimum password age | 1 jour |
| Store passwords using reversible encryption | Disabled |
L'éditeur de stratégie de groupe plafonne la longueur minimale à 14. Les versions récentes de Windows ajoutent Relax minimum password length limits et Minimum password length audit dans le même nœud, ce qui autorise des valeurs plus élevées ; chaque DC et chaque client qui valide la stratégie doit les prendre en charge, alors testez avant de vous y fier. Les PSO n'ont jamais eu ce plafond et constituent la voie la plus simple vers 15 caractères ou plus.
Pour le verrouillage, la base de sécurité Windows utilise un seuil de 10 tentatives non valides, avec une durée de verrouillage et une réinitialisation du compteur de 15 minutes. C'est suffisant pour freiner la pulvérisation sans permettre à un attaquant de verrouiller toute l'entreprise.
Appliquer : les stratégies de mot de passe affinées
Les PSO nécessitent un niveau fonctionnel de domaine Windows Server 2008 ou supérieur et sont stockées dans CN=Password Settings Container,CN=System,DC=.... Constituez un petit ensemble réfléchi :
New-ADFineGrainedPasswordPolicy -Name "PSO-AllUsers-15" -Precedence 100 `
-MinPasswordLength 15 -ComplexityEnabled $false -PasswordHistoryCount 24 `
-MaxPasswordAge "365.00:00:00" -MinPasswordAge "1.00:00:00" `
-LockoutThreshold 10 -LockoutDuration "00:15:00" -LockoutObservationWindow "00:15:00" `
-ReversibleEncryptionEnabled $false
New-ADFineGrainedPasswordPolicy -Name "PSO-Admins-20" -Precedence 10 `
-MinPasswordLength 20 -ComplexityEnabled $false -PasswordHistoryCount 24 `
-MaxPasswordAge "365.00:00:00" -MinPasswordAge "1.00:00:00" `
-LockoutThreshold 10 -LockoutDuration "00:15:00" -LockoutObservationWindow "00:15:00" `
-ReversibleEncryptionEnabled $false
New-ADFineGrainedPasswordPolicy -Name "PSO-ServiceAccounts-30" -Precedence 5 `
-MinPasswordLength 30 -ComplexityEnabled $false -PasswordHistoryCount 24 `
-MaxPasswordAge "365.00:00:00" -MinPasswordAge "0.00:00:00" `
-LockoutThreshold 0 -ReversibleEncryptionEnabled $false
Add-ADFineGrainedPasswordPolicySubject "PSO-AllUsers-15" -Subjects "PSO-Scope-AllUsers"
Add-ADFineGrainedPasswordPolicySubject "PSO-Admins-20" -Subjects "PSO-Scope-Admins"
Add-ADFineGrainedPasswordPolicySubject "PSO-ServiceAccounts-30" -Subjects "PSO-Scope-ServiceAccounts"Notes de conception :
- Les PSO s'appliquent uniquement aux utilisateurs et aux groupes de sécurité globaux, pas aux UO. Utilisez des groupes miroirs maintenus par script si vous raisonnez en UO.
- La priorité la plus basse l'emporte ; une PSO liée directement à un utilisateur prime sur les PSO liées à des groupes, quelle que soit la priorité. Espacez les valeurs de priorité.
- La PSO des comptes de service désactive le verrouillage, car un compte de service verrouillé est une panne qu'un attaquant peut déclencher à volonté ; elle compense par la longueur et doit concerner de moins en moins de comptes à mesure qu'ils migrent vers des gMSA.
- La durée de vie maximale de 365 jours est une valeur transitoire. Une fois les contrôles compensatoires ci-dessous en place, décochez Enforce maximum password age sur chaque PSO dans le Centre d'administration Active Directory.
Pour les comptes privilégiés, associez la longueur à une authentification plus forte plutôt qu'à davantage de rotation : carte à puce ou Windows Hello for Business adossé à FIDO2, appartenance à Protected Users, et stratégies et silos d'authentification. Au niveau fonctionnel de domaine Windows Server 2016, les comptes configurés avec Smart card is required for interactive logon peuvent voir leur secret NTLM renouvelé automatiquement lorsque msDS-ExpirePasswordsOnSmartCardOnlyAccounts est activé sur le domaine.
Appliquer : contrôle des mots de passe interdits et divulgués
La liste de blocage est le contrôle qui remplace la complexité et la rotation. Options :
- Microsoft Entra Password Protection pour AD DS. Un agent de DC (une DLL de filtre de mots de passe) et un service proxy appliquent la liste globale de mots de passe interdits de Microsoft et votre liste personnalisée à chaque changement de mot de passe local. Il nécessite une licence Entra ID P1 ou P2 pour l'application en local et un redémarrage du DC pour installer l'agent. Commencez en mode Audit, examinez quels changements auraient été rejetés, puis passez en mode Enforce.
- Lithnet Password Protection (open source) ou des filtres commerciaux comme Specops Password Policy, qui peuvent vérifier les mots de passe par rapport à une copie locale des hachages divulgués sans connectivité cloud.
Quel que soit votre choix, il s'exécute comme filtre de mots de passe dans LSASS sur chaque DC : traitez donc son installation, ses mises à jour et son magasin de configuration comme des changements Tier 0.
# Entra Password Protection : confirmer que chaque DC exécute l'agent et a remonté un signal récent
Get-AzureADPasswordProtectionDCAgent | Format-Table ServerFQDN, HeartbeatUTCAbandonner la rotation forcée en toute sécurité
Ne supprimez l'expiration que lorsque les conditions suivantes sont réunies : la liste de blocage est en mode application, la longueur minimale est d'au moins 14 caractères, la MFA couvre l'accès distant et les applications cloud, et vous disposez d'un processus pour forcer les réinitialisations en cas d'indice de compromission (flux de fuites, alertes de connexions à risque, réponse à incident). Définissez alors Maximum password age à 0 dans la GPO du domaine et décochez Enforce maximum password age sur les PSO des utilisateurs et des administrateurs. L'expiration est calculée à partir de pwdLastSet et de la stratégie effective : les avertissements d'expiration en attente disparaissent donc immédiatement, et rien d'autre ne change.
Vérifier
# Stratégie effective pour des comptes représentatifs
"jdoe","adm-jdoe","svc_legacyapp" | ForEach-Object {
$pso = Get-ADUserResultantPasswordPolicy -Identity $_
[pscustomobject]@{ User = $_; PSO = $pso.Name; MinLength = $pso.MinPasswordLength }
}
# Plus aucun indicateur de contournement de la stratégie
(Get-ADUser -LDAPFilter '(userAccountControl:1.2.840.113556.1.4.803:=32)').CountPour un utilisateur sans PSO, Get-ADUserResultantPasswordPolicy ne renvoie rien, ce qui signifie que la stratégie du domaine s'applique. Testez un changement avec un mot de passe dont vous savez qu'il est interdit, comme le nom de l'entreprise suivi de l'année, et confirmez qu'il est rejeté. Relancez l'audit de qualité des mots de passe chaque trimestre et suivez le nombre de hachages divulgués et partagés comme un indicateur.
Ce que cela casse
- Les mots de passe courts existants continuent de fonctionner. Une longueur minimale plus élevée n'est pas vérifiée sur les mots de passe actuels ; les utilisateurs n'y sont soumis qu'au prochain changement de leur mot de passe. En revanche, les portails de réinitialisation en libre-service et les réinitialisations scriptées qui génèrent des mots de passe courts échouent immédiatement.
- Les applications qui valident elles-mêmes les mots de passe (certains VPN, des SIRH qui synchronisent les mots de passe) peuvent refuser des longueurs supérieures à 14 ou 16 caractères.
- La suppression du verrouillage sur les comptes de service rend possibles les tentatives en ligne contre eux ; ce n'est acceptable qu'avec 30 caractères aléatoires ou plus et une surveillance des échecs 4625 et 4771.
- Les DLL de filtre de mots de passe sur les DC peuvent bloquer tous les changements de mot de passe si l'agent dysfonctionne gravement ; déployez d'abord sur un seul DC et gardez un plan de retour arrière.
- La suppression de la rotation peut entrer en conflit avec un contrôle de conformité écrit tant que le document de politique n'a pas été mis à jour.
Pour aller plus loin : le thème Mots de passe et comptes de service, le guide de référence sur le durcissement des comptes de service et Durcissement de Kerberos, où la longueur du mot de passe détermine directement la durée d'une attaque hors ligne contre un ticket de service.
Questions fréquentes
Faut-il cesser d'obliger les utilisateurs à changer leur mot de passe tous les 90 jours ?
Oui, à condition de remplacer la rotation par des contrôles réellement efficaces : une longueur minimale élevée, une vérification des mots de passe interdits et divulgués au moment du changement, la MFA lorsque c'est possible, et une réinitialisation forcée en cas d'indice de compromission. Le NIST SP 800-63B indique que les vérificateurs ne doivent pas exiger de changements périodiques, et Microsoft a retiré l'expiration des mots de passe de ses bases de sécurité en 2019. La rotation forcée produit surtout des schémas prévisibles comme Autumn2026!.
Peut-on appliquer une stratégie de mot de passe affinée à une UO ?
Non. Un objet de paramètres de mot de passe (PSO) ne s'applique qu'aux objets utilisateurs et aux groupes de sécurité globaux. Pour cibler une UO, créez un groupe miroir dont l'appartenance reflète l'UO, maintenu par un script planifié ou par votre outil de gestion des identités, et liez la PSO à ce groupe. N'oubliez pas que le plus petit numéro de priorité l'emporte lorsque plusieurs PSO s'appliquent, et qu'une PSO liée directement à un utilisateur prime sur celles liées à des groupes.
Quelle longueur minimale imposer aux mots de passe Active Directory ?
Le NIST SP 800-63B révision 4 fixe un minimum de 15 caractères pour les mots de passe utilisés comme facteur d'authentification unique, et de 8 lorsque le mot de passe fait partie d'une authentification multifacteur. Pour AD, 14 à 15 caractères pour les utilisateurs standard constituent une base réaliste, 20 ou plus pour les administrateurs, et 30 caractères aléatoires ou plus pour tout compte de service qui ne peut pas devenir un gMSA.
Stratégie de mot de passe AD : longueur, FGPP, listes noires