Accesso alle chiavi del Registro di sistema in modo sicuro

I problemi dei clienti sono stati spesso tracciati a componenti esterni, ad esempio applicazioni di installazione di dispositivi di terze parti, che eseguono le operazioni seguenti:

  • Eliminare le chiavi del Registro di sistema critiche.

  • Modificare le autorizzazioni di accesso delle chiavi del Registro di sistema critiche.

Molti dei problemi riscontrati con i componenti esterni sono causati dall'uso dell'autorizzazione di accesso KEY_ALL_ACCESS per le chiavi del Registro di sistema. A partire da Windows Server 2003, SetupDiCreateDevRegKey concede solo autorizzazioni di accesso KEY_READ e KEY_WRITE e non KEY_ALL_ACCESS. A partire da Windows Vista, vengono applicate altre restrizioni KEY_ALL_ACCESS.

Seguire queste linee guida per accedere in modo sicuro alle chiavi del Registro di sistema:

  • Usare solo l'API SetupAPI, le funzioni di Configuration Manager e altre API correlate al dispositivo supportate per aprire le chiavi del Registro di sistema del dispositivo, in particolare le chiavi hardware e le chiavi software per un dispositivo.

    Queste funzioni consentono di risolvere i problemi comuni derivanti dalle restrizioni relative alle autorizzazioni di accesso.

  • Il percorso e il formato delle chiavi del Registro di sistema potrebbero cambiare tra versioni diverse di Windows. Non fare ipotesi sulla posizione, sul formato o sul significato delle chiavi o dei valori del Registro di sistema usati per l'installazione del dispositivo e del driver.

    Per altre informazioni sulle chiavi e sugli alberi del Registro di sistema, vedere Alberi e chiavi del Registro di sistema per dispositivi e driver.

  • Non usare il Registro di sistema per accedere direttamente o modificare le impostazioni interne del dispositivo.

  • Richiedere solo le autorizzazioni di accesso minime necessarie per ogni attività, ad esempio:

    • KEY_SET_VALUE

    • KEY_CREATE_SUB_KEY

    • KEY_QUERY_VALUE

    • KEY_ENUMERATE_SUB_KEYS

  • Non aprire direttamente le chiavi della classe di installazione del dispositivo nel Registro di sistema. Come per qualsiasi chiave del Registro di sistema, il percorso e il nome delle chiavi della classe di installazione del dispositivo potrebbero cambiare tra le versioni di Windows. Per informazioni su come accedere correttamente a una chiave della classe di configurazione del dispositivo, vedere Apertura delle chiavi del Registro di sistema per una classe di configurazione del dispositivo

  • Non aprire direttamente le chiavi della classe dell'interfaccia del dispositivo nel Registro di sistema. Come per qualsiasi chiave del Registro di sistema, il percorso e il nome delle chiavi della classe dell'interfaccia del dispositivo potrebbero cambiare tra le versioni di Windows.

    Per aprire le chiavi della classe dell'interfaccia del dispositivo in modo sicuro, usare CM_Open_Class_Key con l'impostazione CM_OPEN_CLASS_KEY_INTERFACE nel parametro ulFlags oppure usare SetupDiOpenClassRegKeyEx e impostare DIOCR_INSTALLER nel parametro Flags .

  • Utilizzare solo le direttive INF per modificare le chiavi del Registro di sistema riservate per l'uso dal sistema operativo. Per altre informazioni, vedere Riepilogo delle direttive INF.

  • I programmi di installazione di classe e i co-installer non possono chiamare le funzioni del Registro di sistema per creare, modificare o eliminare valori del Registro di sistema riservati per l'uso dal sistema operativo.

Per altre informazioni sulle autorizzazioni di accesso delle chiavi del Registro di sistema, vedere Sicurezza delle chiavi del Registro di sistema e Diritti di accesso.