Partager via


Vue d’ensemble technique des mots de passe

Cette rubrique destinée aux professionnels de l’informatique explique comment Windows implémente les mots de passe dans les versions de Windows à partir de Windows Server 2012 et Windows 8.1. Il aborde aussi les mots de passe forts, les phrases secrètes et les stratégies de mot de passe.

Comment les mots de passe sont stockés dans Windows

Cet article fournit des informations sur le stockage des mots de passe « au repos ».

Windows représente les mots de passe sous la forme de chaînes UNICODE de 256 caractères, mais la boîte de dialogue d’ouverture de session est limitée à 127 caractères. Par conséquent, le mot de passe le plus long possible comporte 127 caractères. Des programmes comme les services peuvent utiliser des mots de passe plus longs, mais ils doivent être définis par programme.

Le système d’exploitation Windows stocke les mots de passe de différentes façons à des fins différentes.

Mots de passe stockés en tant qu’OWF

Pour une utilisation en gestion de réseau Windows, y compris dans les domaines Active Directory, le mot de passe est stocké de deux manières différentes par défaut : en tant que fonction unidirectionnelle de LAN Manager (OWF LM) et en tant qu’OWF NT. Le terme « Fonction unidirectionnelle » désigne une transformation mathématique unidirectionnelle des données. Les données qui sont transformées peuvent être converties par chiffrement de façon unidirectionnelle uniquement et cette transformation ne peut pas être inversée. Le type le plus courant de fonction unidirectionnelle est le hachage de chiffrement. Un hachage est un petit jeu de données qui est mathématiquement lié à un jeu de données plus volumineux à partir duquel le hachage est calculé. Si le plus grand jeu de données est modifié, le hachage change également. Les hachages sont utiles, par exemple, en tant que somme de contrôle pour vérifier que les données n’ont pas été modifiées lors de la transmission. Un hachage de chiffrement est un hachage qui présente certaines propriétés. Un hachage de chiffrement doit, par exemple, être créé de telle sorte qu’il soit mathématiquement impossible de déduire le plus grand jeu de données à partir du hachage uniquement. De même, il est mathématiquement impossible de trouver deux jeux de données volumineux qui génèrent le même hachage.

Il existe de nombreux types de fonctions unidirectionnelles. Toutes les fonctions de hachage sont, par définition, des fonctions unidirectionnelles. Toutefois, des fonctions de chiffrement ordinaires qui sont généralement réversibles peuvent également être utilisées pour créer une fonction unidirectionnelle. Pour ce faire, vous pouvez échanger les données et la clé dans une fonction de chiffrement et chiffrer la valeur fixe (la clé) en utilisant les données comme clé. C’est ainsi que le hachage LM est calculé. Le hachage LM est calculé comme suit :

  1. Le mot de passe est rempli d’octets NULL à exactement 14 caractères. Si le mot de passe comporte plus de 14 caractères, il est remplacé par 14 octets NULL pour les opérations restantes.
  2. Le mot de passe est converti en majuscules.
  3. Le mot de passe est divisé en deux clés de 7 octets (56 bits).
  4. Chaque clé est utilisée pour chiffrer une chaîne fixe.
  5. Les deux résultats de l’étape 4 sont concaténés et stockés en tant que hachage LM.

L’algorithme OWF LM est inclus dans Windows à des fins de compatibilité descendante avec les logiciels et le matériel qui ne peuvent pas utiliser d’algorithmes plus récents.

Le hachage NT est simplement un hachage. Le mot de passe est haché à l’aide de l’algorithme MD4, puis stocké. L’OWF NT est utilisé pour l’authentification par les membres de domaine dans les domaines Windows NT 4.0 et versions antérieures et dans les domaines Active Directory.

Ni le hachage NT ni le hachage LM ne sont salés. Le salage est un processus qui combine le mot de passe à une valeur numérique aléatoire (le sel) avant de calculer la fonction unidirectionnelle.

Mots de passe stockés dans Active Directory

Les mots de passe au repos sont stockés dans plusieurs attributs de la base de données Active Directory (fichier NTDS.DIT). Ces attributs sont répertoriés dans le tableau suivant :

Attribut Active Directory Contenu
unicodePwd Hachage NT chiffré
dbcsPwd Hachage LM chiffré
ntPwdHistory Hachages NT chiffrés : historique des mots de passe
lmPwdHistory Hachages LM chiffrés : historique des mots de passe
supplementalCredentials Clés Kerberos, WDigest, etc.

