Правда об идентификаторах безопасности::Журнал СА 5.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
О журнале
Журнал «БИТ»
Информация для ВАК
Звезды «СА»
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Игры
Контакты
   


  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
27.03.2019г.
Просмотров: 255
Комментарии: 0
Arduino Uno и Raspberry Pi 3: от схемотехники к интернету вещей

 Читать далее...

27.03.2019г.
Просмотров: 199
Комментарии: 0
Автоматизация программируемых сетей

 Читать далее...

27.03.2019г.
Просмотров: 229
Комментарии: 0
Изучаем pandas. Второе издание

 Читать далее...

27.03.2019г.
Просмотров: 178
Комментарии: 0
Компьютерное зрение. Теория и алгоритмы

 Читать далее...

13.03.2019г.
Просмотров: 388
Комментарии: 0
DevOps для ИТ-менеджеров

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Правда об идентификаторах безопасности

Архив номеров / 2008 / Выпуск №5 (66) / Правда об идентификаторах безопасности

Рубрика: Безопасность /  Безопасность

Иван Коробко

Правда об идентификаторах безопасности

Для многих идентификатор безопасности – это темный лес. На самом деле все гораздо проще. Эта статья поможет превратить его в прекрасную цветущую поляну.

В настоящее время в Windows повсюду используются идентификаторы безопасности: в правах доступа, в реестре, в Active Directory. Понимать, откуда берутся эти идентификационные номера, очень важно, поскольку это значительно облегчит жизнь как системным администраторам, так и специалистам системной поддержки.

В Windows широко используется несколько видов различных идентификаторов безопасности: GUID, SID, UUID (CLSID).

Виды идентификаторов безопасности

  • GUID (Globally Unique Identifier) – представляет собой уникальный 128-битный идентификатор. Его главная особенность – уникальность. Общее количество уникальных ключей настолько велико (2128 или 3,4028x1038), что вероятность генерации двух совпадающих ключей ничтожно мала. GUID – это частная реализация (компанией Microsoft) стандарта, имеющего название Universally Unique Identifier (UUID).
  • SID (Security Identifier) – уникальная бинарная структура данных переменной длины, однозначно идентифицирующая объект: учетную запись пользователя, группы, домена, компьютера и т. д.
  • UUID (Universally Unique Identifier) – это стандарт идентификации, используемый в создании программного обеспечения, стандартизированный Фондом свободного программного обеспечения (FSF). UUID описан в RFC1422 «A Universally Unique IDentifier (UUID) URN Namespace».

Рассмотрим каждый тип идентификаторов безопасности подробнее.

Идентификатор безопасности GUID

GUID нашел широкое применение в Active Directory. Совместно с другим идентификатором безопасности, о котором речь пойдет позже (SID), он однозначно определяет объект.

При создании новой учетной записи пользователя или группы в Active Directory новому объекту присваивается уникальный в глобальном масштабе идентификатор (GUID) не только в домене, но и во всем мире. Кроме объектов-пользователей и объектов-групп, GUID есть у всех объектов, создающихся в Active Directory. Значение GUID хранится в бинарном виде в параметре ObjectGUID (см. рис. 1).

Рисунок 1. GUID в Active Directory

Рисунок 1. GUID в Active Directory

Структура GUID

GUID – это 16-байтный (128-битный) идентификатор, описанный в стандарте «A Universally Unique IDentifier (UUID) URN Namespace» (RFC 1422). Условно идентификатор разбивают на 4 части (см. таблицу 1), а при записи в тестовом виде последнюю часть разбивают дополнительно еще на две. Это делается для упрощения определения типа идентификатора: первый байт последнего, 64-битного раздела (в текстовом виде это как раз 4 символа) определяет тип GUID (см. таблицу 2). В текстовом виде GUID записывается следующим образом: d50b151a-02c0-4dd0-a59e-f1fb61614d6b.

Таблица 1. Структура GUID

Бит

Байт

Часть

Количество символов в блоке

32

4

1

8

16

2

2

4

16

2

3

4

64

8

4

4

12

 Таблица 2. Расшифровка значения первого байта последнего блока GUID

Значение

Описание

0

NCS Совместимость с Networking Computing System

10

Стандарт

110

Microsoft COM. Сюда также относится очень важный GUID – unknown-устройства

