- Winlogon
-
Winlogon est un composant de Windows qui gère l'ouverture et la fermeture de session, et le Ctrl-Alt-Delete. En particulier,
- il charge le profil d'un utilisateur après qu'il s'est authentifié
- il gère l'écran de veille ; sur le retour au mode normal, on peut paramétrer WinLogon pour obliger l'utilisateur à s'authentifier une nouvelle fois.
Les fonctionnalités d'authentification et d'identification sont faites via la bibliothèque logicielle GINA[1] (Graphical Identification aNd Authorization). Winlogon gère les fonctions d'interface intermédiaire, qui sont indépendantes de la stratégie d'authentification.
Il implémente aussi les opérations de time-out.
Winlogon vérifie aussi la licence Windows.
Sommaire
Processus système critique
WinLogon est un des processus système critiques de windows, c'est-à-dire qu'il ne peut être arrêté. Les autres processus critiques sont :
- lsass.exe (sécurité locale)
- services (Windows Service Controller)
- smss.exe (Gestionnaire de session)
- csrss.exe (Client/Server Runtime SubSystem)
Procédure de démarrage de winlogon
Voir Processus de démarrage de Windows NT#Winlogon
Ctrl-Alt-Suppr
Ctrl-Alt-Suppr intercepté par WinLogon
WinLogon intercepte les Ctrl-Alt-Sup. Dans ce cas, il appelle les fonctions de traitement du SAS (Secure attention key) dans la bibliothèque GINA. Voir (en) en:Secure attention key
Comparatif avec le ctrlaltsuppr de linux
Dans la configuration de la plupart des distributions linux, la frappe de Ctrl-Alt-Suppr provoque le reboot (shutdown -r) du système, à moins qu'une interface graphique soit active. Ceci est paramétré par une ligne du fichier inittab (ligne contenant la chaîne de caractères ctrlaltsuppr).
NB : dans le cas d'une interface graphique sous linux, le ctrlaltsuppr est dans la plupart des cas intercepté par des processus intermédiaires et ne provoque donc pas le reboot.
Un WINLOGON.EXE pour chaque utilisateur connecté
S'il y a N utilisateurs qui ont ouvert une session, il y aura
- Un SEUL processus smss.exe (Session Manager SubSystem)
- N processus winlogon.exe
- N processus csrss.exe (Client/Server Runtime SubSystem)
Chargement d'un profil utilisateur
Quand un utilisateur s'est connecté et authentifié, WinLogon charge son profil dans le registre ; cela permet aux processus de cet utilisateur d'utiliser la clé de registre HKEY_CURRENT_USER (plus exactement, toutes les données qui sont sous l'arborescence correspondante). WinLogon fait cela automatiquement après un login réussi et avant l'activation du shell de l'utilisateur.
Fonction CreateProcessAsUser
Sur la connexion d'un utilisateur, WinLogon appelle une fonction de la bibliothèque GINA, qui elle-même appelle une fonction appelée CreateProcessAsUser. Ce comportement par défaut peut éventuellement être modifié pour des besoins spécifiques (sécurité ou autre).
Le shell de Windows
Après qu'un utilisateur s'est authentifié, il travaille sous un shell graphique, en général Explorateur Windows (explorer.exe).
En fait, le shell utilisé est un paramètre de Winlogon ; à la place de l'explorateur Windows, on peut mettre par exemple LiteStep.
Ce paramètre de Winlogon est défini par l'entrée du registre HKey_Current_User\Software\Microsoft\Windows NT\CurrentVersion\Winlogon>Shell .
Contrôle de l'écran de veille
Winlogon contrôle le clavier et la souris pour déterminer quand activer un écran de veille. Une fois que l'écran de veille est activé, il continue à contrôler le clavier et la souris pour arrêter l'écran de veille dès qu'il détecte une activité.
Si l'écran de veille est marqué comme sécurisé, WinLogon verrouillera la session en cours et refera une demande d'authentification via la fonction WlxDisplayLockedNotice .
Écran d'accueil sur la connexion d'un utilisateur
Écran d'accueil sur la connexion d'un utilisateur de Windows
La liste des utilisateurs qui apparaissent éventuellement dans l'écran d'accueil est fonction du paramétrage de Winlogon. Exemple : pour que l'utilisateur Dupont n'apparaisse pas dans cette liste, il faut créer une valeur "Dupont", valeur 0 de type Dword dans HKey_Local_Machine\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList". Dans le cas particulier d'un utilisateur qui a été renommé, le nom de la valeur doit être le nom initial de l'utilisateur (par exemple Dupont dans le cas d'un Mr Dupont ayant changé de patronyme pour Dupond, et il faudra créer une valeur Dword nommée Dupont à 0 pour éviter qu'il apparaisse dans l'écran d'accueil).
L'utilitaire regedit n'affichera la clé SpecialAccounts que si l'utilisateur a des droits suffisants, par exemple, s'il est membre du groupe des administrateurs.
REMARQUE
- L'affichage ou le non-affichage du dernier utilisateur connecté avec succès n'est pas un paramètre de Winlogon (paramètre Dontdisplaylastusername de HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Network)
Comparatif avec l'écran d'accueil de linux sur la connexion d'un utilisateur
Sous linux, les logiciels gdmlogin et kdm (pour KDE) font partie de ceux qui assurent une fonction analogue à celle de l'écran d'accueil de WinLogon.
Le paramètre Dontdisplaylastusername de Microsoft Windows est analogue au paramètre DisplayLastLogin de gdmlogin.
Autologon
Autologon de Windows
Pour améliorer l'ergonomie (au détriment de la sécurité), il est possible de pouvoir se connecter automatiquement sans que l'utilisateur soit obligé de s'authentifier. Le paramétrage se fait sous la clef de registre HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon. Cette clef est interrogée par le processus Winlogon.exe lorsqu'une ouverture de session est sollicitée.
Les valeurs chaînes suivantes sont nécessaires à un autlogon :
- AutoAdminLogon doit être égale à 1 (active l'autologon)
- DefaultUserName doit contenir le nom du compte utilisé
- DefaultPassword doit contenir le mot de passe du compte utilisé
- DefaultDomainName doit contenir le nom de domaine du compte utilisé
Deux autres valeurs peuvent jouer un rôle :
- AutologonCount est une valeur DWORD qui contient le nombre d'ouverture de session automatique souhaité. Cette valeur de décrémente de 1 à chaque ouverture de session (les session TSE sont comptabilisées). Une fois arrivée à 0, le système repasse AutoAdminLogon à 0 et supprime la valeur DefaultPassword.
- ForceAutoLogon est une valeur chaîne. Si elle est égale à 1, elle active l'autologon à la fermeture de session. Sans elle l'autologon n'est actif qu'au démarrage du système. Elle permet d'exécuter un LogOff/LogOn en automatique.
Comparatif avec l'autologon de linux
L'autologon est aussi possible sous linux; par exemple, si on utilise l'interface GNOME, le paramètre s'appelle automaticLogonEnable (fichier de configuration : gdm.conf). Il est aussi possible d'utiliser gdmsetup.
Voir aussi
Articles connexes
- Shell de Windows
- (en) GINA
Liens externes
- WinLogon sur le site de commentcamarche
- Winlogon chez Microsoft
- MSKB:193361 MSGINA.DLL does not Reset WINLOGON Structure
- Winlogon décrit et analysé sur le site fichier.net
Notes
- (en) GINA : Bibliothèque Windows pour l'authentification et l'identification, NB : Sur Windows Vista, GINA a été remplacé par Credential Providers
Catégories :- Authentification
- Composant Windows
Wikimedia Foundation. 2010.