User Account Control

Un article de Wikipédia, l'encyclopédie libre.

User Account Control (UAC, contrôle du compte de l'utilisateur), est un mécanisme de protection des données introduit dans le système d'exploitation Microsoft Windows Vista.

UAC est aussi connu sous ses dénominations précédentes durant le développement de Windows Vista, à savoir UAP (User Account Protection) et LUA (Least User Privilege).

Sommaire

[modifier] Présentation

Ce mécanisme permet d'exécuter par défaut les programmes avec des droits restreints, évitant ainsi que des applications puissent tourner avec des droits administratifs, qui permettrait de modifier la sécurité du système d'exploitation.

[modifier] Genèse

Par rapport à d'autres systèmes d'exploitations modernes comme Linux ou Mac OS X, on a souvent reproché à Windows son manque de sécurité et sa capacité à être infecté par des virus, des malwares ou des spywares. Le problème originel réside surtout dans le fait que l'utilisateur principal d'un système Windows se connecte par défaut en tant qu'administrateur, ce qui l'autorise à modifier pleinement le système et délégue aux programmes tous les droits d'accès et de contrôle sur les objets système. Historiquement, ce comportement hérite des premières versions grand public de Windows, où l'utilisateur devait pouvoir facilement modifier les paramètres de son système et installer des programmes sans avoir à changer d'utilisateur. Cette démarche est en opposition complète avec celle introduite par Unix, où l'utilisation du compte root est dissuadée en dehors de toute action temporaire d'administration.

Sous Windows, ce mode de fonctionnement a persisté pour de multiples raisons :

  • Peu de recommandations ont été faites dans le passé par Microsoft sur le danger de l'utilisation au quotidien d'un compte administateur,
  • Microsoft n'a jamais fourni d'outil intégré lors de l'installation de Windows pour que la création d'une paire de compte administrateur/limité soit réalisée de manière automatique ou conviviale,
  • Un nombre non négligeable d'applications Windows ne s'exécutent pas correctement si elles n'obtiennent pas de droits administrateur.

[modifier] Rôle et fonctionnement d'UAC

UAC a été conçu dans le cadre d'un processus global visé à introduire plus de sécurité dans Windows. UAC permet de définir pour chaque programme qui est lancé un niveau de privilèges indépendant des droits possédés par l'utilisateur actif. Lorsque UAC est activé, tous les utilisateurs (même ceux qui possèdent des privilèges d'administration) possèdent par défaut des droits identiques à ceux des utilisateurs limités.

Un administrateur local se voit ainsi attribuer au niveau du système deux jetons d'accès (access tokens). Le premier est celui qui englobe tous ses droits et ses privilèges administrateur, le second est un dérivé du premier, dit "filtré", qui contient des privilèges d'utilisateur standard. Par défaut, si UAC est activé, c'est le jeton filtré qui est utilisé, à moins qu'un programme signale qu'il doit être élevé pour fonctionner, c’est-à-dire exécuté dans un contexte administratif.

Lorsque Windows détecte qu'un programme nécessite des droits administrateur, il demande explicitement à l'utilisateur de valider un dialogue d'avertissement indiquant que l'application va être démarrée avec des droits étendus. Si l'utilisateur n'est pas administrateur, il doit en outre saisir le mot de passe d'un administrateur actif pour exécuter le programme. Il n'y a pas de moyen permettant d'accorder de manière permanente des droits administrateur à un programme. Il n'est donc plus possible qu'un programme nécessitant des droits administrateur soit lancé de manière invisible, sauf si le programme appelant possède lui-même les droits administrateur et a été lui-même approuvé manuellement par l'utilisateur.

Les exécutables non compatibles UAC (c’est-à-dire qui n'incorporent pas des ressources particulières spécifiant quel contexte ils doivent être démarrés) sont toujours lancés avec des droits restreints et des privilèges minimum. Cela peut provoquer les problèmes qui existaient précédemment lorsque des programmes non conçus pour s'exécuter dans des contextes limités tentaient de manipuler des ressources système. Windows détecte néanmoins automatiquement les installateurs qui sont lancés avec des droits administrateur.

[modifier] Compatibilité

L'activation par défaut d'UAC dans Windows pose certains problèmes de compatibilité puisque d'une part cela force les programmes à fonctionner dans un environnement restreint (obligeant dans certains cas un redécoupage fonctionnel en fonction des droits d'exécution), d'autre part car le lancement par programmation d'un programme nécessitant des privilèges administrateur échouera par défaut. Néanmoins, des programmes qui évitent de demander plus de droit que nécessaire ne doivent pas être en théorie affectés par UAC.

Les applications non compatibles UAC sont associées avec un service de virtualisation, activé lors de l'accès aux branches de registre à visibilité globale (telle HKEY_LOCAL_MACHINE\Software) et à certaines parties du système de fichiers (comme C:\Program Files). Les modifications apportées aux objets virtualisés sont enregistrées dans le profil de l'utilisateur courant et non pour tous les utilisateurs de l'ordinateur.

[modifier] Aspect graphique

Microsoft a introduit une nouvelle icône, celle d'un bouclier aux couleurs de Windows, pour signifier que l'utilisation d'un élément d'une interface demandera la validation du dialogue UAC d'exécution.

[modifier] Désactivation

Théoriquement l'UAC est une avancée dans la gestion de Windows. Néanmoins cela devient vite une nuisance, surtout si l'on "teste" souvent des logiciels, matériels etc.

Pour désactiver l'UAC sous Vista il suffit (en tant que compte administrateur) d'aller dans la gestion des comptes utilisateurs, et de cliquer sur l'option "Activer ou désactiver le contrôle des comptes d’utilisateurs" et de décocher la case sur l'utilisation de l'UAC.

Pour plus de détails : http://msdn2.microsoft.com/en-us/library/bb384608.aspx

[modifier] Liens externes