Ідентифікатор безпеки (англ. Security Identifier, SID) в операційних системах Windows) — це унікальний незмінний ідентифікатор користувача, групи користувачів або інших захищених елементів. Захищений елемент має один SID протягом всього циклу існування, і всі властивості цього елемента, включаючи його назву (ім'я), пов'язані з SID. Такий підхід дозволяє, зокрема, перейменовувати елементи без впливу на атрибути безпеки об'єктів, які відносяться до нього.
Windows використовує SID для ідентифікації машин та всіх інших об'єктів системи безпеки: облікових записів домену, користувачів і груп. Імена таких об'єктів є лише зрозумілішими для користувачів формами подання SID.
Структура ідентифікатора безпеки
SID складається з 48-розрядного значення, за яким іде кілька 32-розрядних компонентів. Як правило, SID подають у форматі S-R-I-s-s... (див. таблицю).
S | Літера "S", яка означає, що послідовність чисел є ідентифікатором безпеки |
---|---|
R | Число, яке показує номер версії SID |
I | 48-розрядне число, яке представляє уповноважений орган, що видав SID |
s | 32-розрядне число, яке представляє уповноважений орган нижнього рівня. Це значення називають також відносним ідентифікатором (relative identifier, RID). SID може містити довільну кількість уповноважених органів нижнього рівня |
Від початку використання захисту на основі ідентифікаторів безпеки номер версії структур SID дорівнює 1. Ідентифікатор уповноваженого органу показує, ким саме було створено SID, тобто хто володіє та керує обліковим записом, який пов’язаний з SID. Уповноважений орган представляють 48-бітовим числом, яке у Delphi (див. модуль Windows.pas) оголошено так:
_SID_IDENTIFIER_AUTHORITY = record Value: array[0..5] of Byte; end; TSIDIdentifierAuthority = _SID_IDENTIFIER_AUTHORITY;
Уповноважені органи, які видають SID
Частково перелік уповноважених органів наведено у таблиці:
Уповноважений орган, який видає SID | Значення | Опис |
---|---|---|
SECURITY_NULL_SID_AUTHORITY | 0 | Використовується для стрворення порожньої групи (вона не представляє нікого), SID якої дорівнює S-1-0-0 |
SECURITY_WORLD_SID_AUTHORITY | 1 | Використовується для створення облікового запису стандартної групи "Всі" (Everybody). SID дорівнює S-1-1-0 |
SECURITY_LOCAL_SID_AUTHORITY | 2 | Використовується для створення групи локальних користувачів Local. SID цієї групи становить S-1-2-0 |
SECURITY_CREATOR_SID_AUTHORITY | 3 | Використовують для створення стандартних SID власників (Creator Owner). SID власника – S-1-3-0, групи власника – S-1-3-1 |
SECURITY_NT_AUTHORITY | 5 | Використовують для створення облікових записів користувачів та груп, починаючи з Windows 2000 і новіших. SID таких користувачів та груп починається з S-1-5. При цьому перший уповноважений орган нижнього рівня завжди дорівнює SECURITY_NT_NON_UNIQUE (21) |
Згадані у таблиці ідентифікатори безпеки однакові для всіх систем Windows на платформі NT. Єдиним органом, який видає SID користувачам та групам, є SECURITY_NT_AUTHORITY. Такі ідентифікатори не є універсальними і розглядаються лише в межах окремої копії Windows.
Відносні ідентифікатори
Орган SECURITY_NT_AUTHORITY має перелік відносних ідентифікаторів, які вказують на можливі стандартні органи нижнього рівня. Так, SECURITY_LOCAL_SYSTEM_RID (18) визначає системний обліковий запис LocalSystem\Система, а SECURITY_NT_NON_UNIQUE (21) свідчить, що SID не є унікальним. Детальніше ознайомитися зі списком стандартних RID можна в MSDN.
Комбінуючи стандартні RID із відповідними їм уповноваженими органами, можна створювати стандартні SID. Вони представляють системних користувачів, відомих кожній копії Windows у будь-якій мережі.
Дослідження взаємозв'язку між SID та назвою користувача
Щоб уявити, що являє собою SID, проведемо такий експеримент. Системними засобами створимо локальний обліковий запис користувача (рівень привілеїв не важливий, він у подальшому буде видалений). Для цього потрібно:
- викликати вікно "Керувння комп’ютером" (наприклад, вибравши команду "Керування" у контекстному меню, викликаному на піктограмі "Мій комп’ютер" робочого столу);
- перейти до пункту "Локальні користувачі та групи" (Local Users and Groups), далі вибрати елемент "Користувачі" (Users);
- викликати контекстне меню і вибрати із нього команду "Створити користувача" (New User);
- у вікні, яке з’явиться, ввести назву користувача та пароль, і натиснути кнопку OK.
Далі щойно створеному користувачеві слід дати будь-які права на доступ до якогось файлу. Для цього потрібно викликати вікно властивостей файлу (наприклад, з Провідника Windows), перейти на сторінку "Безпека" та додати попередньо створеного користувача (див. рис.). На рисунку у списку присутній користувач з назвою TempUser.
Після цього видалимо раніше створеного користувача (скориставшись, наприклад, вже описаною утилітою "Керування комп’ютером") і ще раз подивимось на список користувачів, які мають доступ до нашого файлу (див. рис.). Тепер замість облікового запису TempUser буде присутній невідомий обліковий запис, для якого буде вказано його ідентифікатор безпеки (S-1-5-21-3840520539…). Зауважимо: щоб побачити вказаний ефект, може бути необхідне перезавантаження системи (після видалення користувача).
Із зображеного на малюнку SID бачимо, що його видано системою Windows (5, уповноважний орган SECURITY_NT_AUTHORITY). Першим уповноваженим органом нижнього рівня також є система безпеки, яка вказує, що ідентифікатор безпеки не є унікальним і діє лише в межах даної копії Windows (21, відносний ідентифікатор SECURITY_NT_NON_UNIQUE).
"Добре відомі" SID
Windows містить ряд жорстко визначених ідентифікаторів безпеки, які представляють типові (стандартні) захищені суб'єкти безпеки (користувачі, групи користувачів, облікові записи тощо). Їхні типові значення наведено у таблиці:
SID | Опис |
---|---|
S-1-1-0 | Будь-хто (Everyone) |
S-1-5-18 | Обліковий запис локальної системи Local System, який використовується операційною системою |
S-1-5-21domain-500 | Administrator - обліковий запис системного адміністратора |
Повний список "добре відомих" SID можна прогрлянути у статті
Імена відомих ідентифікаторів може змінюватися, тому для роботи з ними слід використовувати функції створення SID з зумовлених констант, а не використовувати ім'я відомого SID. Наприклад, в американській версії Windows є відомий SID назвою «BUILTIN\Administrator», який у поточні українській версії Windows має назву «BUILTIN\Адміністратор».
Робота з SID
Щоб отримати ідентифікатор безпеки для користувача з певним іменем, використовують функцію LookupAccountName (опис подано мовою Delphi):
function LookupAccountName( lpSystemName, lpAccountName: PWideChar; Sid: PSID; var cbSid: DWORD; ReferencedDomainName: PWideChar; var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE ): BOOL;
Або наступну функцію PowerShell:
function get_sid($username) { $objUser = New-Object System.Security.Principal.NTAccount($username) $strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier]) $strSID.Value }
Якщо потрібно отримати назву користувача за відомим ідентифікатором безпеки, використовують функцію LookupAccountSid (опис подано мовою Delphi):
function LookupAccountSid( lpSystemName: PWideChar; Sid: PSID; Name: PWideChar; var cbName: DWORD; ReferencedDomainName: PWideChar; var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE ): BOOL;
Див. також
Примітки
- Коноваленко І.В., Федорів П.С. Системне програмування у Windows з прикладами на Delphi, Т:ТНТУ.- 2012 [ 8 грудня 2012 у Wayback Machine.].
- . Архів оригіналу за 7 січня 2012. Процитовано 18 квітня 2012.
Це незавершена стаття про операційні системи. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Identifikator bezpeki angl Security Identifier SID v operacijnih sistemah Windows ce unikalnij nezminnij identifikator koristuvacha grupi koristuvachiv abo inshih zahishenih elementiv Zahishenij element maye odin SID protyagom vsogo ciklu isnuvannya i vsi vlastivosti cogo elementa vklyuchayuchi jogo nazvu im ya pov yazani z SID Takij pidhid dozvolyaye zokrema perejmenovuvati elementi bez vplivu na atributi bezpeki ob yektiv yaki vidnosyatsya do nogo Windows vikoristovuye SID dlya identifikaciyi mashin ta vsih inshih ob yektiv sistemi bezpeki oblikovih zapisiv domenu koristuvachiv i grup Imena takih ob yektiv ye lishe zrozumilishimi dlya koristuvachiv formami podannya SID Struktura identifikatora bezpekiSID skladayetsya z 48 rozryadnogo znachennya za yakim ide kilka 32 rozryadnih komponentiv Yak pravilo SID podayut u formati S R I s s div tablicyu S Litera S yaka oznachaye sho poslidovnist chisel ye identifikatorom bezpekiR Chislo yake pokazuye nomer versiyi SIDI 48 rozryadne chislo yake predstavlyaye upovnovazhenij organ sho vidav SIDs 32 rozryadne chislo yake predstavlyaye upovnovazhenij organ nizhnogo rivnya Ce znachennya nazivayut takozh vidnosnim identifikatorom relative identifier RID SID mozhe mistiti dovilnu kilkist upovnovazhenih organiv nizhnogo rivnya Vid pochatku vikoristannya zahistu na osnovi identifikatoriv bezpeki nomer versiyi struktur SID dorivnyuye 1 Identifikator upovnovazhenogo organu pokazuye kim same bulo stvoreno SID tobto hto volodiye ta keruye oblikovim zapisom yakij pov yazanij z SID Upovnovazhenij organ predstavlyayut 48 bitovim chislom yake u Delphi div modul Windows pas ogolosheno tak SID IDENTIFIER AUTHORITY record Value array 0 5 of Byte end TSIDIdentifierAuthority SID IDENTIFIER AUTHORITY Upovnovazheni organi yaki vidayut SID Chastkovo perelik upovnovazhenih organiv navedeno u tablici Upovnovazhenij organ yakij vidaye SID Znachennya OpisSECURITY NULL SID AUTHORITY 0 Vikoristovuyetsya dlya strvorennya porozhnoyi grupi vona ne predstavlyaye nikogo SID yakoyi dorivnyuye S 1 0 0SECURITY WORLD SID AUTHORITY 1 Vikoristovuyetsya dlya stvorennya oblikovogo zapisu standartnoyi grupi Vsi Everybody SID dorivnyuye S 1 1 0SECURITY LOCAL SID AUTHORITY 2 Vikoristovuyetsya dlya stvorennya grupi lokalnih koristuvachiv Local SID ciyeyi grupi stanovit S 1 2 0SECURITY CREATOR SID AUTHORITY 3 Vikoristovuyut dlya stvorennya standartnih SID vlasnikiv Creator Owner SID vlasnika S 1 3 0 grupi vlasnika S 1 3 1SECURITY NT AUTHORITY 5 Vikoristovuyut dlya stvorennya oblikovih zapisiv koristuvachiv ta grup pochinayuchi z Windows 2000 i novishih SID takih koristuvachiv ta grup pochinayetsya z S 1 5 Pri comu pershij upovnovazhenij organ nizhnogo rivnya zavzhdi dorivnyuye SECURITY NT NON UNIQUE 21 Zgadani u tablici identifikatori bezpeki odnakovi dlya vsih sistem Windows na platformi NT Yedinim organom yakij vidaye SID koristuvacham ta grupam ye SECURITY NT AUTHORITY Taki identifikatori ne ye universalnimi i rozglyadayutsya lishe v mezhah okremoyi kopiyi Windows Vidnosni identifikatori Organ SECURITY NT AUTHORITY maye perelik vidnosnih identifikatoriv yaki vkazuyut na mozhlivi standartni organi nizhnogo rivnya Tak SECURITY LOCAL SYSTEM RID 18 viznachaye sistemnij oblikovij zapis LocalSystem Sistema a SECURITY NT NON UNIQUE 21 svidchit sho SID ne ye unikalnim Detalnishe oznajomitisya zi spiskom standartnih RID mozhna v MSDN Kombinuyuchi standartni RID iz vidpovidnimi yim upovnovazhenimi organami mozhna stvoryuvati standartni SID Voni predstavlyayut sistemnih koristuvachiv vidomih kozhnij kopiyi Windows u bud yakij merezhi Doslidzhennya vzayemozv yazku mizh SID ta nazvoyu koristuvacha Pislya vidalennya koristuvacha TempUser u spisku prisutnij nevidomij oblikovij zapis z pevnim identifikatorom bezpeki S 1 5 21 Shob uyaviti sho yavlyaye soboyu SID provedemo takij eksperiment Sistemnimi zasobami stvorimo lokalnij oblikovij zapis koristuvacha riven privileyiv ne vazhlivij vin u podalshomu bude vidalenij Dlya cogo potribno viklikati vikno Keruvnnya komp yuterom napriklad vibravshi komandu Keruvannya u kontekstnomu menyu viklikanomu na piktogrami Mij komp yuter robochogo stolu perejti do punktu Lokalni koristuvachi ta grupi Local Users and Groups dali vibrati element Koristuvachi Users viklikati kontekstne menyu i vibrati iz nogo komandu Stvoriti koristuvacha New User u vikni yake z yavitsya vvesti nazvu koristuvacha ta parol i natisnuti knopku OK Dali shojno stvorenomu koristuvachevi slid dati bud yaki prava na dostup do yakogos fajlu Dlya cogo potribno viklikati vikno vlastivostej fajlu napriklad z Providnika Windows perejti na storinku Bezpeka ta dodati poperedno stvorenogo koristuvacha div ris Na risunku u spisku prisutnij koristuvach z nazvoyu TempUser Pislya cogo vidalimo ranishe stvorenogo koristuvacha skoristavshis napriklad vzhe opisanoyu utilitoyu Keruvannya komp yuterom i she raz podivimos na spisok koristuvachiv yaki mayut dostup do nashogo fajlu div ris Teper zamist oblikovogo zapisu TempUser bude prisutnij nevidomij oblikovij zapis dlya yakogo bude vkazano jogo identifikator bezpeki S 1 5 21 3840520539 Zauvazhimo shob pobachiti vkazanij efekt mozhe buti neobhidne perezavantazhennya sistemi pislya vidalennya koristuvacha Iz zobrazhenogo na malyunku SID bachimo sho jogo vidano sistemoyu Windows 5 upovnovazhnij organ SECURITY NT AUTHORITY Pershim upovnovazhenim organom nizhnogo rivnya takozh ye sistema bezpeki yaka vkazuye sho identifikator bezpeki ne ye unikalnim i diye lishe v mezhah danoyi kopiyi Windows 21 vidnosnij identifikator SECURITY NT NON UNIQUE Dobre vidomi SIDWindows mistit ryad zhorstko viznachenih identifikatoriv bezpeki yaki predstavlyayut tipovi standartni zahisheni sub yekti bezpeki koristuvachi grupi koristuvachiv oblikovi zapisi tosho Yihni tipovi znachennya navedeno u tablici SID OpisS 1 1 0 Bud hto Everyone S 1 5 18 Oblikovij zapis lokalnoyi sistemi Local System yakij vikoristovuyetsya operacijnoyu sistemoyuS 1 5 21domain 500 Administrator oblikovij zapis sistemnogo administratora Povnij spisok dobre vidomih SID mozhna progrlyanuti u statti Imena vidomih identifikatoriv mozhe zminyuvatisya tomu dlya roboti z nimi slid vikoristovuvati funkciyi stvorennya SID z zumovlenih konstant a ne vikoristovuvati im ya vidomogo SID Napriklad v amerikanskij versiyi Windows ye vidomij SID nazvoyu BUILTIN Administrator yakij u potochni ukrayinskij versiyi Windows maye nazvu BUILTIN Administrator Robota z SIDShob otrimati identifikator bezpeki dlya koristuvacha z pevnim imenem vikoristovuyut funkciyu LookupAccountName opis podano movoyu Delphi function LookupAccountName lpSystemName lpAccountName PWideChar Sid PSID var cbSid DWORD ReferencedDomainName PWideChar var cbReferencedDomainName DWORD var peUse SID NAME USE BOOL Abo nastupnu funkciyu PowerShell function get sid username objUser New Object System Security Principal NTAccount username strSID objUser Translate System Security Principal SecurityIdentifier strSID Value Yaksho potribno otrimati nazvu koristuvacha za vidomim identifikatorom bezpeki vikoristovuyut funkciyu LookupAccountSid opis podano movoyu Delphi function LookupAccountSid lpSystemName PWideChar Sid PSID Name PWideChar var cbName DWORD ReferencedDomainName PWideChar var cbReferencedDomainName DWORD var peUse SID NAME USE BOOL Div takozhIdentifikator koristuvachaPrimitkiKonovalenko I V Fedoriv P S Sistemne programuvannya u Windows z prikladami na Delphi T TNTU 2012 8 grudnya 2012 u Wayback Machine Arhiv originalu za 7 sichnya 2012 Procitovano 18 kvitnya 2012 Ce nezavershena stattya pro operacijni sistemi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi