Перейти до вмісту

Маркер доступу

Матеріал з Вікіпедії — вільної енциклопедії.

Маркер доступу — програмний об'єкт в операційних системах Windows, який містить інформацію щодо безпеки сеансу та ідентифікує користувача, групу користувачів та їх привілеї[1].

Огляд

[ред. | ред. код]
Отримання маркера доступу при аутентифікації користувача у системі

Маркер доступу є об'єктом, який описується в контексті безпеки процесу або потоку. Інформація, що міститься у маркері, включає в себе особу і привілеї облікового запису користувача, пов'язані з процесом або потоком. Коли користувач входить в систему, система перевіряє пароль користувача, порівнюючи його з інформацією, що зберігається в базі даних безпеки. Якщо пароль аутентифікований, система видає маркер доступу[2][3]. Кожен процес, який виконується від імені цього користувача, має копію цього маркера доступу.

Коли процес звертається до захищеного ресурсу (об'єкту), Windows проглядає дескриптор безпеки у маркері доступу, і визначає, чи користувач- власник процесу, має право доступу до потрібних даних; і якщо так, то які саме операції йому дозволені (читання, запис / зміна). Якщо користувач має відповідні привілеї, Windows дозволяє процесу продовжувати дію над ресурсом, якщо ні,- то відмовляє в доступі.

Складові компоненти маркера доступу

[ред. | ред. код]

Система використовує маркер доступу для ідентифікації користувача, коли потік взаємодіє з захищеним об'єктом або намагається виконати системну задачу, яка вимагає привілеїв. Маркер доступу містить таку інформацію[1]:

  • Ідентифікатор безпеки (SID) облікового запису користувача
  • Ідентифікатори безпеки для груп, в яких користувач є членом
  • Ідентифікатор безпеки користувача, який відкрив поточну сесію
  • Перелік привілеїв користувача або груп користувачів
  • Ідентифікатор безпеки власника
  • SID основної групи
  • Стандартний список керування вибірковим доступом (discretionary access-control list, DACL)
  • Дані про те, чи є маркер первинним, чи імперсональним
  • Додатковий список обмеження для ідентифікаторів безпеки
  • Інші дані, зокрема статистичні

Первинний та імперсональний маркери доступу

[ред. | ред. код]

Кожен процес має первинний маркер доступу (primary token), який описує контекст безпеки облікового запису користувача, пов'язаного з процесом. Система використовує первинний маркер за замовчуванням, коли потік процесу взаємодії з захищеним об'єктом. Крім того, потік може діяти від іншого клієнтського облікового запису. Імперсоналізація (уособлення) дозволяє потоку взаємодіяти з захищеним об'єктом, використовуючи контекст безпеки клієнта. Потік, який видає себе за клієнта, має як основний маркер, так і маркер уособлення.

Ідентифікатор безпеки

[ред. | ред. код]

Ідентифікатор безпеки (SID) є важливою складовою маркера доступу. Windows використовує ідентифікатор безпеки для ідентифікації машин та всіх інших об'єктів системи безпеки: облікових записів домену, користувачів і груп. Імена таких об'єктів є лише зрозумілішими для користувачів формами подання ідентифікаторів безпеки, які дозволяють, наприклад, перейменувати обліковий запис без оновлення всієї множини його привілеїв. SID складається з 48-розрядного значення, за яким іде кілька 32-розрядних компонентів. Як правило, SID подають у форматі S-R-I-s-s... (наприклад, S-1-5-21-3840520539…).

Примітки

[ред. | ред. код]
  1. а б MSDN. Архів оригіналу за 21 липня 2012. Процитовано 17 квітня 2012.
  2. Коноваленко І.В., Федорів П.С. Системне програмування у Windows з прикладами на Delphi, Т:ТНТУ.- 2012 [Архівовано 8 грудня 2012 у Wayback Machine.].
  3. Юрий Спектор. Защита объектов в NT. Архів оригіналу за 22 листопада 2010. Процитовано 17 квітня 2012.