Архитектура системы безопасности WindowsNT. Основные компоненты системы безопасности. Модули, отвечающие за работу системы безопасности

Страницы работы

Фрагмент текста работы

Обычно он указывает на SID пользователя в поле TokenUser, однако для членов Administrators он указывает на SID группы Administrators в поле TokenGroups.

TokenPrimary Group

Указатель на SID группы в поле TokenGroups, которая будет приписана в качестве первичной группы при создании какого-либо объекта (используется только подсистемой POSIX).

TokenDefaultDacl

Указатель на список контроля доступа по умолчанию, который приписывается любому объекту, когда его создает процесс, предъявляющий данный маркер доступа.

TokenSource

Строка из 8 символов, позволяющая узнать источник маркера доступа, например Session Manager, LAN Manager, или RPC Server. Строка позволяет разработчикам добавлять имена других компонентов, способных выдавать маркеры доступа. Эта информация используется при создании записей аудита.

Tokenld

Идентификатор LUID данного маркера доступа.

Authenticationld

Идентификатор LUID сессии, в рамках которой создан данный маркер. В рамках одной сессии может быть создано много маркеров доступа.

Modifiedld

Идентификатор LUID, характеризующий изменение контекста безопасности. Он изменяется каждый раз, когда меняется данный маркер доступа, позволяя, таким образом, определить, менялся или нет данный маркер доступа с момента последнего обращения.

ExpirationTime

Время устаревания маркера доступа. Это поле не используется в текущих версиях Windows NT.

TokenType

Отличает первичный маркер доступа и маркер, созданный в процессе олицетворения. Может принимать только два значения: TokenPrimary и Tokenlmpersonation.

TokenlmpersonationLevel

Уровень олицетворения. Может принимать значения SecurityAnonymous, Securityldentification, Securitylmpersonation, SecurityDelegation (см. раздел

«Субъекты и олицетворение»).

Рис. 1-6. Маркер доступа.

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

Создание маркера доступа осуществляется вызовом процедуры NtCreateTokenf) из ядра Windows NT. Такой вызов может выполнить только один процесс — Локальный администратор безопасности LSA.

Субъекты и олицетворение

Напомним, что субъектом доступа в Windows NT является комбинация программы с маркером доступа пользователя. Когда программа или процесс работает от имени пользователя, то говорят, что процесс работает в контексте безопасности (security context) данного пользователя. Чтобы обеспечить работу в режиме клиент-сервер, в модели безопасности Windows NT предусмотрены два класса субъектов.

*  Простой субъект (simple subject) — это процесс, которому присвоен контекст безопасности, определенный при входе пользователя в систему. Чаще всего маркер доступа просто передается по наследству от порождающего процесса. Процесс, являющийся простым субъектом, не может иметь в качестве клиентов другие субъекты.

*  Субъект-сервер (server subject) — это процесс, реализованный как защищенная подсистема (например, Win32) и способный работать с другими субъектами как с клиентами. При этом сервер обычно использует контекст безопасности тех клиентов, чьи запросы он выполняет.

Обычно, если субъект вызывает службу, реализованную в защищенной подсистеме, и необходимо решить вопросы, связанные с правами доступа, внутри подсистемы используется маркер доступа исходного субъекта.

Windows NT разрешает одному процессу взять атрибуты безопасности другого посредством так называемого олицетворения (Impersonation). Например, процесс сервера обычно использует олицетворение для доступа к объектам, связанного с выполнением запросов клиента (рис. 1-7). В качестве субъекта-сервера обычно выступают серверы DDE, именованных каналов и вызова удаленных процедур (remote procedure calls, RPCs). Олицетворение подразумевает, что одному из потоков управления сервера, создаваемому для отработки запроса клиента будет приписан маркер доступа не исходного процесса, а вызывающего клиента.

На рисунке первым потоком процесса-сервера является поток управления

Похожие материалы

Информация о работе