111

Зарезервировано

Определение типа GUID

В настоящее время существует 5 версий GUID (см. таблицу 3). Номер версии GUID – первое число третьей части GUID: c9802770-e0af-11dc-95ff-0016368d1a02. Как видно из таблицы 3 – этот GUID сгенерирован на основе временного штампа. Зная тип идентификатора, легко определить, является ли он стандартным или сгенерирован каким-либо программным обеспечением.

Таблица 3. Версии GUID

Версия

Описание

1

GUID созданный на основе временного штампа (time based GUID)

2

DCE Security version (with POSIX UIDs)

3

GUID основанный на имени (MD5 hash)

4

Произвольный GUID

5

GUID основанный на имени(SHA-1 hash)

Подводя итог, перечислим особенности глобального идентификатора (GUID):

  • генерируемое значение GUID уникально во всем мире;
  • идентификатор не изменяется на протяжении всего времени существования объекта.

Генерация GUID

Для генерации GUID можно воспользоваться либо одним из on-line-генераторов в Сети, либо встроенной в Windows стандартной библиотекой с помощью сценариев (см. листинг 1).

Листинг 1. Генерация GUID (V-Script)

Set TypeLib = CreateObject("Scriptlet.TypeLib")

wscript.Echo TypeLib.Guid

Set TypeLib = Nothing

Идентификатор безопасности SID

Этот идентификатор широко известен не только опытным системным администраторам и специалистам системной поддержки, но и обычным пользователям, настраивающим доступ к папке между двумя компьютерами. Открыв вкладку «Безопасность» свойств обычной папки (см. рис. 2), пользователь видит объекты: группы и пользователи, которым назначен индивидуальный набор прав. На самом деле там указаны SID, а для упрощения восприятия отображаются понятные всем имена объектов. SID имеет сложную структуру, которая будет рассмотрена позже.

Рисунок 2. Параметры безопасности объекта

Рисунок 2. Параметры безопасности объекта

SID присваивается пользователю при создании учетной записи пользователя или группы в Active Directory. Значение SID в бинарном виде хранится в параметре ObjectSID.

Особенности SID

Идентификатор имеет несколько очень важных особенностей:

  • Каждый объект (группа безопасности или пользователь) имеет персональный идентификатор.
  • Изменить SID объекта в пределах одного домена невозможно. При переходе в другой домен пользователь получает дополнительный SID.
  • Идентификаторы удаленных объектов никогда более не используются.
  • SID в учетных записях домена или Windows одни и те же, вне зависимости от версии продукта (см. таблицу 6).
  • Если контроллер домена по какой-либо причине недоступен, то имя объекта не подставляется и отображается его SID. Второй причиной, по которой может отображаться, – некорректное удаление объекта.

При взаимодействии между объектами в Active Directory и Windows идентификация объектов осуществляется с помощью SID.

При переименовании объекта идентификатор безопасности остается прежним. При создании объекта ему присваивается новый SID.

Таким образом, если созданная доменная учетная запись пользователя User1 переименована в User2, то с точки зрения Active Directory у объекта изменено только свойство, поскольку SID остался неизменным.

Если же пользователь был удален, а затем создан заново с тем же именем, то с точки зрения Active Directory появился новый объект. Старый безвозвратно удален.

Если же учетная запись была удалена, а затем восстановлена из резервной копии Active Directory, то SID учетной записи пользователя после восстановления будет прежним

Структура SID

SID состоит из нескольких частей (см. рис. 3).

Рисунок 3. Структура SID

Рисунок 3. Структура SID

Выражение SID можно записать формулой:

S-R-X-Y1-Y2-…-Yn-1-Yn (1)

 Каждая из букв несет в себе смысловую нагрузку:

  • S – идентифицирует SID. Идентификатор всегда начинается с этой буквы.
  • R – указывает на версию структуры идентификатора. Поскольку SID никогда не может быть изменен, этот параметр всегда равен 1.
  • X – показывает наивысший уровень идентификации, которым обладает созданный объект. Значение этого параметра варьируется от 0 до 5 (см. таблицу 4). Например, параметр Х в SID любой группы безопасности или учетной записи пользователя в домене имеет значение 5, а группа EveryOne (все) – 0.
  • Y1-Y2-Yn-1 – идентификатор домена.
  • Yn – относительный идентификатор (RID, relative IDs), который показывает порядковый номер объекта с момента создания Active Directory. Для встроенных объектов зарезервирован диапазон RID от 0 до 999. Например, для администратора – 500, для гостя – 501. Первой учетной записи, созданной в любой локальной системе или домене NT/2k, присваивается RID 1000, а каждому последующему объекту – следующий за ним порядковый номер (1001, 1002, 1003 и т. д.), причем при удалении объекта его номер уже никогда не используется при создании новых объектов.

Таблица 4. Расшифровка значений параметра «уровень идентификации» SID

Идентификатор

Значение

SECURITY_NULL_SID_AUTHORITY

0

SECURITY_WORLD_SID_AUTHORITY

1

SECURITY_LOCAL_SID_AUTHORITY

2

SECURITY_CREATOR_SID_AUTHORITY

3

SECURITY_NON_UNIQUE_AUTHORITY

4

SECURITY_NT_AUTHORITY

5

Чтение SID из Active Directory

В Active Directory SID хранится в переменной objectSID как массив, состоящий из бинарных элементов (см. рис. 1). Размер любого SID в Active Directory – 28 байт. Рассмотрим процесс преобразования бинарной записи идентификатора безопасности в традиционный (строковый) вид.

В бинарной форме идентификатор безопасности можно записать в общем виде так:

A-B-C-Z1-Z2-…-Zn-1-Zn (2)

Рассмотрим преобразование идентификатора безопасности из бинарного вида в строку на примере доменной учетной записи TEST (см. рис. 4).

Рисунок 4. SID в Active Directory

Рисунок 4. SID в Active Directory

Каждый элемент массива – это 1 байт или 8 бит. Для преобразования идентификатор (формула 3) разбивают на группы по 4 байта. Исключение составляют первые 8 байт. Они разбиваются на три группы: первые две по байту, последняя – 6 байт. Такое разбиение обусловлено форматом традиционной формы записи (формула 1).

01 05 00 00 00 00 00 05 15 00 00 00 2C 8F EC FB E5 F2 48 01 35 A6 99 55 26 1B 00 00 (3)

В первом байте (см. таблицу 4) хранится версия структуры идентификатора. В формуле 1 это параметр R, в формуле 2 – A. Как уже отмечалось ранее, он всегда равен 1.

Таблица 5. Поэтапное преобразование SID

Бинарный вид

Канонический (строковый) вид

Положение в бинарной записи

Комментарий

01

S-1

1-й байт (1 байт)

К идентификатору добавляется признак SID – S

05

5 разделов (5=0x5)

2-й байт (1 байт)

Не участвует в формуле SID. Несет информационную нагрузку о количестве идентификационных групп

00 00 00 00 00 05

05 (0x00000005)

3-8 байты (6 байт)

Смотри таблицу 6. Расшифровка значений параметра «уровень идентификации» SID

15 00 00 00

21 (0x00000015)

9-12 байты (4 байта)

Перед преобразованием из 16‑ричной системы записывают байты в обратном порядке

2C 8F EC FB

4226584364 (0xFBEC8F2C)

13-16 байты (4 байта)

E5 F2 48 01

21557989 (0x0148F2E5)

17-20 байты (4 байта)

35 A6 99 55

1436132917 (0x5599A635)

21-24 байты (4 байта)

26 1B 00 00

6950 (0x00001B26)

25-28 байты (4 байта)

Во втором байте (см. таблицу 5) хранится количество групп по 4 байта, которые следуют за первыми тремя группами (формула 4, в ней первые 8 байт, распределены нестандартным образом (выделенны красным цветом и подчеркнуты). Остальная информация разделена на группы по 4 байта (выделенны фиолетовым цветом и подчеркнуты)). В формуле составления идентификатора не участвует.

В следующих 6 байтах (48 битах) хранится значение наивысшего уровня идентификации.

01 05 00 00 00 00 00 05 15 00 00 00 2C 8F EC FB E5 F2 48 01 35 A6 99 55 26 1B 00 00 (4)

Преобразование осуществляется по следующему принципу. Каждая группа перезаписывается с конца в шестнадцатеричной форме (формула 5).

S — 0x1 — 0x5 — 0 x 00 00 00 00 00 05 — 0 x 00 00 00 15 — 0 x FB EC 8F 2C — 0 x 01 48 F2 E5 — 0 x 55 99 A6 35 — 0 x 00 00 1B 26 (5)

Перед записью добавляют символ S, свидетельствующий о том, что это идентификатор безопасности. А 2-й байт исключают, поскольку он несет информационную нагрузку. Далее полученные числа преобразуются из 16-ричной системы исчисления в 10-ричную (формула 6). На этом преобразование закончено.

S — 1 — 5 — 21 — 4226584364 — 21557989 — 1436132917 — 6950 (6)

Определение SID пользователя с помощью утилиты GetSID

Чтобы узнать SID пользователя, можно воспользоваться утилитой GetSID, входящей в состав Windows 2000 Resource Kit Tools. Утилиту можно загрузить с сайта Microsoft: http://download.microsoft.com/download/win2000platform/Getsid/1.0/NT5/EN-US/getsid.exe. В первую очередь GetID.exe предназначена для сравнения SID разных пользователей, однако она может с успехом использоваться для получения SID конкретного пользователя. После завершения работы мастера утилиту и сопутствующую документацию можно найти в каталоге C:\Program Files\Resource Kit.

Утилита GetSID.exe запускается из командной строки и имеет следующий синтаксис:

GetSID.exe \\server1 account \\server2 account

Для определения SID рекомендуется задать две одинаковые пары параметров: сервер и имя учетной записи в сети. Если необходимо определить SID доменной учетной записи, то в качестве сервера необходимо указать либо имя контроллера домена, либо имя домена в сокращенной форме. Например, необходимо определить SID пользователя test в домене MSK. Для этого выполним команду:

GetSID.exe \\MSK test \\MSK test

В результате выполнения этой команды на экран будет выведено сообщение, показанное на рис. 5.

Рисунок 5. Определение SID пользователя с помощью утилиты GetSID.exe

Рисунок 5. Определение SID пользователя с помощью утилиты GetSID.exe

Широко известные идентификаторы SID

Под хорошо известными SID понимают группу идентификаторов безопасности, идентифицирующую общих пользователей и общие группы безопасности. Их значения одинаковы во всех операционных системах.

Таблица 6. Широко известные идентификаторы

SID

Объект

Комментарий

S-1-1-0

Everyone

Группа, в которую входят все пользователи, даже анонимные пользователи и гости. Принадлежность контролируется ОС

S-1-3-0

Creator Owner

Замещающий элемент в наследуемой записи управления доступом (ACE). При наследовании ACE система замещает этот SID идентификатором SID создателя объекта

S-1-5-18

Local System

Учетная запись службы, используемая операционной системой

S-1-5-domain-501

Guest

Учетная запись для лиц, не имеющих индивидуальной учетной записи. Для данной учетной записи пароль не требуется. По умолчанию учетная запись Guest отключена

S-1-5-domain-512

Domain Admins

Глобальная группа, членам которой разрешено управлять доменом. По умолчанию группа Domain Admins является членом группы Administrators на всех компьютерах, входящих в домен, включая контроллеры доменов. Группа Domain Admins по умолчанию является владельцем любого объекта, созданного любым членом группы

S-1-5-domain-513

Domain Users

Глобальная группа, в которую по умолчанию входят все учетные записи домена. При создании учетной записи в домене она по умолчанию добавляется в эту группу

S-1-5-domain-515

Domain Computers

Глобальная группа, в которую входят все клиенты и серверы, входящие в домен

S-1-5-root domain-519

Enterprise Admins

Универсальная группа в домене с основным режимом; глобальная группа в домене со смешанным режимом. Данной группе разрешено вносить изменения на уровне леса в Active Directory, например добавлять дочерний домен. По умолчанию единственным членом группы является учетная запись Administrators для корневого домена леса

S-1-5-32-544

Administrators

Встроенная группа. После первоначальной установки операционной системы единственным членом этой группы является учетная запись Administrators. Когда компьютер присоединяется к домену, группа Domain Admins добавляется к группе Administrators. Когда сервер становится контроллером домена, группа Enterprise Admins также добавляется к группе Administrators

S-1-5-32-545

Users

