Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il linguaggio SDDL (Security Descriptor Definition Language) viene usato per rappresentare i descrittori di sicurezza. La sicurezza per gli oggetti dispositivo può essere specificata da una stringa SDDL inserita in un file INF o passata a IoCreateDeviceSecure. Il linguaggio di definizione del descrittore di sicurezza è completamente documentato nella documentazione di Microsoft Windows SDK.
Mentre i file INF supportano l'intera gamma di SDDL, solo un subset del linguaggio è supportato dalla routine IoCreateDeviceSecure . Questo subset è definito qui.
Le stringhe SDDL per gli oggetti dispositivo sono nel formato "D:P" seguito da una o più espressioni del formato "(A;; Access;;; SID)". Il valore SID specifica un identificatore di sicurezza che determina a chi si applica il valore di Access , ad esempio un utente o un gruppo. Il valore access specifica i diritti di accesso consentiti per il SID. I valori Access e SID sono i seguenti.
Quando si usa SDDL per gli oggetti dispositivo, il driver deve collegarsi a Wdmsec.lib.
Accesso
Specifica un valore ACCESS_MASK che determina l'accesso consentito. Questo valore può essere scritto come valore esadecimale nel formato "esadecimale" o come sequenza di codici simbolici di due lettere che rappresentano i diritti di accesso.
I codici seguenti possono essere usati per specificare i diritti di accesso generico.
| Codice | Diritto di accesso generico |
|---|---|
GA |
GENERIC_TUTTO |
GR |
GENERIC_READ |
GW |
SCRITTURA_GENERICA |
GX |
ESECUZIONE_GENERICA |
I codici seguenti possono essere usati per specificare diritti di accesso specifici.
| Codice | Diritto di accesso specifico |
|---|---|
RC |
READ_CONTROL |
SD |
ELIMINA |
WD |
WRITE_DAC |
WO |
ASSEGNA_PROPRIETARIO |
GENERIC_ALL concede tutti i diritti elencati nelle due tabelle precedenti, inclusa la possibilità di modificare l'ACL.
SID
Specifica il SID a cui viene concesso l'accesso specificato. I SID rappresentano account, alias, gruppi, utenti o computer.
I SID seguenti rappresentano gli account nel computer.
| SID | Descrizione |
|---|---|
SY |
Sistema Rappresenta il sistema operativo stesso, inclusi i relativi componenti in modalità utente. |
LS |
Servizio locale Un account predefinito per i servizi locali (che appartiene anche a Authenticated e World). Questo SID è disponibile a partire da Windows XP. |
NS |
Network Service (Servizio di rete) Un account predefinito per i servizi di rete (che appartiene anche a Authenticated e World). Questo SID è disponibile a partire da Windows XP. |
I SID seguenti rappresentano i gruppi nel computer.
| SID | Descrizione |
|---|---|
BA |
Amministratori Gruppo Amministratori predefinito nel computer. |
BU |
Gruppo di utenti predefinito Gruppo che copre tutti gli account utente locali e gli utenti nel dominio. |
BG |
Gruppo ospite predefinito Gruppo che copre gli utenti che accedono usando l'account guest locale o di dominio. |
I SID seguenti descrivono la misura in cui un utente è stato autenticato.
| SID | Descrizione |
|---|---|
AU |
Utenti autenticati Qualsiasi utente riconosciuto dal computer locale o da un dominio. Gli utenti connessi con l'account Guest Builtin non vengono autenticati. Tuttavia, i membri del gruppo Guest con singoli account nel computer o il dominio vengono autenticati. |
UN |
Utente connesso anonimo Qualsiasi utente connesso senza identità, ad esempio una sessione di rete anonima. Gli utenti che accedono con l'account Guest Builtin non sono autenticati o anonimi. Questo SID è disponibile a partire da Windows XP. |
I SID seguenti descrivono come l'utente ha eseguito l'accesso al computer.
| SID | Descrizione |
|---|---|
UI |
Utenti interattivi Utenti che inizialmente hanno eseguito l'accesso al computer in modo "interattivo", ad esempio gli accessi locali e gli accessi di Desktop remoto. |
NU |
Utente di Accesso alla Rete Gli utenti che accedono al computer in remoto, senza accesso interattivo al desktop (ad esempio, condivisione di file o chiamate RPC). |
WD |
Mondo Prima di Windows XP, questo SID copriva ogni sessione, inclusi gli utenti autenticati, gli utenti anonimi e l'account Guest integrato. A partire da Windows XP, questo SID non copre le sessioni di accesso anonime; copre solo gli utenti autenticati e l'account Guest Builtin. Anche il codice non attendibile o "con restrizioni" non è coperto dal SID globale. Per altre informazioni, vedere la descrizione del SID con restrizioni (RC) nella tabella seguente. |
I SEGUENTI SID meritano una menzione speciale.
| SID | Descrizione |
|---|---|
RC |
Codice con restrizioni Questo SID viene usato per controllare l'accesso da codice non attendibile. La convalida ACL rispetto ai token con RC è costituita da due controlli, uno rispetto all'elenco normale di SID del token (che contiene WD per esempio) e uno rispetto a un secondo elenco (in genere contenente RC e un subset dei SID del token originale). L'accesso viene concesso solo se un token supera entrambi i test. Di conseguenza, RC funziona effettivamente in combinazione con altri SID. Qualsiasi ACL che specifica RC deve specificare anche WD. Quando RC è associato a WD in un ACL, viene descritto un superset di Everyone, incluso il codice non attendibile. Il codice non attendibile potrebbe essere avviato usando l'opzione RunAs in Explorer. Per impostazione predefinita, World non copre il codice non attendibile. |
UD |
driver User-Mode Questo SID concede l'accesso ai driver in modalità utente. Attualmente, questo SID copre solo i driver scritti per User-Mode Driver Framework (UMDF). Questo SID è disponibile a partire da Windows 8. Nelle versioni precedenti di Windows, che non riconoscono l'abbreviazione "UD", devi specificare il formato completo di questo SID (S-1-5-84-0-0-0-0-0) per concedere l'accesso ai driver UMDF. Per altre informazioni, vedere Controllo dell'accesso ai dispositivi nella documentazione di User-Mode Driver Framework. |
Esempi di SDDL per oggetti dispositivo
Questa sezione descrive le stringhe SDDL predefinite disponibili in Wdmsec.h. È anche possibile usarli come modelli per definire nuove stringhe SDDL per gli oggetti dispositivo.
SDDL_DEVOBJ_KERNEL_ONLY
"D:P"
SDDL_DEVOBJ_KERNEL_ONLY è l'ACL "vuoto". Il codice in modalità utente (inclusi i processi in esecuzione come sistema) non può aprire il dispositivo.
Un driver del bus PnP può usare questo descrittore durante la creazione di un PDO. Il file INF potrebbe quindi specificare le impostazioni di sicurezza più flessibili per il dispositivo. Specificando questo descrittore, il conducente del bus garantisce che nessun tentativo di aprire il dispositivo prima dell'elaborazione dell'INF avrebbe avuto esito positivo.
Analogamente, un driver non WDM potrebbe usare questo descrittore per rendere inaccessibili i relativi oggetti dispositivo fino a quando il programma in modalità utente appropriato (ad esempio un programma di installazione) imposta il descrittore di sicurezza finale nel Registro di sistema.
In tutti questi casi, l'impostazione predefinita è una sicurezza rigida, allentata in base alle esigenze.
SDDL_DEVOBJ_SYS_ALL
"D:P(A;; GA;;; SY)"
SDDL_DEVOBJ_SYS_ALL è simile a SDDL_DEVOBJ_KERNEL_ONLY, ad eccezione del fatto che oltre al codice in modalità kernel, anche il codice in modalità utente in esecuzione come Sistema è autorizzato ad aprire il dispositivo per qualsiasi accesso.
Un driver legacy potrebbe utilizzare questo ACL per iniziare con impostazioni di sicurezza rigorose e consentire al suo servizio di aprire il dispositivo in fase di esecuzione ai singoli utenti usando la funzione di modalità utente SetFileSecurity. In questo caso, il servizio deve essere in esecuzione come Sistema.
SDDL_DEVOBJ_SYS_ALL_ADM_ALL
"D:P(A;; GA;;; SY)(A;; GA;;; BA)"
SDDL_DEVOBJ_SYS_ALL_ADM_ALL consente il controllo completo del kernel, del sistema e dell'amministratore sul dispositivo. Nessun altro utente può accedere al dispositivo.
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R
"D:P(A;; GA;;; SY)(A;; GRGWGX;;; BA)(A;; GR;;; WD)"
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R consente il controllo completo del kernel e del sistema sul dispositivo. Per impostazione predefinita, l'amministratore può accedere all'intero dispositivo, ma non può modificare l'ACL (l'amministratore deve prima assumere il controllo del dispositivo).
A tutti gli utenti viene concesso l'accesso in lettura (World SID). Il codice non attendibile non può accedere al dispositivo ( il codice non attendibile potrebbe essere avviato usando l'opzione RunAs in Explorer. Per impostazione predefinita, World non copre il codice con restrizioni.
Si noti anche che l'accesso di attraversamento non viene concesso ai normali utenti. Di conseguenza, questo potrebbe non essere un descrittore appropriato per un dispositivo con uno spazio dei nomi.
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R
"D:P(A;; GA;;; SY)(A;; GRGWGX;;; BA)(A;; GR;;; WD)(A;; GR;;; RC)"
SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_R_RES_R consente al kernel e al sistema di avere un pieno controllo sul dispositivo. Per impostazione predefinita, l'amministratore può accedere all'intero dispositivo, ma non può modificare l'ACL (l'amministratore deve prima assumere il controllo del dispositivo).
A tutti gli utenti viene concesso l'accesso in lettura (World SID). Inoltre, il codice non attendibile può anche avere accesso ad altre porzioni di codice. Il codice non attendibile potrebbe essere avviato usando l'opzione RunAs in Explorer. Per impostazione predefinita, World non copre il codice con restrizioni.
Si noti anche che l'accesso di attraversamento non viene concesso ai normali utenti. Di conseguenza, questo potrebbe non essere un descrittore appropriato per un dispositivo con uno spazio dei nomi.
Queste stringhe SDDL non includono modificatori di ereditarietà. Di conseguenza, sono appropriati solo per gli oggetti dispositivo e non devono essere usati per file o chiavi del Registro di sistema. Per altre informazioni sulla specifica dell'ereditarietà tramite SDDL, vedere la documentazione di Microsoft Windows SDK.