
Cet article doit êtreactualisé().
LeSAM (Security Account Manager ougestionnaire des comptes de sécurité) est labase de données des comptes locaux surWindows Server 2003,Windows XP,Windows 2000. C'est l'un des composants de labase de registre. Elle contient lesmots de passe locaux.
L'utilitairesyskey deMicrosoft est nécessaire si on veut se protéger contre un attaquant local (personne ayant un accès physique au local où se trouve le PC) ; cet utilitaire permet d'améliorer la sécurité sur la clé dechiffrement des mots de passe.
Les contrôles sur le SAM se font via le serviceGestionnaire de comptes de sécurité, il fait partie des services nécessaires pour le bon fonctionnement de Windows. Son nom américain exact estSecurity Accounts Manager (avec uns àAccount).
C'est l'un des composants qui est géré par l'exécutablelsass.exe.
Pour que ce service fonctionne, il est nécessaire que le service « Appel de procédures distantes » (RPC) soit démarré.
Si le service "Gestionnaire de comptes de sécurité" s'interrompt, Windows redémarre l'ordinateur.
Le service "Distributed Transaction Coordinator" utilise le service "Gestionnaire de comptes de sécurité".
Lafonction de hachage utilisée pour les mots de passe estMD5 (Message Digest) (sur les dernières versions de Windows, en 2005).
Le SAM est stocké physiquement dans le fichier%SystemRoot%\system32\Config\SAM. C'est un fichier de ruche inclus dans HKEY_LOCAL_MACHINE, lui-même inclus dans labase de registre.
L'emplacement physique du SAM utilisé lors du dernier boot est l'un des éléments conservés sous la cléhivelist dans la base de registre :
Les bibliothèquesDLL utilisés pour le SAM sont
L'outil de restaurationrstrui.exe laisse intact les mots de passe locaux, pour éviter la confusion chez les utilisateurs après une restauration.
Il existe 3 types de comptes : utilisateur, ordinateur et groupe.
Les informations de sécurité spécifique à un utilisateur sont stockées dans 2 emplacements sous l'arborescence HKLM\SAM\SAM\Domains\Account\Users[1]. L'une des entrées correspond à l'identifiant unique de l'utilisateur et l'autre à son nom. Cette deuxième entrée contient seulement l'identifiant unique.
Pour des raisons de sécurité, il est conseillé d'interdire l'énumération de comptes et de partages dans le SAM aux utilisateurs anonymes sousWindows 2003 etXP. L'inconvénient est que cela pose des problèmes de compatibilité avecNT 4.
Cette fonctionnalité est paramétrée dans la base de registre par les 2 valeursRestrictAnonymous[2] etRestrictAnonymoussam, dans la cléHKEY_LOCAL_MACHINE\System\CurrentControlSet\LSA (LSA signifie iciLocal Subsystem Authority, voirLsass.exe).
Dans Windows 2003 et XP, ces 2 paramètres du registre sont modifiés via la console de managementsecpol.msc. Sur une version de Windows en français, cet utilitaire est appelé par défautStratégie de sécurité locale dans lesoutils d'administration. Lorsqu'on clique dessus, la fenêtre qui s'affiche s'appelleParamètres de sécurité locaux. Les deux options relatives à l'énumération par un utilisateur anonyme sont dansStratégies locales/Options de sécurité.
Sur la première version deWindows NT, la sécurité du SAM était par défaut au minimum.Au fil des versions, la sécurité s'est améliorée, par exemple, passage du hachage deMD4 àMD5.
En parallèle, à partir du pack 3 de Windows NT, l'utilitairesyskey permet d'améliorer le chiffrement des mots de passe, ce qui assure une meilleure sécurité face à un attaquant local.
Initialement le SAM gérait les comptes locaux et les comptes de domaine, sous Windows NT. À partir deWindows 2000, les comptes de domaine sont gérés parActive Directory. Si l'administrateur système veut relancer Active Directory en mode restauration, il devra se connecter pour un compte qui fait partie de la SAM et non pas un compte d'Active Directory.
Sous Windows NT, la limite théorique sur la taille du SAM est de 40 000 comptes ; empiriquement, dans certains cas, il a été possible d'atteindre les 60 000 comptes. SousWindows Server 2000 ouWindows Server 2003, cette limite n'a aucun intérêt pratique.