Bezpečnostní identifikátory, přístupová známka a bezpečnostní deskriptor
Ve Windows se uživatelé i některé další objekty (lokální a globální skupiny, počítače, domény) označují jedinečnými identifikátory (SID – Security Identifier).
Modul SRM používá k identifikaci bezpečnostního kontextu procesu zvláštní datovou strukturu zvanou přístupová známka (access token). Bezpečnostní kontext je tvořen informací o privilegiích, uživatelských účtech a skupinách, které jsou s procesem spojeny.
Bezpečnostní identifikátory (SID)
Ve Windows se uživatelé i některé další objekty (lokální a globální skupiny, počítače, domény) označují jedinečnými identifikátory (SID – Security Identifier). Vždy, když administrátor pracuje například se jménem uživatelského účtu, operační systém toto jméno zobrazil jako náhradu příslušného SIDu. SID je numerický řetězec s proměnlivou délkou, který se skládá z několika částí:
- označení autority a podautority, která SID vytvořila,
- 48-bitový identifikátor,
- relativní identifikátor (RID, např. účet Administrátor má RID = 500).
Pokud je SID někde v systému zobrazen, obsahuje navíc prefix S a jeho jednotlivé části jsou odděleny pomlčkou: S-1-5-21-1463437245-1224812800-863842198-1128. SIDy jsou dostatečně dlouhé a operační systém je generuje dostatečně náhodně, aby nedošlo k duplicitě ani na počítači ani v doméně.
Při instalaci Windows se vytvoří tzv. SID počítače. Operační systém přiděluje SID každému lokálnímu účtu, přičemž tento SID je založen na SIDu počítače a na konci má specifický RID. RIDy pro uživatelské účty a skupiny začínají od hodnoty 1000 a zvětšují se o jedničku. Podobně má přiřazený jedinečný SID i nově vytvořená doména. Doménové účty pak mají SIDy založené na SIDu domény a na konci mají opět RIDy od 1000 výše. Například RID 1028 znamená, že jde o dvacátýdevátý SID, který doména přiřadila účtu.
Ne všechny SIDy jsou skutečně jedinečné. Existují tzv. dobře známé SIDy (well-known SIDs), které jsou naopak na všech počítačích stejné. Také standardní systémové účty a skupiny mají pevně přidělené RIDy (SID počítače je samozřejmě jedinečný). Tak například RID = 500 má účet Administrator, RID = 501 účet Guest.
S-1-1-0 | Skupina Everyone. |
S-1-3-0 | Skupina Creator Owner, při dědění ACE nahradí operační systém tento SID SIDem uživatele, který objekt vytvořil. |
S-1-5-1 | Skupina Dialup obsahuje všechny uživatele přihlášené přes vytáčenou linku. |
S-1-5-2 | Skupina Network obsahuje všechny uživatele přihlášené ze sítě. |
S-1-5-4 | Skupina Interactive obsahuje všechny uživatele přihlášené lokálně pomocí klávesnice. |
S-1-5-7 | Skupina Anonymous. |
S-1-5-11 | Skupina Authenticated Users. |
S-1-5-13 | Skupina Terminal Server Users. |
S-1-5-18 | Účet System reprezentující operační systém. |
S-1-5-19 | Účet Local Service. |
S-1-5-20 | Účet Network Service. |
S-1-5-domain-500 | Účet Administrator. |
S-1-5-domain-501 | Účet Guest nevyžaduje zadání hesla. Standardně je vypnut. |
S-1-5-domain-502 | Účet KRBTGT, využívaný službou Key Distribution Center (KDC). |
S-1-5-domain-512 | Globální skupina Domain Admins. |
S-1-5-domain-513 | Globální skupina Domain Users. |
S-1-5-domain-514 | Globální skupina Domain Guests. |
S-1-5-32-544 | Zabudovaná lokální skupina Administrators. Zpočátku je jejím jediným členem účet Administrator. Po přidání počítače do domény se členem stane i globální skupina Domain Admins. Pokud se server stane řadičem domény, přidá se do skupiny Administrators i globální skupina Enterprise Admins. |
S-1-5-32-545 | Zabudovaná lokální skupina Users. |
S-1-5-32-546 | Zabudovaná lokální skupina Guests. |
S-1-5-32-547 | Zabudovaná lokální skupina Power Users. Standardně nemá žádné členy. Příslušník této skupiny může vytvářet lokální uživatelské účty a skupiny, modifikovat a mazat účty, které sám vytvořil, odstraňovat účty ze skupin Power Users, Users a Guests. Také může instalovat programy, vytvářet, spravovat a mazat lokální tiskárny, vytvářet a mazat sdílení adresářů. |
S-1-5-32-548 | Zabudovaná skupina Account Operators, která se vyskytuje jen na řadičích. Standardně nemá žádné členy. Příslušník této skupiny může vytvářet, modifikovat a mazat účty uživatelů, skupin i počítačů ve všech kontejnerech a organizačních jednotkách aktivního adresáře vyjma kontejnerů Builtin a Domain Controllers. Nemůže modifikovat skupiny Administrators a Domain Admins. |
S-1-5-32-549 | Zabudovaná skupina Server Operators, která se vyskytuje jen na řadičích. Standardně nemá žádné členy. Příslušník skupiny se může interaktivně přihlásit k počítači, vytvářet a mazat sdílení adresářů, spouštět a zastavovat služby, formátovat pevný disk počítače a vypínat počítač. |
S-1-5-32-550 | Zabudovaná skupina Print Operators, která se vyskytuje jen na řadičích. Standardně obsahuje skupinu Domain Users. Příslušník této skupiny může spravovat tiskárny a tiskové fronty. |
S-1-5-32-551 | Zabudovaná skupina Backup Operators standardně neobsahuje žádné členy. Její příslušník může zálohovat a obnovovat všechny soubory počítače, bez ohledu na jejich přístupová práva. Také se může k počítači interaktivně přihlásit a vypnout ho. |
Přístupová známka (Access Token)
Modul SRM používá k identifikaci bezpečnostního kontextu procesu zvláštní datovou strukturu zvanou přístupová známka (access token). Bezpečnostní kontext je tvořen informací o privilegiích, uživatelských účtech a skupinách, které jsou s procesem spojeny. Přístupová známka je vytvořena na konci přihlašovacího procesu. V okamžiku, kdy dojde k ověření jména a hesla, je Winlogon schopen potřebnou informaci získat ze SAM databáze, z databáze politiky Lsass, případně z aktivního adresáře, podle toho, zda se uživatel hlásí prostřednictvím lokálního nebo doménového účtu. Winlogon vytvoří přístupovou známku a spustí Explorer, kterému ji předá. Všechny programy, které uživatel spustí, obdrží svou kopii přístupové známky. Další kopie lze vytvořit voláním funkce Win32 rozhraní LogonUser. Přístupová známka má různou délku, protože uživatelé se ve svých privilegiích i členstvím ve skupinách liší. Následující obrázek charakterizuje informace, které přístupová známka obsahuje.
Bezpečnostní mechanismus Windows využívá jednotlivé části přístupové známky k tomu, aby určil, zda může proces získat přístup k některému ze zabezpečených objektů, jako například k souboru na NTFS disku. Konkrétně se jedná o pole SID uživatelova účtu a SIDy skupin, jejichž je uživatel členem.
Také pole privilegií určuje, co může proces v systému provádět. Pole privilegií představuje seznam práv spojených s přístupovou známkou. Příkladem privilegia může být právo vypnout počítač, nastavit systémový čas apod.
Pole Default primary group a Default DACL využívá proces při vytváření nových objektů. Obsahují bezpečnostní atributy, které budou nově vytvořenému objektu předány.
Přístupové známky lze rozdělit na primární a zosobňovací. Primární přístupová známka určuje bezpečnostní kontext procesu. Zosobňovací přístupová známka je procesem použita, když potřebuje dočasně převzít bezpečnostní kontext jiného uživatele.