Notes

Le stockage des hachages LM est désactivé par défaut depuis Windows Vista et Windows Server 2008.

Lorsqu’il est stocké dans le fichier DIT, le hachage NT est protégé par deux couches de chiffrement. Dans Windows Server 2016/Windows 10 et versions ultérieures, il est d’abord chiffré avec DES pour la compatibilité descendante, puis avec CNG BCrypt AES-256 (voir CNG BCRYPT_AES_ALGORITHM). Les versions précédentes de Windows chiffrent les hachages NT à l’aide de deux couches de chiffrement DES + RC4.

Pour plus d’informations sur les informations d’identification supplémentaires, consultez MS-SAMR : supplementalCredentials et Structures d’informations d’identification supplémentaires.

Mots de passe stockés dans la base de données SAM locale

Sur les membres de domaine et les stations de travail, les hachages de mot de passe de compte des utilisateurs locaux sont stockés dans une base de données SAM (Security Account Manager) locale située dans le registre. Ils sont chiffrés à l’aide des mêmes algorithmes de chiffrement et de hachage qu’Active Directory. Les mots de passe dans l’attribut supplementalCredentials pour les comptes d’utilisateur locaux sont également stockés dans la base de données SAM locale depuis Windows Server 2016.

Informations d’identification mises en cache

Windows stocke également un vérificateur de mot de passe sur les membres de domaine lorsqu’un utilisateur de domaine se connecte à ce membre de domaine. Ce vérificateur peut être utilisé pour authentifier un utilisateur de domaine si l’ordinateur n’est pas en mesure d’accéder au contrôleur de domaine. Le vérificateur de mot de passe est également communément appelé informations d’identification mises en cache. Il est calculé en concaténant le hachage NT et le nom d’utilisateur, puis en hachant le résultat à l’aide de la fonction de hachage MD4.

Fonctionnement des mots de passe sous Windows

Sous Windows et de nombreux autres systèmes d’exploitation, une méthode d’authentification de l’identité d’un utilisateur consiste à utiliser une phrase secrète ou un mot de passe.

Nous vous recommandons d’utiliser l’authentification multifacteur sécurisée, telle qu’une carte à puce, FIDO et Windows Hello Entreprise. Toutefois, l’authentification par mot de passe est toujours requise dans certains scénarios.

La sécurisation de votre environnement réseau nécessite que des mots de passe forts soient utilisés par tous les utilisateurs. Cela permet d’éviter qu’un utilisateur malveillant devine un mot de passe faible, que ce soit de façon manuelle ou à l’aide d’outils, afin d’acquérir les informations d’identification d’un compte d’utilisateur compromis. Cela est particulièrement vrai pour les comptes d’administrateur. Lorsque vous modifiez régulièrement un mot de passe complexe, cela réduit la probabilité de réussite d’une attaque par mot de passe.

Les paramètres de stratégie de mot de passe contrôlent la complexité et la durée de vie des mots de passe. Les stratégies de mot de passe affectent les mots de passe Windows, mais pas nécessairement les mots de passe de fonctionnalités.

La capacité qu’ont les utilisateurs de modifier leurs mots de passe est régie par les stratégies de mot de passe et les interfaces disponibles. Par exemple, via le bureau sécurisé, les utilisateurs peuvent modifier leur mot de passe à tout moment en fonction des stratégies de mot de passe gérées par l’administrateur système ou l’administrateur de domaine. Les fonctionnalités telles que le coffre Windows, BitLocker et le système de fichiers EFS permettent aux utilisateurs de modifier les mots de passe propres à ces fonctionnalités.

Comment les mots de passe sont utilisés sous Windows

Lorsqu’un utilisateur se connecte, le mot de passe qu’il tape est converti dans les deux types de fonctions unidirectionnelles et conservé en mémoire par le processus LSASS (Local Security Authority Subsystem Service). Si l’utilisateur s’authentifie au moyen d’un compte local, l’OWF NT est comparé au hachage NT stocké localement, et si les deux correspondent, l’utilisateur est connecté. Si l’utilisateur s’authentifie auprès d’un domaine Active Directory à l’aide d’un nom d’hôte pour accéder à une ressource, le hachage NT est utilisé dans une ouverture de session Kerberos auprès du centre de distribution de clés (KDC), qui est généralement le contrôleur de domaine.

Kerberos ne peut pas être utilisé dans les situations suivantes :

  • Authentification auprès d’un domaine exécutant uniquement Windows NT 4.0 ou version antérieure
  • Accès à une ressource sur un membre de domaine Active Directory à l’aide d’une adresse IP au lieu d’un nom d’hôte
  • Accès à une ressource sur un ordinateur qui n’est pas membre d’un domaine Active Directory
  • Accès à une ressource sur un ordinateur membre d’un domaine Active Directory, mais non approuvé par votre domaine
  • Accès à une ressource sur un ordinateur en cours d’exécution et qui ne prend pas en charge Kerberos

Dans ces situations, le processus d’authentification utilise deux protocoles différents, appelés LAN Manager et NTLM. Le processus commence par le client qui demande une vérification auprès du serveur d’authentification. Une fois la vérification reçue, le client calcule une réponse à celle-ci. Pour ce faire, les deux hachages du mot de passe sont remplis avec des valeurs Null à 168 bits. Les 168 bits de chaque hachage sont ensuite divisés en trois clés DES 56 bits. Les six clés DES sont ensuite utilisées pour chiffrer la vérification. Les trois textes de chiffrement générés à l’aide du hachage LM sont concaténés et deviennent la réponse de LAN Manager. Les trois textes de chiffrement générés à l’aide du hachage NT sont concaténés et deviennent la réponse de NTLM.

Les fonctions utilisées pour calculer la réponse peuvent être modifiées par le paramètre Niveau de compatibilité LM dans le paramètre de stratégie de groupe Sécurité réseau : niveau d’authentification LAN Manager . Si cette valeur est définie sur 1 ou moins, le client envoie les réponses LAN Manager et NTLM d’origine. Si elle est définie sur 2, seule la réponse NTLM est envoyée. Si elle est définie sur 3 ou plus, une nouvelle version des deux protocoles est utilisée. La version de NTLM est appelée NTLMv2. La version de LAN Manager est souvent appelée LMv2. Les deux protocoles utilisent le hachage NT pour calculer la réponse, et tous deux utilisent une vérification côté client, au lieu ou en plus de la vérification du serveur. Par ailleurs, si le paramètre Niveau de compatibilité LM est défini sur 1 ou plus, la réponse NTLM est horodatée pour empêcher les attaques par relecture. Pour plus d’informations sur le paramètre Niveau de compatibilité LM, consultez Sécurité réseau : niveau d’authentification LAN Manager.

Mots de passe forts

Les mots de passe constituent la première ligne de défense contre les accès non autorisés à votre organisation. À compter de Windows Server 2003, Windows vérifie la complexité du mot de passe du compte Administrateur lors de l’installation du système d’exploitation. Si le mot de passe est vide ou ne répond pas aux exigences de complexité, la boîte de dialogue Installation de Windows vous invite à créer un mot de passe fort pour le compte Administrateur. Si vous laissez ce mot de passe vide, vous ne pourrez pas accéder à ce compte sur le réseau.

Les mots de passe faibles fournissent aux attaquants un accès facile à vos ordinateurs et à votre réseau, tandis que les mots de passe forts sont beaucoup plus difficiles à déchiffrer. Le tableau suivant compare les mots de passe faibles et forts.

Mot de passe faible Mot de passe fort
Vide Est composé d’au moins sept caractères
Contient des informations facilement détectables ou connues, telles que le nom d’utilisateur ou le nom de domaine Contient des informations « secrètes » ou aléatoires
Est similaire aux mots de passe précédents Est sensiblement différent des mots de passe précédents
Contient un mot complet du dictionnaire Contient une combinaison des caractères suivants :

- Lettres majuscules

- Lettres minuscules

- Chiffres

- Symboles, y compris des espaces

J*p2leO4>F est un exemple de mot de passe fort.

Un mot de passe peut répondre à la plupart des critères d’un mot de passe fort, mais rester quand même relativement faible. Par exemple, Hello2U! est un mot de passe relativement faible même s’il répond à la plupart des critères d’un mot de passe fort et répond également aux exigences de complexité de la stratégie de mot de passe. H!elZl2o est un mot de passe fort, car le mot de dictionnaire est entrecoupé de symboles, de chiffres et d’autres lettres. Il est important d’éduquer les utilisateurs au sujet des avantages de l’utilisation de mots de passe forts et de leur apprendre à créer des mots de passe qui sont réellement forts.

