Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2915

.pdf
Скачиваний:
1
Добавлен:
15.11.2022
Размер:
2.59 Mб
Скачать

Рис. 42. Схема архитектуры ОС Windows NT

Часть Windows NT, работающая в режиме ядра, называется executive - исполнительной частью. Она включает ряд компонент, которые управляют виртуальной памятью, объектами (ресурсами), вводом-выводом и файловой системой (включая сетевые драйверы), взаимодействием процессов и частично системой безопасности. Эти компоненты взаимодействуют между собой с помощью межмодульной связи. Каждая компонента вызывает другие с помощью набора тщательно специфицированных внутренних процедур.

Вторую часть Windows NT, работающую в режиме пользователя, составляют серверы - так называемые

177

защищенные подсистемы. Серверы Windows NT называются защищенными подсистемами, так как каждый из них выполняется в отдельном процессе, память которого отделена от других процессов системой управления виртуальной памятью NT executive. Так как подсистемы автоматически не могут совместно использовать память, они общаются друг с другом посредством посылки сообщений. Сообщения могут передаваться как между клиентом и сервером, так и между двумя серверами. Все сообщения проходят через исполнительную часть Windows NT. Ядро Windows NT планирует нити защищенных подсистем точно так же, как и нити обычных прикладных процессов.

Поддержку защищенных подсистем обеспечивает исполнительная часть - Windows NT executive, которая работает в пространстве ядра и никогда не сбрасывается на диск. Ее составными частями являются:

-Менеджер объектов. Создает, удаляет и управляет объектами NT executive - абстрактными типами данных, используемых для представления ресурсов системы.

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

-Менеджер процессов. Создает и завершает, приостанавливает и возобновляет процессы и нити, а также хранит о них информацию.

-Менеджер виртуальной памяти. -Подсистема ввода-вывода.

Исполнительная часть основывается на службах нижнего уровня, предоставляемых ядром NT, в функции которого входит:

-планирование процессов; -обработка прерываний и исключительных ситуаций;

-синхронизация процессоров для многопроцессорных систем;

-восстановление системы после сбоев.

178

Система безопасности Windows 2000 состоит из множества компонентов, предоставляющих возможность обеспечения безопасности работы с данными в любой точке сети, начиная с хранения информации в файлах на дисках серверов и рабочих станций и заканчивая средствами обеспечения гарантированного уровня безопасности при передаче данных по сети путем использования механизмов виртуальных частных сетей (VPN). Сейчас Windows 2000 содержит более 40 различных интегрированных между собой механизмов безопасности, каждый из которых может быть расширен разработчиками для учета особенностей применения этой ОС в сети своего предприятия.

1). Файловая система NTFS 5.0. Эта версия файловой системы является объектно-ориентированным хранилищем данных, представляемых в виде привычных для пользователя объектов — файлов и каталогов. В NTFS 5.0 теперь можно хранить потенциально любую информацию и в любых форматах представления. Реализуются эти возможности за счет появления в файловой системе нового механизма Reparse points (повторный грамматический анализ). Reparse points — это объекты, которые могут быть связаны с файлами или каталогами, и описывают правила хранения и обработки информации, хранящейся в нестандартном для файловой системы виде. С использованием этого механизма в NTFS уже реализованы механизмы шифрации данных и механизмы монтирования томов (представление любого тома в виде каталога на другом диске — возможность создания

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

При попытке открытия выбранного пользователем файла (или каталога), запрос на чтение данных передается приложением ядру ОС. Ядро, анализируя свойства выбранного файла и обнаруживая связанный с ним объект Reparse points, анализирует хранящуюся в этом объекте информацию (в этом и состоит суть названия механизма — повторный грамматический анализ). Объект Reparse points, по сути,

179

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

Еще одним новшеством файловой системы NTFS 5.0 стали обновленные механизмы разграничения прав доступа и появившиеся средства квотирования дискового пространства. Отныне система прав доступа обладает встроенными механизмами наследования, позволяющими с большой степенью удобства выполнять разграничение полномочий в файловых системах с большим количеством уровней вложенности каталогов. В составе Windows 2000 появился инструментарий, позволяющий описывать маски наследуемых прав для любых комбинаций каталогов, файлов и целых ветвей файловой системы. Сами права доступа стали обладать существенно большей гибкостью, не создающей путаницу изза обилия вариантов разграничения прав.

2). Интерфейсы прикладного программирования (API) сетевой аутентификации Windows, являющиеся частью SSPI (Security Support Provider Interface). Приложения и службы

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

SSPI — это инструмент, с помощью которого реализована вся внутренняя система безопасности Windows

180

2000 и ее сервисов. SSPI обеспечивает существование 3 основных механизмов сетевой безопасности:

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

Аутентификация и управление доступом.

Эти функции в Windows NT выполняют (см. рис. 43): -база данных учетных записей SAM (Security Accounts

Manager);

-списки управления доступом ACL (Access Control Lists) .

Каждая станция NT поддерживает локальную базу данных учетных записей (SAM) в реестре по адресу: HKEY LOCAL_MACH1NE\SAM. SAM содержит имена учетных записей и пароли к ним, а каждая запись - специальный уникальный идентификатор SID (Security Identifier),

используемый в качестве указателя на нее другими компонентами подсистемы безопасности. Списки управления доступом (ACL) формируются отдельно для каждого защищаемого ресурса и представляют собой таблицу, в которой содержатся указатели (SID) на учетные записи SAM и права доступа, определенные для этой записи.

181

Рис. 43. Механизм аутентификации и управления доступом в Windows NT

Подобная система безопасности работает следующим образом:

-при входе в систему (локальном или удаленном) пользователь проходит процедуру аутентификации, т. е. сообщает системе имя и пароль своей учетной записи;

-система безопасности проверяет в SAM наличие такой учетной записи и при успешном результате формирует для пользователя так называемый маркер доступа (Access Token), содержащий указатель (SID) на пользовательскую запись. Затем система безопасности "прикрепляет" этот маркер доступа ко всем процессам, которые пользователь инициирует и которыми управляет;

-при попытке пользовательского процесса получить доступ к защищенному объекту система безопасности

182

сравнивает его SID со списком управления доступом к объекту. Если данному указателю соответствует запись в ACL, то пользователь (вернее, пользовательский процесс) получает доступ, в противном случае в доступе будет отказано.

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

Верхний уровень. Верхний уровень подсистемы аутентификации Windows NT включает в себя процесс аутентификации WinLogon.exe и так называемые библиотекипровайдеры или просто провайдеры - заменяемые библиотеки, реализующие большую часть высокоуровневых функций процесса аутентификации. WinLogon автоматически запускается при старте операционной системы и остается активным до выключения питания или перезагрузки. При аварийном завершении этого процесса происходит аварийное завершение работы всей операционной системы ("синий экран"). Таким образом, подменить WinLogon в процессе функционирования операционной системы практически невозможно.

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

Вход пользователя в Windows NT производится следующим образом:

1). Провайдер получает от пользователя идентифицирующую и аутентифицирующую информацию. В стандартной конфигурации операционной системы в качестве идентифицирующей информации используется имя, а в качестве аутентифицирующей информации - пароль. Однако при использовании нестандартных провайдеров можно реализовать схему аутентификации, предусматривающую

183

применение внешних носителей ключевой информации или биометрических характеристик пользователя.

2). Провайдер осуществляет аутентификацию, передавая имя и пароль на средний уровень подсистемы аутентификации с помощью системного вызова LogonUser. При этом, если аутентификация прошла успешно, создается маркер доступа пользователя.

3). Если маркер доступа пользователя создан успешно, провайдер осуществляет авторизацию пользователя, запуская процесс Userlnit.exe от имени аутентифицированного пользователя. Для этого используется системный вызов CreateProcessAsUser, который отличается от вызова СгеateProcess только тем, что запускаемому процессу назначается маркер доступа, отличный от маркера доступа процессародителя. В данном случае процессу Userlnit назначается только что созданный маркер доступа авторизуемого пользователя.

4). Процесс Userlnit загружает индивидуальные настройки пользователя из его профиля (profile), монтирует ключ реестра, соответствующий данному пользователю, загружает программную среду пользователя (по умолчанию в Windows NT 4.0 – Explorer) и завершает работу.

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

Средний уровень. В средний уровень подсистемы аутентификации Windows NT входят локальный распорядитель безопасности (local security authority, LSA) и так называемые пакеты аутентификации - заменяемые библиотеки, реализующие большую часть низкоуровневых функций аутентификации. Так же как и WinLogon, LSA представляет

184

собой обычный процесс (по имени lsass.exe), выполняющийся от имени псевдопользователя SYSTEM. Аварийное завершение LSA приводит к аварийному завершению работы всей операционной системы. Как и WinLogon, LSA передоверяет большинство своих функций заменяемым библиотекам. Стандартная схема аутентификации реализуется пакетом MSV 1.0 (msv1_0.dll).

Пакет аутентификации осуществляет аутентификацию пользователя в процессе обработки системного вызова LogonUser. Аутентификация производится следующим образом:

1). Пакет аутентификации получает от верхнего уровня подсистемы аутентификации имя и пароль пользователя и генерирует образ пароля.

2). Используя услуги нижнего уровня подсистемы аутентификации, пакет аутентификации получает эталонный образ пароля и сравнивает его с образом пароля из п. 1.

3). При совпадении образов паролей LSA получает от нижнего уровня подсистемы аутентификации информацию о том, может ли данный пользователь начинать в данный момент работу с данной рабочей станцией (не устарел ли пароль, не заблокирован ли бюджет пользователя и т.д.).

4). При положительном результате проверки LSA формирует маркер доступа пользователя, получая необходимую информацию от нижнего уровня подсистемы аутентификации.

5). LSA передает сформированный маркер доступа верхнему уровню подсистемы аутентификации.

Для генерации образа пароля стандартный пакет аутентификации MSV 1.0 применяет хеш-функцию MD4. Для совместимости с более ранними версиями Windows MSV 1.0 поддерживает другой формат образа пароля. В этом случае пароль преобразуется в формат ANSI, все латинские буквы приводятся к верхнему регистру, пароль разбивается на две строки по 7 байт (если пароль короче, он дополняется нулями). Затем каждая половина пароля используется в качестве ключа

185

при шифровании "магической" строки "KGS!@#$%" по алгоритму DES. Полученные два шифртекста по 8 байт каждый и представляют собой образ пароля.

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

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

При стандартной конфигурации операционной системы нижний уровень подсистемы аутентификации включает в себя систему управления списком пользователей SAM и сервис NetLogon. SAM используется для извлечения информации из реестра локального компьютера, a NetLogon - информации из реестра контроллера домена. Администраторы системы могут устанавливать и другие сервисы аналогичного назначения.

Учетная информация о пользователях хранится в ключах реестра \Registry\Machine\SAM и

\Registry\Machine\SECURITY. Эталонные образы паролей хранятся зашифрованными на идентификаторе пользователя по алгоритму DES.

Подсистема управления доступом Для просмотра и обслуживания локальных учетных

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

Политика учетных записей (Account policy). Использование учетных записей определяют настройки для пароля и блокировок. Можно потребовать от пользователей соблюдать

186

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]