Considérations relatives à la sécurité pour les technologies d’assistance
Les technologies d’assistance sont des applications qui s’exécutent sur le bureau Windows et aident les utilisateurs en situation de handicap à interagir avec le système d’exploitation et d’autres applications s’exécutant sur l’ordinateur, y compris les applications de la nouvelle interface utilisateur de Windows. Les applications de technologie d’assistance fonctionnent en récupérant des informations du système d’exploitation et d’autres applications, puis en présentant les informations de manière accessible à l’utilisateur. Une application de technologie d’assistance peut également "piloter" le système d’exploitation et d’autres applications de manière programmée en fonction des entrées de l’utilisateur.
La nature des applications de technologie d’assistance exige qu’elles traversent les limites des processus et qu’elles aient accès à des processus s’exécutant à un niveau d’intégrité (IL) supérieur au leur. (Une application de technologie d’assistance s’exécute à un IL moyen.) Par exemple, lorsque l’utilisateur tente d’effectuer une tâche nécessitant des privilèges administratifs, Windows présente une boîte de dialogue demandant à l’utilisateur de consentir à continuer. Cette boîte de dialogue s’exécute à un IL supérieur pour la protéger de la communication entre processus, de sorte que les logiciels malveillants ne peuvent pas simuler les entrées de l’utilisateur. De même, l’écran de connexion du bureau s’exécute à un IL supérieur pour empêcher son accès par d’autres processus.
Les applications de technologie d’assistance ont généralement besoin d’accéder aux éléments de l’interface utilisateur système protégée, ou à d’autres processus pouvant s’exécuter à un niveau de privilège supérieur. Par conséquent, les applications de technologie d’assistance doivent être de confiance pour le système et doivent s’exécuter avec des privilèges spéciaux.
Pour obtenir l’accès aux processus à IL supérieur, une application de technologie d’assistance doit définir l’indicateur UIAccess dans le manifeste de l’application et être lancée par un utilisateur disposant des privilèges administratifs.
Remarque
Les privilèges d’accès sont contraints comme suit :
- Une application qui n’a pas UIAccess dans le manifeste démarre avec un IL moyen et ne peut pas accéder à l’interface utilisateur des processus élevés (IL « moyen+ »).
- Une application qui a UIAccess dans le manifeste et est lancée par un utilisateur qui ne fait pas partie du groupe des administrateurs démarre en tant que IL « moyen+ » et ne peut pas accéder à l’interface utilisateur élevée (aucune application s’exécutant en tant que IL « élevé », comme les applications lancées via un Clic droit :> Exécuter en tant qu’administrateur).
- Une application qui a UIAccess et est lancée par un utilisateur admin démarre en tant que IL « élevé » et peut accéder à l’interface utilisateur élevée car elle a le même IL.
UIAccess n’est pas suffisant pour qu’un processus franchisse la limite du IL.
En plus d’avoir accès à des processus de niveau IL supérieur, une application de technologie d’assistance avec ces privilèges peut s’exécuter comme l’application la plus élevée dans l’ordre z à tout moment, ce qui signifie qu’une application de technologie d’assistance peut être visible et disponible dès que l’utilisateur en a besoin.
Important
Aucun des scénarios précédemment listés ne fournit d’accès à l’interface utilisateur s’exécutant sous le IL système. Cela n’est possible que si le processus est lancé sur le bureau du contrôle de compte utilisateur (UAC) sous SYSTEM (et IL système). Dans ce cas, la définition de UIAccess n’a aucun effet.
Exigences UIAccess pour les applications de technologie d’assistance
Une application de technologie d’assistance est une application de bureau Windows qui interagit avec d’autres processus s’exécutant sur le bureau et dans la nouvelle interface utilisateur de Windows pour obtenir des informations du système et des applications. L’application de technologie d’assistance peut alors fournir les informations aux utilisateurs en situation de handicap.
Une application de technologie d’assistance accède à d’autres processus en définissant l’indicateur UIAccess dans le manifeste de l’application. Pour utiliser l’indicateur UIAccess, une application de technologie d’assistance doit répondre aux exigences suivantes.
- Nécessité d’afficher, d’interagir avec ou de refléter des informations d’une autre application pour fournir des informations pour un scénario d’accessibilité, et/ou
- Nécessité de s’exécuter comme la fenêtre la plus élevée pour obtenir ou afficher ces informations.
Pour utiliser UIAccess, une application de technologie d’assistance doit :
- Être signée avec un certificat pour interagir avec des applications s’exécutant à un niveau de privilège supérieur.
- Être de confiance pour le système. L’application doit être installée dans un emplacement sécurisé nécessitant une invite de contrôle de compte d’utilisateur (UAC) pour y accéder. Par exemple, le dossier Program Files.
- Être construite avec un fichier manifeste incluant l’indicateur uiAccess.
UIAccess ne doit pas être utilisé :
Par des applications qui ne sont pas des technologies d’assistance.
Par des applications de technologie d’assistance qui affichent des informations ou une interface utilisateur non pertinentes pour le scénario d’accessibilité qu’elles ciblent.
Par des applications qui veulent simplement apparaître au-dessus d’autres applications dans la nouvelle interface utilisateur de Windows.
Remarque
Les applications UWP n’ont pas UIAccess comme option disponible.
Définition de UIAccess dans le fichier manifeste de l’application
Pour obtenir l’accès à l’interface utilisateur système protégée, les applications doivent être construites avec un fichier manifeste incluant un attribut spécial dans le fichier manifeste. Cet attribut uiAccess est inclus dans la balise requestedExecutionLevel, comme indiqué dans l’exemple de code suivant.
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="highestAvailable"
uiAccess="true" />
</requestedPrivileges>
</security>
</trustInfo>
La valeur de l’attribut level dans ce code est un exemple uniquement.
UIAccess est « false » par défaut. Si l’attribut est omis, ou s’il n’y a pas de manifeste, l’application ne peut pas obtenir l’accès à l’interface utilisateur protégée.
Pour plus d’informations sur la sécurité Windows, la signature des applications et la création de manifestes, veuillez consulter la section L’histoire du développeur Windows Vista et Windows Server 2008 : Exigences de développement d’applications Windows Vista pour le contrôle de compte d’utilisateur (UAC).
Rubriques connexes