Vous pouvez créer des mots de passe qui contiennent des caractères du jeu de caractères ANSI étendu. L’utilisation de caractères ANSI étendus augmente le nombre de caractères que vous pouvez choisir lorsque vous créez un mot de passe. Par conséquent, les logiciels de déchiffrage de mot de passe peuvent avoir besoin de plus de temps pour déchiffrer les mots de passe qui contiennent ces caractères ANSI étendus que pour déchiffrer d’autres mots de passe. Avant d’utiliser des caractères ANSI étendus dans votre mot de passe, testez-les soigneusement pour vous assurer que les mots de passe contenant des caractères ANSI étendus sont compatibles avec les applications que votre organisation utilise. Soyez particulièrement prudent lors de l’utilisation de caractères ANSI étendus dans les mots de passe si votre organisation utilise plusieurs systèmes d’exploitation différents. Par exemple, ces systèmes peuvent être normalisés selon la norme ISO-8859-15. L’implémentation réelle de protocoles sous Windows utilise souvent l’encodage UNICODE ou UTF8 plutôt que l’encodage ANSI réel.

Exemples de mots de passe qui contiennent des caractères du jeu de caractères ANSI étendu : kUμ!¶0o et Wf©$0k#»g≤5ªrd.

Phrases secrètes sous Windows

Une phrase secrète est une forme différente de mot de passe basé sur des jetons, dans laquelle les jetons sont des mots plutôt que des symboles d’un jeu de caractères. Par exemple, une phrase secrète peut contenir des caractères spéciaux, des chiffres, des lettres majuscules et des lettres minuscules. Les principales différences entre les phrases secrètes et les mots de passe sont les suivantes :

  • Une phrase secrète a généralement des espaces, contrairement aux mots de passe.
  • Une phrase secrète est beaucoup plus longue que la grande majorité des mots de passe et, plus important, plus longue que n’importe quelle chaîne aléatoire de lettres qu’une personne ordinaire pourrait mémoriser.

Les phrases secrètes qui respectent la limite de caractères définie dans la stratégie sont généralement plus difficiles à déchiffrer que les mots de passe, car elles contiennent plus de caractères. Les hachages LM et NT stockent le mot de passe ou la phrase secrète, et le hachage LM est le plus faible des deux.

Il existe plusieurs façons de s’assurer que le hachage LM n’est pas stocké ; l’une d’elles consiste à utiliser des mots de passe ou des phrases secrètes de plus de 14 caractères. Vous pouvez également utiliser le paramètre de stratégie de groupe Sécurité réseau : ne pas stocker de valeurs de hachage de niveau LAN Manager sur la prochaine modification de mot de passe. L’utilisation de ce paramètre de stratégie désactive globalement les hachages LM de stockage pour tous les comptes. La modification prendra effet à la prochaine modification du mot de passe. Étant donné que l’effet de la stratégie n’est pas immédiat, vous ne remarquerez pas immédiatement de problèmes d’interopérabilité potentiels causés par le non-stockage des hachages LM.

Stratégies de mot de passe locales disponibles sous Windows

Vous pouvez implémenter un paramètre de stratégie de mot de passe qui impose les exigences de complexité des mots de passe. Pour plus d’informations sur ce paramètre de stratégie, consultez Le mot de passe doit respecter des exigences de complexité. Pour plus d’informations sur l’application d’une stratégie de mot de passe, consultez Appliquer ou modifier une stratégie de mot de passe. Pour plus d’informations sur tous les paramètres de stratégie de mot de passe disponibles, consultez Stratégie de mot de passe.

Stratégie de mot de passe affinée disponible via Active Directory Domain Services (AD DS)

À partir de Windows Server 2008, vous pouvez utiliser des stratégies de mot de passe affinées pour spécifier plusieurs stratégies de mot de passe et pour appliquer des stratégies différentes de restrictions de mot de passe et de verrouillage de compte à des ensembles d’utilisateurs différents au sein d’un seul domaine. Par exemple, pour renforcer la sécurité des comptes disposant de privilèges, vous pouvez appliquer des paramètres plus stricts à ces comptes et des paramètres moins stricts aux comptes d’autres utilisateurs. Ou, dans certains cas, vous pouvez appliquer une stratégie de mot de passe spéciale pour les comptes dont les mots de passe sont synchronisés avec d’autres sources de données.

Pour stocker des stratégies de mot de passe affinées, deux nouvelles classes d’objets existent dans le schéma AD DS :

  • Conteneur de paramètres de mot de passe
  • Paramètres de mot de passe

Pour plus d’informations sur ces stratégies, consultez AD DS : Stratégies de mot de passe affinées.