В контексте линейки операционных систем Microsoft Windows NT идентификатор безопасности ( SID ) — это уникальный неизменяемый идентификатор пользователя, группы пользователей или другого участника безопасности . Субъект безопасности имеет один пожизненный SID (в данном домене), и все свойства субъекта, включая его имя, связаны с этим SID. Такая конструкция позволяет переименовывать принципала (например, с «Джейн Смит» на «Джейн Джонс»), не затрагивая атрибуты безопасности объектов, ссылающихся на принципала.
Windows предоставляет или запрещает доступ и привилегии к ресурсам на основе списков управления доступом (ACL), которые используют SID для уникальной идентификации пользователей и их членства в группах. Когда пользователь входит в систему, создается маркер доступа , который содержит идентификаторы SID пользователя и группы, а также уровень привилегий пользователя. Когда пользователь запрашивает доступ к ресурсу, токен доступа проверяется на соответствие ACL, чтобы разрешить или запретить определенное действие над конкретным объектом.
SID полезны для устранения проблем с аудитом безопасности, миграцией серверов Windows и доменов.
Формат SID можно проиллюстрировать на следующем примере: «S-1-5-21-3623811015-3361044348-30300820-1013»:
Известные значения авторитета идентификатора: [1] [2]
Определение SID возможности:
Согласно поддержке Microsoft: [7] Важно : НЕ УДАЛЯЙТЕ возможности SIDS ни из реестра, ни из разрешений файловой системы. Удаление SID возможности из разрешений файловой системы или реестра может привести к неправильной работе функции или приложения. После удаления SID возможности вы не сможете использовать пользовательский интерфейс, чтобы добавить его обратно.
Виртуальные учетные записи определены для фиксированного набора имен классов, но имя учетной записи не определено. В виртуальной учетной записи доступно почти бесконечное количество учетных записей. Имена работают как «Класс учетной записи\Имя учетной записи», то есть «AppPoolIdentity\Пул приложений по умолчанию». SID основан на хэше SHA-1 имени в нижнем регистре. Каждой виртуальной учетной записи могут быть предоставлены разрешения отдельно, поскольку каждая из них соответствует отдельному SID. Это предотвращает проблему «разрешений перекрестного доступа», когда каждая служба назначается одному и тому же классу NT AUTHORITY (например, «NT AUTHORITY\Network Service»).
SID компьютера (S-1-5-21) хранится в кусте реестра SECURITY , расположенном по адресу SECURITY\SAM\Domains\Account . Этот ключ имеет два значения F и V. Значение V — это двоичное значение, в которое в конце данных (последние 96 бит) встроен SID компьютера. [11] (Некоторые источники утверждают, что вместо этого он хранится в кусте SAM.) Резервная копия находится по адресу SECURITY\Policy\PolAcDmS\@ .
NewSID гарантирует, что этот SID имеет стандартный формат NT 4.0 (3 32-битных субцентра, которым предшествуют три 32-битных поля полномочий). Затем NewSID генерирует новый случайный SID для компьютера. Генерация NewSID требует больших усилий для создания действительно случайного 96-битного значения, которое заменяет 96-битные значения трех субавторитетов, составляющих SID компьютера.
— Новый файл чтения SID
Формат субавторитета SID компьютера также используется для SID домена. В этом случае машина считается собственным локальным доменом.
SID компьютера хранится в реестре в виде необработанных байтов. Чтобы преобразовать его в более распространенную числовую форму, его интерпретируют как три 32-битных целых числа с прямым порядком байтов, преобразуют их в десятичные и добавляют между ними дефисы.
SID компьютера также используется некоторыми программами бесплатной пробной версии, такими как Start8, для идентификации компьютера, чтобы он не мог перезапустить пробную версию. [ нужна цитата ]
Идентификаторы безопасности служб — это функция изоляции служб, функция безопасности, представленная в Windows Vista и Windows Server 2008 . [12] Любая служба со свойством типа «неограниченный» SID будет иметь SID, специфичный для службы, добавленный к токену доступа процесса хоста службы. Целью идентификаторов SID службы является обеспечение возможности управления разрешениями для одной службы без необходимости создания учетных записей служб, что является административными накладными расходами.
SID каждого сервиса — это локальный SID на уровне компьютера, созданный на основе имени сервиса по следующей формуле:
S-1-5-80-{SHA-1(service name in upper case encoded as UTF-16)}
Эту sc.exe
команду можно использовать для генерации произвольного SID службы:
Служба также может называться NT SERVICE\<имя_службы> (например, «NT SERVICE\dnscache»).
В рабочей группе компьютеров под управлением Windows NT/2K/XP пользователь может получить неожиданный доступ к общим файлам или файлам, хранящимся на съемном носителе. Этого можно предотвратить, установив списки управления доступом к уязвимому файлу, чтобы эффективные разрешения определялись идентификатором SID пользователя. Если этот SID пользователя дублируется на другом компьютере, пользователь второго компьютера, имеющий тот же SID, может иметь доступ к файлам, которые защищен пользователем первого компьютера. Это часто может произойти, когда SID машины дублируются клоном диска, что характерно для пиратских копий. Идентификаторы SID пользователя создаются на основе SID компьютера и последовательного относительного идентификатора.
Когда компьютеры объединены в домен (например, домен Active Directory или NT), каждому компьютеру предоставляется уникальный SID домена, который пересчитывается каждый раз, когда компьютер входит в домен. Этот SID аналогичен SID компьютера. В результате обычно не возникает серьезных проблем с дублированием SID, когда компьютеры являются членами домена, особенно если не используются локальные учетные записи пользователей. Если используются локальные учетные записи пользователей, существует потенциальная проблема безопасности, аналогичная описанной выше, но проблема ограничивается файлами и ресурсами, защищаемыми локальными пользователями, а не пользователями домена.
Дублированные идентификаторы SID обычно не являются проблемой для систем Microsoft Windows, хотя другие программы, обнаруживающие SID, могут иметь проблемы с безопасностью.
Раньше Microsoft предоставляла утилиту NewSID Марка Руссиновича как часть Sysinternals для изменения SID компьютера. [13] Он был удален и удален из загрузки 2 ноября 2009 года. Руссинович объясняет, что ни он, ни команда безопасности Windows не могли придумать ситуации, в которой дублирующиеся SID могли бы вообще вызвать какие-либо проблемы, поскольку машинные SID никогда не несут ответственности за шлюзование. любой доступ к сети. [14]
В настоящее время единственным поддерживаемым механизмом дублирования дисков для операционных систем Windows является использование SysPrep , который генерирует новые идентификаторы SID.