Встроенная группа. После первоначальной установки операционной системы единственным членом этой группы является группа «Прошедшие проверку». Когда компьютер присоединяется к домену, группа Domain Users добавляется к группе Users на этом компьютере

S-1-5-32-546

Guests

Встроенная группа. По умолчанию единственным членом группы является учетная запись Guest. Группа Guests предоставляет возможность пользователям периодически или однократно входить в систему с ограниченными правами встроенной в компьютер учетной записи Guest

S-1-5-32-547

Power Users

Встроенная группа. По умолчанию в этой группе нет членов. Членам группы Power Users разрешено создавать локальных пользователей и группы; изменять и удалять созданные ими учетные записи; удалять пользователей из групп Power Users, Users и Guests. Также членам группы Power Users разрешается устанавливать программы; создавать, удалять локальные принтеры и управлять ими; создавать и удалять общие файловые ресурсы

Идентификатор безопасности UUID

Универсальный уникальный идентификатор активно используется для создания программного обеспечения. Все объекты Windows имеют свой уникальный идентификатор – UUID. Перечень всех идентификаторов, используемых в данном компьютере, можно найти в реестре в ветви HKEY_CLASSES_ROOT\CLSID (см. рис. 6).

Рисунок 6. Папка CLSID

Рисунок 6. Папка CLSID

Каждая UUID-папка имеет внутреннюю структуру, в которой находятся параметры, определяющие местоположение объекта, контекстное меню, значок объекта и другие свойства. В таблице 7 приведены стандартизованные UUID объектов, которые во всех версиях Windows одинаковы.

Таблица 7. Некоторые стандартизованные UUID

UUID

Объект

{4e1-3957-11d2-a40b-0c5020524153}

Administrative Tools

{85bbd92o-42a0-1o69-a2e4-08002b30309d}

Briefcase

{21ec2o2o-3aea-1o69-a2dd-08002b30309d}

Control Panel

{d20ea4e1-3957-11d2-a40b-0c5020524152}

Fonts

{ff393560-c2a7-11cf-bff4-444553540000}

History

{00020d75-0000-0000-c000-000000000046}

Inbox

{00028b00-0000-0000-c000-000000000046}

Microsoft Network

{20d04fe0-3aea-1069-a2d8-08002b30309d}

My Computer

{450d8fba-ad25-11d0-98a8-0800361b1103}

My Documents

{208d2c60-3aea-1069-a2d7-08002b30309d}

My Network Places

{1f4de370-d627-11d1-ba4f-00a0c91eedba}

Network Computers

{7007acc7-3202-11d1-aad2-00805fc1270e}

Network Connections

{2227a280-3aea-1069-a2de-08002b30309d}

Printers and Faxes

{7be9d83c-a729-4d97-b5a7-1b7313c39e0a}

Programs Folder

{645ff040-5081-101b-9f08-00aa002f954e}

Recycle Bin

{e211b736-43fd-11d1-9efb-0000f8757fcd}

Scanners and Cameras

{d6277990-4c6a-11cf-8d87-00aa0060f5bf}

Scheduled Tasks

{48e7caab-b918-4e58-a94d-505519c795dc}

Start Menu Folder

{7bd29e00-76c1-11cf-9dd0-00a0c9034933}

Temporary Internet Files

{bdeadf00-c265-11d0-bced-00a0c90ab50f}

Web Folders

Генерация UUID

При создании какого-либо приложения с помощью Microsoft Visual Studio .NET, GUID объектов формируется автоматически. Если необходимо сгенерировать идентификаторы явным образом воспользовавшись одним из оn-line генераторов: http://www.famkruithof.net/uuid/uuidgen.

Заключение

В заключение хочется сказать: несмотря на то, что предложенные знания не являются самыми необходимыми, они важны. Понимание процесса образования SID и других идентификаторов безопасности поможет решить множество проблем, возникающих в процессе эксплуатирования сети. Многие «чудеса» станут вполне объяснимыми.

  1. КВ 288900 «How To Use Visual Basic to Construct a Well-Known SID».
  2. RFC 4122 «A Universally Unique IDentifier (UUID) URN Namespace».
  3. CLSID List. Windows Class Identifiers – http://www.autohotkey.com/docs/misc/CLSID-List.htm.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru