Freigeben über


Sicherheitsüberlegungen für Hilfstechnologien

Hilfstechnologien sind Anwendungen, die auf dem Windows-Desktop ausgeführt werden und Benutzern bei der Barrierefreiheit helfen, mit dem Betriebssystem und anderen Anwendungen zu interagieren, die auf dem Computer ausgeführt werden, einschließlich Anwendungen in der neuen Windows-Benutzeroberfläche. Hilfstechnologieanwendungen funktionieren, indem Sie Informationen aus dem Betriebssystem und anderen Anwendungen abrufen und die Informationen dann auf eine Weise darstellen, die für den Benutzer zugänglich ist. Eine Hilfstechnologieanwendung kann auch programmgesteuert das Betriebssystem und andere Anwendungen basierend auf Eingaben des Benutzers "steuern".

Die Natur von Hilfstechnologieanwendungen erfordert, dass sie Prozessgrenzen überschreiten und Zugriff auf Prozesse haben, die mit einer höheren Integritätsebene (IL) ausgeführt werden als sie selbst. (Eine Hilfstechnologieanwendung wird bei mittlerer IL ausgeführt.) Wenn der Benutzer beispielsweise versucht, eine Aufgabe auszuführen, die Administratorrechte erfordert, zeigt Windows ein Dialogfeld an, in dem der Benutzer um seine Zustimmung zum Fortfahren gebeten wird. Dieses Dialogfeld wird mit einer höheren IL ausgeführt, um es vor prozessübergreifender Kommunikation zu schützen, sodass Schadsoftware keine Benutzereingaben simulieren kann. Ebenso wird der Desktopanmeldungsbildschirm mit einer höheren IL ausgeführt, um zu verhindern, dass andere Prozesse darauf zugreifen.

Hilfstechnologieanwendungen benötigen in der Regel Zugriff auf die geschützten Benutzeroberflächenelemente des Systems oder auf andere Prozesse, die möglicherweise mit einer höheren Berechtigungsstufe ausgeführt werden. Daher müssen Hilfstechnologieanwendungen vom System als vertrauenswürdig eingestuft werden und mit speziellen Berechtigungen ausgeführt werden.

Um Zugriff auf höhere IL-Prozesse zu erhalten, muss eine Hilfstechnologieanwendung das UIAccess-Flag im Manifest der Anwendung festlegen und von einem Benutzer mit Administratorrechten gestartet werden.

Hinweis

Die Zugriffsberechtigungen sind wie folgt eingeschränkt:

  • Eine Anwendung ohne UIAccess im Manifest beginnt mit mittlerer IL und kann nicht auf die Benutzeroberfläche des Prozesses mit erhöhten Rechten ("mittel+" IL) zugreifen.
  • Eine Anwendung, die über UIAccess im Manifest verfügt und von einem Benutzer gestartet wird, der sich nicht in der Gruppe "Administratoren" befindet, beginnt als "mittlere+" IL und kann nicht auf erhöhte Ui zugreifen (nichts, das als "hohe" IL ausgeführt wird, z. B. Apps, die über einen Rechtsklick gestartet werden –> Als Administrator ausführen).
  • Eine Anwendung verfügt über Benutzeroberflächenzugriff und wird von einem Administratorbenutzer gestartet, beginnt als "hohe" IL und kann auf die Benutzeroberfläche mit erhöhten Rechten zugreifen, da sie über die gleiche IL verfügt.

UIAccess reicht nicht aus, damit ein Prozess die IL-Grenze durchläuft.

Zusätzlich zum Zugriff auf höhere IL-Prozesse kann eine Hilfstechnologieanwendung mit diesen Berechtigungen jederzeit als oberste Anwendung in der Z-Reihenfolge ausgeführt werden, was bedeutet, dass eine Hilfstechnologieanwendung sichtbar und verfügbar sein kann, wenn der Benutzer sie benötigt.

Wichtig

Keines der zuvor aufgeführten Szenarien bietet Zugriff auf die Benutzeroberfläche, die unter der System-IL ausgeführt wird. Dies ist nur möglich, wenn der Prozess auf dem Desktop der Benutzerkontensteuerung (UAC) unter SYSTEM (und System IL) gestartet wird. In diesem Fall hat das Festlegen von UIAccess keine Auswirkungen.

UIAccess-Anforderungen für Hilfstechnologieanwendungen

Eine Hilfstechnologieanwendung ist eine Windows Windows-Desktopanwendung, die mit anderen Prozessen interagiert, die auf dem Desktop und in der neuen Windows-Benutzeroberfläche ausgeführt werden, um Informationen vom System und den Anwendungen abzurufen. Die Hilfstechnologieanwendung kann dann die Informationen für Barrierefreiheitsbenutzer bereitstellen.

Eine Hilfstechnologieanwendung erhält Zugriff auf andere Prozesse, indem sie das UIAccess-Flag im Anwendungsmanifest festlegt. Um das UIAccess-Flag verwenden zu können, muss eine Hilfstechnologieanwendung die folgenden Anforderungen erfüllen.

  • Erforderlich, um Informationen aus einer anderen Anwendung anzuzeigen, mit ihnen zu interagieren oder zu reflektieren, um Informationen für ein Barrierefreiheitsszenario bereitzustellen, und/oder
  • Er muss als oberstes Fenster ausgeführt werden, um diese Informationen abzurufen oder anzuzeigen.

Um UIAccess verwenden zu können, muss eine Hilfstechnologieanwendung:

  • Mit einem Zertifikat signiert sein, um mit Anwendungen zu interagieren, die auf einer höheren Berechtigungsstufe ausgeführt werden.
  • Vom System als vertrauenswürdig eingestuft werden. Die Anwendung muss an einem sicheren Speicherort installiert werden, der eine Eingabeaufforderung für die Benutzerkontensteuerung (UAC) für den Zugriff erfordert. Beispiel: Der Ordner "Programme".
  • Erstellen Sie mit einer Manifestdatei, die das uiAccess-Flag enthält.

UIAccess sollte nicht verwendet werden:

  • Von Anwendungen, die keine Hilfstechnologien sind.

  • Durch Hilfstechnologieanwendungen, die Informationen oder Ui anzeigen, die für das Barrierefreiheitsszenario, auf das sie abzielen, nicht relevant sind.

  • Von Anwendungen, die nur über anderen Anwendungen in der neuen Windows-Benutzeroberfläche angezeigt werden sollen.

    Hinweis

    Anwendungen, die für die neue Windows-Benutzeroberfläche entwickelt wurden, verfügen nicht über UIAccess als option.

     

Festlegen von UIAccess in der Anwendungsmanifestdatei

Um Zugriff auf die geschützte Systemoberfläche zu erhalten, müssen Anwendungen mit einer Manifestdatei erstellt werden, die ein spezielles Attribut in der Manifestdatei enthält. Dieses uiAccess-Attribut ist im requestedExecutionLevel-Tag enthalten, wie im folgenden Codebeispiel gezeigt.

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
        <requestedPrivileges> 
        <requestedExecutionLevel 
            level="highestAvailable" 
            uiAccess="true" /> 
        </requestedPrivileges> 
    </security> 
</trustInfo> 

Der Wert des level-Attributs in diesem Code ist nur ein Beispiel.

UIAccess ist standardmäßig "false". Wenn das Attribut ausgelassen wird oder kein Manifest vorhanden ist, kann die Anwendung keinen Zugriff auf die geschützte Benutzeroberfläche erhalten.

Weitere Informationen zur Windows-Sicherheit, zum Signieren von Anwendungen und zum Erstellen von Manifesten finden Sie unter Windows Vista und Windows Server 2008 Developer Story: Windows Vista Application Development Requirements for User Account Control (UAC) auf MSDN.

Grundlagen der Benutzeroberflächenautomatisierung