Considerazioni sulla sicurezza per Assistive Technologies

Le tecnologie assistive sono applicazioni eseguite sul desktop di Windows e consentono agli utenti di accessibilità di interagire con il sistema operativo e altre applicazioni in esecuzione nel computer, incluse le applicazioni nella nuova interfaccia utente di Windows. Le applicazioni di assistive technology funzionano recuperando informazioni dal sistema operativo e da altre applicazioni e quindi presentando le informazioni in modo accessibile all'utente. Un'applicazione di assistive technology può anche "guidare" a livello di codice il sistema operativo e altre applicazioni in base all'input dell'utente.

La natura delle applicazioni di assistive technology richiede l'attraversamento dei limiti dei processi e l'accesso ai processi eseguiti a un livello di integrità superiore (IL) rispetto a se stessi. Un'applicazione di assistive technology viene eseguita al livello INTERMEDIo medio. Ad esempio, quando l'utente tenta di eseguire un'attività che richiede privilegi amministrativi, Windows visualizza una finestra di dialogo in cui viene chiesto all'utente il consenso per continuare. Questa finestra di dialogo viene eseguita in un livello di integrità superiore per proteggerla dalle comunicazioni tra processi, in modo che il software dannoso non possa simulare l'input dell'utente. Analogamente, la schermata di accesso desktop viene eseguita con un livello di integrità superiore per impedire l'accesso da parte di altri processi.

Le applicazioni di assistive technology richiedono in genere l'accesso agli elementi dell'interfaccia utente del sistema protetto o ad altri processi che potrebbero essere in esecuzione a un livello di privilegi superiore. Pertanto, le applicazioni di assistive technology devono essere considerate attendibili dal sistema e devono essere eseguite con privilegi speciali.

Per ottenere l'accesso a processi IL più elevati, un'applicazione di assistive technology deve impostare il flag UIAccess nel manifesto dell'applicazione e essere avviato da un utente con privilegi di amministratore.

Nota

I privilegi di accesso sono vincolati come segue:

  • Un'applicazione che non ha UIAccess nel manifesto inizia con il supporto IL e non può accedere all'interfaccia utente del processo con privilegi elevati ("medium+" IL).
  • Un'applicazione con UIAccess nel manifesto e viene avviata da un utente che non fa parte del gruppo administrators, inizia come "medium+" IL e non può accedere all'interfaccia utente con privilegi elevati (niente in esecuzione come "alto", ad esempio le app avviate tramite un clic destro -> Esegui come amministratore).
  • Un'applicazione ha accesso all'interfaccia utente e viene avviata da un utente amministratore inizia come "alto" il e può accedere a un'interfaccia utente con privilegi elevati perché ha lo stesso IL.

UIAccess non è sufficiente per un processo per spostarsi verso l'alto attraverso il limite IL.

Oltre ad avere accesso a processi IL più elevati, un'applicazione di assistive technology con questi privilegi può essere eseguita come l'applicazione più in alto nell'ordine z in qualsiasi momento, ovvero un'applicazione di assistive technology può essere visibile e disponibile ogni volta che l'utente ne ha bisogno.

Importante

Nessuno degli scenari elencati in precedenza fornisce l'accesso all'interfaccia utente in esecuzione nel sistema IL. Ciò è possibile solo se il processo viene avviato nel desktop del controllo dell'account utente (UAC) in SYSTEM (e system IL). In questo caso, l'impostazione di UIAccess non ha alcun effetto.

Requisiti di UIAccess per le applicazioni assistive technology

Un'applicazione di assistive technology è un'applicazione desktop Di Windows che interagisce con altri processi in esecuzione sul desktop e nella nuova interfaccia utente di Windows per ottenere informazioni dal sistema e dalle applicazioni. L'applicazione assistive technology può quindi fornire le informazioni agli utenti di accessibilità.

Un'applicazione di assistive technology ottiene l'accesso ad altri processi impostando il flag UIAccess nel manifesto dell'applicazione. Per usare il flag UIAccess, un'applicazione di assistive technology deve soddisfare i requisiti seguenti.

  • Richiedere di visualizzare, interagire o riflettere le informazioni di un'altra applicazione per fornire informazioni per uno scenario di accessibilità e/o
  • Richiedere l'esecuzione come finestra superiore per ottenere o visualizzare queste informazioni.

Per usare UIAccess, un'applicazione di assistive technology deve:

  • Firmare con un certificato per interagire con le applicazioni in esecuzione a un livello di privilegi superiore.
  • Essere considerati attendibili dal sistema. L'applicazione deve essere installata in un percorso sicuro che richiede un controllo dell'account utente per l'accesso. Ad esempio, la cartella Programmi.
  • Essere compilati con un file manifesto che include il flag uiAccess.

UiAccess non deve essere usato:

  • Da applicazioni che non sono assistive technology.

  • Tramite applicazioni di assistive technology che visualizzano informazioni o interfaccia utente non rilevanti per lo scenario di accessibilità di destinazione.

  • Per applicazioni che vogliono solo apparire sopra le altre applicazioni nella nuova interfaccia utente di Windows.

    Nota

    Le applicazioni sviluppate per la nuova interfaccia utente di Windows non hanno uiAccess come opzione disponibile.

     

Impostazione di UIAccess nel file manifesto dell'applicazione

Per ottenere l'accesso all'interfaccia utente di sistema protetta, le applicazioni devono essere compilate con un file manifesto che include un attributo speciale nel file manifesto. Questo attributo uiAccess è incluso nel tag requestedExecutionLevel , come illustrato nell'esempio di codice seguente.

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

Il valore dell'attributo level in questo codice è solo un esempio.

UIAccess è "false" per impostazione predefinita. Se l'attributo viene omesso o se non è presente alcun manifesto, l'applicazione non può accedere all'interfaccia utente protetta.

Per altre informazioni sulla sicurezza di Windows, sulla firma delle applicazioni e sulla creazione di manifesti, vedere La storia per sviluppatori di Windows Vista e Windows Server 2008: Requisiti di sviluppo di applicazioni Windows Vista per controllo dell'account utente (UAC) su MSDN.

Nozioni fondamentali sull'automazione interfaccia utente