Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Język SDDL (Security Descriptor Definition Language) służy do reprezentowania deskryptorów zabezpieczeń. Zabezpieczenia obiektów urządzeń można określić za pomocą ciągu SDDL umieszczonego w pliku INF lub przekazanego do IoCreateDeviceSecure. Język definicji deskryptora zabezpieczeń jest w pełni udokumentowany w dokumentacji zestawu Microsoft Windows SDK.
Chociaż pliki INF obsługują pełny zakres SDDL, tylko podzbiór języka jest wspierany przez procedurę IoCreateDeviceSecure. Ten podzestaw jest zdefiniowany tutaj.
Ciągi SDDL dla obiektów urządzeń mają postać "D:P", po której następuje co najmniej jedno wyrażenie formularza "(A;; Dostęp;;; SID)". Wartość identyfikatora SID określa identyfikator zabezpieczeń, który określa, do kogo ma zastosowanie wartość programu Access (na przykład użytkownik lub grupa). Wartość Access określa dozwolone prawa dostępu dla identyfikatora SID. Wartości Access i SID są następujące.
W przypadku używania języka SDDL dla obiektów urządzeń sterownik musi łączyć się z biblioteką Wdmsec.lib.
Dostęp
Określa wartość ACCESS_MASK , która określa dozwolony dostęp. Tę wartość można zapisać jako wartość szesnastkową w postaci "0xhex" lub jako sekwencję dwuliterowych kodów symbolicznych reprezentujących prawa dostępu.
Poniższe kody mogą służyć do określania ogólnych praw dostępu.
| Code | Prawo dostępu ogólnego |
|---|---|
ogólna dostępność |
Wszystko_Genericzne |
GR |
OGÓLNE_CZYTANIE |
GW |
GENERIC_WRITE (ogólne pisanie) |
GX |
OGÓLNE_WYKONANIE |
Poniższe kody mogą służyć do określania określonych praw dostępu.
| Code | Prawo do określonego dostępu |
|---|---|
RC |
KontrolaOdczytu |
SD |
USUŃ |
Biały karzeł |
WRITE_DAC |
WO |
ZAPIS_WŁAŚCICIELA |
GENERIC_ALL przyznaje pełnię praw wymienionych w powyższych dwóch tablicach, w tym możliwość zmiany ACL.
SID
Określa identyfikator SID, któremu udzielono określonego dostępu. Identyfikatory SID reprezentują konta, aliasy, grupy, użytkowników lub komputery.
Następujące identyfikatory SID reprezentują konta na maszynie.
| SID | Opis |
|---|---|
SY |
System Reprezentuje sam system operacyjny, w tym jego składniki trybu użytkownika. |
LS |
Usługa lokalna Wstępnie zdefiniowane konto dla usług lokalnych (które należy również do Uwierzytelnionych i Świata). Ten identyfikator SID jest dostępny od systemu Windows XP. |
NS |
Usługa sieciowa Wstępnie zdefiniowane konto usług sieciowych (które również należy do uwierzytelnionych i światowych). Ten identyfikator SID jest dostępny od systemu Windows XP. |
Następujące identyfikatory SID reprezentują grupy na maszynie.
| SID | Opis |
|---|---|
BA |
Administratorzy Wbudowana grupa Administratorzy na maszynie. |
BU |
Wbudowana grupa użytkowników Grupa obejmująca wszystkie konta użytkowników lokalnych i użytkowników w domenie. |
BG |
Wbudowana grupa gości Grupa obejmująca użytkowników logując się przy użyciu konta gościa lokalnego lub domeny. |
Następujące identyfikatory SID opisują zakres, w jakim użytkownik został uwierzytelniony.
| SID | Opis |
|---|---|
jednostka administracyjna |
Uwierzytelnieni użytkownicy Każdy użytkownik rozpoznany przez komputer lokalny lub domenę. Użytkownicy zalogowani przy użyciu wbudowanego konta Gościa nie są uwierzytelniani. Jednak członkowie grupy Goście z indywidualnymi kontami na maszynie lub w domenie są uwierzytelniani. |
AN |
Zalogowany anonimowy użytkownik Każdy użytkownik zalogowany bez tożsamości, na przykład anonimowa sesja sieciowa. Użytkownicy logujący się przy użyciu konta wbudowanego gościa nie są uwierzytelniani ani anonimowi. Ten identyfikator SID jest dostępny od systemu Windows XP. |
Poniższe identyfikatory SID opisują sposób logowania użytkownika do maszyny.
| SID | Opis |
|---|---|
J.M. |
Użytkownicy interakcyjny Użytkownicy, którzy początkowo zalogowali się na maszynie interaktywnie, na przykład poprzez logowanie lokalne lub zdalne na pulpit. |
NU |
Użytkownik logowania do sieci Użytkownicy, którzy uzyskują zdalny dostęp do maszyny bez dostępu do pulpitu interaktywnego (na przykład udostępnianie plików lub wywołania RPC). |
Biały karzeł |
Świat Przed systemem Windows XP identyfikator SID obejmował każdą sesję, niezależnie od tego, czy były to sesje uwierzytelnionych użytkowników, użytkowników anonimowych, czy wbudowanego konta Gość. Począwszy od systemu Windows XP, ten identyfikator SID nie obejmuje anonimowych sesji logowania; Obejmuje tylko uwierzytelnionych użytkowników i wbudowane konto gościa. Niezaufany lub "ograniczony" kod nie jest również objęty światowym identyfikatorem SID. Aby uzyskać więcej informacji, zapoznaj się z opisem SID kodu ograniczonego (RC) w poniższej tabeli. |
Następujące identyfikatory SID zasługują na szczególną wzmiankę.
| SID | Opis |
|---|---|
RC |
Kod ograniczony Ten identyfikator SID służy do kontrolowania dostępu przez niezaufany kod. Walidacja listy ACL względem tokenów z RC składa się z dwóch kontroli: pierwsza względem normalnej listy identyfikatorów SID tokenu (na przykład zawierającej identyfikatory WD), a druga względem drugiej listy (zazwyczaj zawierającej RC i podzbiór oryginalnych identyfikatorów SID tokenu). Dostęp jest udzielany tylko wtedy, gdy token przejdzie oba testy. W związku z tym RC działa w połączeniu z innymi identyfikatorami SID. Każda lista ACL, która określa RC, musi również określać WD. Gdy RC jest sparowany z usługą WD na liście ACL, opisywany jest nadzbiór obejmujący wszystkich, łącznie z niezaufanym kodem. Niezaufany kod może zostać uruchomiony przy użyciu opcji Uruchom jako w Eksploratorze. Domyślnie środowisko World nie obejmuje niezaufanego kodu. |
UD |
sterowniki sprzętowe User-Mode Ten identyfikator SID udziela dostępu do sterowników trybu użytkownika. Obecnie ten identyfikator SID obejmuje tylko sterowniki napisane dla User-Mode Driver Framework (UMDF). Ten identyfikator SID jest dostępny od systemu Windows 8. We wcześniejszych wersjach systemu Windows, które nie rozpoznają skrótu "UD", należy określić w pełni kwalifikowaną formę tego identyfikatora SID (S-1-5-84-0-0-0-0-0), aby udzielić dostępu do sterowników UMDF. Aby uzyskać więcej informacji, zobacz Kontrolowanie dostępu do urządzeń w dokumentacji User-Mode Driver Framework. |
Przykłady sdDL dla obiektów urządzeń
W tej sekcji opisano wstępnie zdefiniowane ciągi SDDL znalezione w pliku Wdmsec.h. Można również użyć ich jako szablonów, aby zdefiniować nowe ciągi SDDL dla obiektów urządzeń.
SDDL_DEVOBJ_KERNEL_ONLY
"D:P"
SDDL_DEVOBJ_KERNEL_ONLY jest „pustym” ACL-em. Kod trybu użytkownika (w tym procesy uruchomione jako system) nie może otworzyć urządzenia.
Kierowca magistrali PnP może użyć tego deskryptora podczas tworzenia PDO. Plik INF może następnie określić luźniejsze ustawienia zabezpieczeń urządzenia. Określając ten deskryptor, sterownik magistrali zapewni, że żadna próba otwarcia urządzenia przed przetworzeniem INF nie zakończy się powodzeniem.
Podobnie, sterownik inny niż WDM może użyć tego deskryptora, aby jego obiekty urządzenia były niedostępne, dopóki odpowiedni program w trybie użytkownika (np. instalator) nie ustawi końcowego deskryptora zabezpieczeń w rejestrze.
We wszystkich tych przypadkach ustawienie domyślne to ścisłe zabezpieczenia, poluzowane w razie potrzeby.
SDDL_DEVOBJ_SYS_ALL
"D:P(A;; GA;;; SY)"
SDDL_DEVOBJ_SYS_ALL jest podobny do SDDL_DEVOBJ_KERNEL_ONLY, z tą różnicą, że oprócz kodu trybu jądra, kod trybu użytkownika uruchomiony jako System jest również uprawniony do otworzenia urządzenia do dowolnego dostępu.
Przestarzały sterownik może używać tej listy ACL, aby rozpocząć od surowych ustawień zabezpieczeń i umożliwiać swojej usłudze otwarcie urządzenia w czasie działania dla poszczególnych użytkowników przy użyciu funkcji SetFileSecurity w trybie użytkownika. W takim przypadku usługa musi być uruchomiona jako system.
SDDL_DEVOBJ_SYS_ALL_ADM_ALL
"D:P(A;;GA;;;SY)(A;;GA;;;BA)"
SDDL_DEVOBJ_SYS_ALL_ADM_ALL przyznaje jądru, systemowi i administratorowi pełną kontrolę nad urządzeniem. Żaden inny użytkownik nie może uzyskać dostępu do urządzenia.
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 umożliwia jądrze i systemowi pełną kontrolę nad urządzeniem. Domyślnie administrator może uzyskać dostęp do całego urządzenia, ale nie może zmienić listy ACL (administrator musi najpierw przejąć kontrolę nad urządzeniem).
Każdy (globalny identyfikator SID) ma dostęp do odczytu. Niezaufany kod nie może uzyskać dostępu do urządzenia (niezaufany kod może zostać uruchomiony przy użyciu opcji Uruchom jako w Eksploratorze. Domyślnie środowisko World nie obejmuje ograniczonego kodu).
Należy również pamiętać, że dostęp przechodzenia nie jest przyznawany normalnym użytkownikom. W związku z tym może to nie być odpowiedni deskryptor dla urządzenia z przestrzenią nazw.
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 umożliwia jądru i systemowi pełną kontrolę nad urządzeniem. Domyślnie administrator może uzyskać dostęp do całego urządzenia, ale nie może zmienić listy ACL (administrator musi najpierw przejąć kontrolę nad urządzeniem).
Każdy (globalny identyfikator SID) ma dostęp do odczytu. Ponadto niezaufany kod może również uzyskiwać dostęp do kodu. Niezaufany kod może zostać uruchomiony przy użyciu opcji Uruchom jako w Eksploratorze. Domyślnie środowisko World nie obejmuje ograniczonego kodu.
Należy również pamiętać, że dostęp przechodzenia nie jest przyznawany normalnym użytkownikom. W związku z tym może to nie być odpowiedni deskryptor dla urządzenia z przestrzenią nazw.
Te ciągi SDDL nie zawierają żadnych modyfikatorów dziedziczenia. W związku z tym są one odpowiednie tylko dla obiektów urządzeń i nie powinny być używane w przypadku plików ani kluczy rejestru. Aby uzyskać więcej informacji na temat określania dziedziczenia przy użyciu języka SDDL, zobacz dokumentację zestawu Microsoft Windows SDK.