Архитектура Windows, драйвера, локальная сеть, защита

Локальные сети
Роль локальных сетей
Топологии
Общая шина
Звезда
Кольцо
Дерево
Многозначность топологии
Выбор конфигурации
Правила модели 1
Расчет по модели 2
Fast Ethernet
Сегменты
Задержки сигнала
Проектирование
Выбор оборудования
Сетевые программные средства
Формулы Шеннона
Типы линий передачи
Структура модема
Методы модуляции
Особенности стандартов
Классификация модемов
Программные средства для модемов
Витая пара
Коаксиальные кабели
Оптоволоконные кабели
Бескабельные каналы
Согласование линий связи
Кодирование информации
Пакеты
Адресация пакетов
Методы управления
Централизованный метод
Децентрализованное управление
Маркерный метод
Эталонная модель OSI
Аппаратура локальных сетей
Протокол
Одноранговые сети
Сетевые средства Novell
Сетевые средства Microsoft
LANtastic фирмы Artisoft
Сети Ethernet
Сеть Token-Ring
Сеть Arcnet
Сеть FDDI
Сеть 100VG-AnyLAN
Сверхвысокоскоростные сети
Алгоритмы шифрования
Стандартные методы шифрования
Программные средства защиты
Управления обменом CSMA/CD
Алгоритм доступа к сети
Оценка производительности сети
Ошибки в сети
Снижение числа ошибок
Помехоустойчивое кодирование
Циклические коды
Аппаратура 10BASE5
Аппаратура 10BASE2
Аппаратура 10BASE-T
Аппаратура 1OBASE-FL
Аппаратура 100BASE-TX
Аппаратура 100BASE-T4
Аппаратура 100BASE-FX
Определение типа сети
Адаптеры Ethernet
Характеристики адаптеров
Адаптеры с внешними трансиверами
Концентраторы Ethernet
Репитеры
Класы концентраторов
Коммутирующие концентраторы
Коммутаторы Cut-Through
Коммутаторы Store-and-Forward
Мосты и маршрутизаторы
Функции мостов
Функции маршрутизаторов
Теоретическая кибернетика
Теоретическая информатика
Моделирование систем
Математическая модель
Аналитическая модель
Имитационное моделирование
Метод суперпозиции
метод Монте-Карло
Теория массового обслуживания
уравнения Колмогорова
Формула Литтла
Пример СМО
Теоретическая механика
Проекция силы на ось
Момент сил
Уравнение движения точки
Основы динамики
Сопративления материалов
Растяжение и сжатие
Изгиб
Понятие о теориях прочности
Механические испытания материалов
Требования к машинам и деталям
Классификация машин
Червячные передачи
Подшипники качения
Соединение деталей
Компьютерная сеть
Концепция вычислительных сетей
многотерминальные системы
Распределенные компьютерные сети
Многомашинная система
Распределенная программа
RS-232C
топология
Общая шина
Ethernet повторитель
Коммутатор
Для конечного пользователя
о пользе стандартизации
Многоуровневый подход
стек коммуникационных протоколов
Уровни модели OSI
канальный уровнь
Сетевой уровень
Транспортный уровень
Сеансовый уровень
стандарты Internet
Стек TCP/IP Стек IPX/SPX
Глобальные сети
Глобальные сети с коммутацией пакетов
Структура
режим коммутации пакетов Х.25
Выделенный канал
Стандарт V.34
Протокол SLIP
Протокол PPP
Маршрутизатор
Модемы ISDN Сети Х.25
Сети frame relay
Технология АТМ
Удаленный доступ Почта
ADSL-модемы трафик IP
Средства анализа и управления сетями
Управление конфигурацией сети
Управление безопасностью
Архитектуры систем
платформенный подход
Стандартизуемые элементы
Анализатор протоколов
Сетевые анализаторы
приборы мониторинга
протокол UDP
спецификация RMON
Структура ЛС
Топология «шина» «звезда» «кольцо» «дерево»
Коаксиальный кабель
Оптоволоконный кабель
Протокол
Сеть Token-Ring
Arcnet FDDI
lOOVG-AnyLAN
Fast Ethernet
Стандарт шифрования
Циклические коды
100BASE-TX
100ВА5Е-Т4
100BASE-FX
IEEE 802.3
концентраторы
Коммутаторы
Первая модель
Вторая модель
Стандарт V.34
Накопители на магнитной ленте
резервное копирование информации
мини-кассеты
Стандарты накопителей на DAT
Внешнее подключение
Программы резервирования
Накопители на оптических дисках
Запись и воспроизведение данных
Буферы (кэш)
Накопители CD-R
Компьютерная алгебра
Ортогональные многочлены
Интегральные функции
Эллиптические функции
Функции Бесселя
Потоки и файлы
Графика и звук
Трехмерная графика
Работа с выражениями
Основы программирования
Методы программирования
Линейная алгебра
Создание рядов
Нахождение полинома
Численные расчеты
Статистические расчеты
Построение гистограмм
Регрессия
Построение 3D-параметрических графиков
Опции численного интегрирования
Математика лекции задачи
Математический анализ
Линии второй степени

Пределы

Неопределенный интеграл

Определенный интеграл
Основные правила интегрирования
Множества и отображения

Геометрические преобразования

Тройные интегралы примеры решений

Двойные интегралы примеры решений

Понять, что такое драйвер, мы попробуем на типовом примере взаимодействия прикладной программы с драйвером. В NT существует два типа драйверов: драйверы пользовательского режима и драйверы режима ядра. В этом разделе мы рассмотрим, какое программное обеспечение необходимо для разработки и отладки драйверов, а также его установку и настройку Для построения драйверов и связанных с ними прикладных программ используется утилита BUILD, входящая в состав DDK. Необходимо особо отметить, что драйверы предполагается писать на С, а не на C++. Microsoft не поддерживает использование C++ для компонентов ядра.

Общая архитектура Windows NT

В этой главе рассматриваются ключевые архитектурные особенности и характеристики ОС Windows NT. Эти сведения необходимы для получения представления о назначении различных компонентов ОС, их взаимодействии друг с другом, а также для ознакомления с терминологией При обсуждении архитектуры ОС Windows NT постоянно используются понятия «режим пользователя» и «режим ядра», поэтому стоит определить, что это значит. Защищенный режим является основным и наиболее естественным режимом работы 32-разрядных процессоров. Этот режим был в полной мере реализован в процессорах серии i386 и с тех пор существенных изменений не претерпел. Основные характеристики Windows NT На NT иногда ссылаются как на операционную систему на основе микроядра (microkernel-based operating system). Идея, лежащая в основе концепции микроядра, состоит в том, что все компоненты ОС за исключением небольшой основы (собственно, микроядра) исполняются как процессы пользовательского режима. Базовые компоненты в микроядре исполняются в привилегированном режиме.

Подсистемы окружения операционной системы NT реализованы как системы типа клиент/сервер. Микроядро и Слой Абстрагирования от Оборудования (HAL) изолируют подсистемы Исполнительной Системы от конкретной архитектуры процессора. В исполнительной системе объект (object) - это отдельный образец статически определенного типа объектов, существующий во время выполнения. Поток (thread) - единица исполнения в NT. Поток - это сущность внутри процесса, которую ядро направляет на исполнение, он может принадлежать только одному процессу. NT позволяет нескольким единицам исполнения - потокам - выполняться одновременно, быстро переключаясь между ними. Такое поведение называется многозадачностью (multitasking).

Виртуальное адресное пространство (virtual address space) процесса - это набор адресов, которые могут использовать потоки процесса, оно равно четырем гигабайтам (232 байт), два из которых предназначены для использования программой, а другие два зарезервированы для ОС. NT поддерживает только архитектуру с симметричной мультипроцессорной обработкой - SMP Windows NT разработана со встроенной сетевой поддержкой и включает широкую поддержку сети, интегрированную с системой ввода/вывода и интерфейсом Win32 API. Структура Windows NT Серверы Windows NT называются защищенными подсистемами, так как каждый из них - это отдельный процесс, память которого защищена от других процессов системой виртуальной памяти исполнительной системы NT.

Подсистема среды - это сервер пользовательского режима, реализующий API некоторой ОС Другой тип защищенных подсистем - неотъемлемые подсистемы - это серверы, выполняющие важные функции ОС. Надо отметить, что в разных источниках понятие исполнительной системы интерпретируется по-разному Диспетчер Объектов (object manager), который является вероятно наименее известной из подсистем Исполнительной Системы NT, является также одним из наиболее важных. Система ввода/вывода исполнительной системы - это часть кода ОС, получающая запросы ввода/вывода от процессов пользовательского режима и передающая их, в преобразованном виде, устройствам ввода/вывода.

Ядро ОС Windows NT реагирует на прерывания и исключения, занимается планированием потоков, сохранением и восстановлением контекстов потоков, направляет потоки на выполнение, выполняет межпроцессорную синхронизацию, предоставляет набор сервисов, элементарных объектов и интерфейсов, используемых компонентами исполнительной системы Слой абстрагирования от оборудования (Hardware Abstraction Layer, HAL) является относительно тонким слоем кода, взаимодействующим напрямую с процессором, шинами и другим оборудованием, и отвечает за обеспечение стандартного интерфейса к платформенно-зависимым ресурсам для ядра, диспетчера ввода/вывода и драйверов устройств. Windows NT имеет двухуровневую модель приоритетов В любое время исполняющийся код будет иметь определенный уровень IRQL. Этот уровень определяет, что позволено делать коду, применяется ли к коду механизм квантования времени планировщика и каковы его взаимосвязи с другими потоками исполнения. Динамические приоритеты и приоритеты реального времени

NT управляет прерываниями путем отображения уровней прерывания контроллера прерываний в собственную аппаратно-независимую таблицу уровней прерываний. Сведения об IRQL показывают, что уровень Dispatch Level связан с операциями планирования Текущий уровень IRQL свой у каждого CPU. Код режима ядра может определить IRQL, в котором он выполняется, посредством вызова функции KeGetCurrentlrql Организация памяти в защищенном режиме работы процессора Как уже отмечалось, системное адресное пространство сильно отличается от пользовательского

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

В исполнительной системе драйвер устройства и файловая система строятся и выглядят для остальной части ОС одинаково Итак, файловый объект - это объект, видимый из режима пользователя, который представляет всевозможные открытые источники или приемники ввода/вывода: файл на диске или устройство (физическое, логическое, виртуальное). Драйверы скрыты от программ пользовательского режима. Устройства (физические, логические и виртуальные), создаваемые и управляемые драйверами, видны программам пользовательского режима как именованные файловые объекты Диспетчер ввода/вывода определяет тип объекта - объект-устройство, используемый для представления физического, логического или виртуального устройства, чей драйвер был загружен в систему. Что происходит при успешном открытии объекта-устройства (неважно, с помощью какой функции: CreateFile() или NtCreateFile()?

Сейчас мы коротко рассмотрим операции установки и управления драйверами Точки входа драйвера Драйвер режима ядра не может использовать API пользовательского уровня или стандартные библиотеки времени исполнения языка С. Можно использовать только функции ядра. Диспетчер ввода/вывода вызывает точку входа DriverEntry при загрузке драйвера Код пользовательского уровня не может напрямую вызвать код режима ядра

Характеристики подсистемы ввода/вывода При осуществлении операции ввода/вывода диспетчер ввода/вывода создает специальный пакет, описывающий эту операцию - пакет запроса ввода/вывода (I/O Request Packet, IRP). Описатель для буфера данных инициатора запроса находится в фиксированной части IRP. NT использует коды функции ввода/вывода для определения конкретной операции ввода/вывода, которая будет иметь место для конкретного объекта-файла. Информация, требуемая для выполнения запроса ввода/вывода, содержится в различных элементах как фиксированной части IRP, так и стека размещения ввода/вывода.

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

Всякий раз, когда запрос ввода/вывода удерживается драйвером в течение продолжительного отрезка времени, драйвер должен быть готов к отмене данного запроса. Механизмы синхронизации Спин-блокировка - простейший механизм синхронизации Спин-блокировки абсолютно необходимы в случаях, когда требуется синхронизация кода, работающего на повышенных уровнях IRQL. Ресурсы являются вариантом быстрого мьютекса

Обобщенная таблица механизмов синхронизации Любой исполняемый код, как и код драйвера, работает в контексте некоторого потока. В процессе системной инициализации NT создает несколько потоков в процессе System В случае, когда использование системных рабочих потоков невозможно, драйвер должен создать свой собственный поток. Как говорилось в разделе, посвященном механизмам синхронизации, поток является диспетчерским объектом, который переходит в сигнальное состояние при своем завершении. Одной из основных обязанностей NT является сопряжение компьютера с его периферийными устройствами Драйверам устройств необходим способ сообщения NT, что они хотят, чтобы исполнялась определенная функция, когда процессор получает прерывание, относящееся к их устройствам. Вдобавок к использованию для работы Диспетчера (планировщика) NT, IRQL dispatch_level также используется для обработки Отложенных Вызовов Процедур (DPC)

Сетевая архитектура Windows NT

Эта глава посвящена рассмотрению сетевой архитектуры ОС Windows NT. Рассматривается соответствие сетевой архитектуры модели OSI, описаны сетевые интерфейсы, сетевые компоненты, их предназначение и взаимосвязи. Чтобы помочь производителям в стандартизации и интегрировании их сетевого программного обеспечения, Международная организация по стандартизации (ISO) определила программную модель пересылки сообщений между компьютерами - модель соединения открытых систем (Open System Interconnection reference model, OSI). Windows NT реализует несколько сетевых API для обеспечения поддержки сетевых приложений и совместимости с промышленными стандартами. Приложения получают доступ к удаленным файлам, используя стандартные Win32-функции ввода/вывода (открытия, закрытия, чтения, записи и т. п) Windows NT обеспечивает множество независимых от сети WNet-функций, которые позволяют работать через провайдеров разных сетей.

Это прикладной программный интерфейс, позволяющий обмениваться запросами ввода/вывода с удаленным компьютером. Именованные каналы обеспечивают надежное двунаправленное взаимодействие между двумя процессами, независимо от того, является ли принимающая сторона локальной или удаленной. Этот API реализует 16 и 32-разрядные сокеты - стандартный сетевой интерфейс, используемый UNIX. Winsock поддерживает надежное, ориентированное на соединение, а также ненадежное, не ориентированное на соединение взаимодействия. Средство удаленного вызова процедур позволяет создавать распределенные приложения, вызывающие функции, реализованные как локально, так и на удаленных компьютерах. Network DDE используется для установления и поддержания сетевых соединений, необходимых для динамического обмена данными между приложениями, выполняющимися на разных компьютерах в сети.

Сервер Windows NT поддерживает удаленный доступ (RAS) для создания временных соединений с системами, которые не находятся в локальной сети, обычно это соединения через телефонные линии. Интерфейс TAPI - множество функций, позволяющих запрограммировать устройства, передающие данные по телефонным линиям, не зависящим от конкретного устройства образом, предоставляя пользователям возможность взаимодействия по телефону. В Windows NT приложения могут использовать интерфейс DLC, обращаясь к библиотеке dlcapi.dll. Cтандартный протокол Internet для обмена управляющей информацией между консолями управления, такими как HP Openview, Novell NMS, IBM NetView, Sun Net Manager, и набором управляемых устройств, такими как маршрутизаторы, мосты, концентраторы. COM API фирмы Microsoft позволяет приложениям состоять из разных компонентов, где каждый компонент является заменяемым самостоятельным модулем.

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

Маршрутизатор многосетевого доступа (Multiple Provider Router, MPR) - это библиотека DLL, предоставляющая приложениям интерфейс API WNet, и определяющая к какой сети следует обратиться, когда приложение использует этот интерфейс для просмотра удаленной файловой системы. Многосетевой UNC (Multiple UNC Provider, MUP) - драйвер, определяющий, к какой сети следует обратиться, когда приложение использует стандартный Win32 API ввода/вывода для открытия удаленных файлов. Windows NT предоставляет для взаимосвязи между транспортными драйверами и TDI-клиентами уровня ядра, такими как эмуляторы сетевых интерфейсов, редиректоры, серверы, единый программный интерфейс, называемый интерфейсом транспортных драйверов (Transport Driver Interface, TDI). Транспортный протокол NetBEUI STREAMS, основанная на UNIX STREAMS, является средой для существующих STREAMS-совместимых транспортных драйверов, которая обеспечивает переносимость этим драйверам в ОС Windows NT из других ОС с незначительными модификациями или вовсе без изменений.

В 1989 г Microsoft и 3Com совместно разработали спецификацию интерфейса взаимодействия между подуровнем MAC канального уровня модели OSI и драйверами протоколов, располагающихся на вышележащих уровнях. Стандарт получил название Network Driver Interface Specification (NDIS - спецификация интерфейса сетевых драйверов). Драйвер протокола верхнего уровня в своей верхней части предоставляет TDI-интерфейс или, возможно, другой интерфейс, необходимый пользователям сети. Обобщенная схема сетевой архитектуры Windows NT Связь между сетевыми программными компонентами

Анализ сетевой архитектуры ОС Windows NT с точки зрения возможностей реализации средств защиты и анализа сетевого трафика Используемые средства построения объединенных сетей и их влияние на уровень расположения средства защиты (согласно модели OSI) От расположения средства защиты относительно иерархии сетевых компонентов, зависит количество проходящих через это средство данных, и, следовательно, возможность контроля и защиты этих данных Рассмотрим особенности реализации средств защиты на различных уровнях сетевой архитектуры ОС Windows NT. Разработка приложений или DLL с функциями защиты - это самая тривиальная и обеспечивающая наименьшую гибкость реализация.

Реализация защиты на уровне системных DLL, предоставляющих приложениям различные сетевые интерфейсы Почти все сетевые сервисы, такие как сервис рабочей станции (LanMan Workstation), сервис сервера (LanMan Server), сервис оповещений (alerter), сервис сообщений (messenger), обозреватель сети (Computer Browser), DHCP client содержатся в одном ЕХЕ-файле с именем services. Один из способов обеспечения прозрачной защиты связан с заменой механизма предоставления функций «родного» API. С этого момента начинается анализ сетевых компонент, исполняющихся в привилегированном режиме - режиме ядра, и являющихся драйверами. Система ввода/вывода Windows NT является расширяемой. Один из методов расширения возможностей системы ввода/вывода - разработка и применение драйверов-фильтров.

Как уже отмечалось ранее, драйвер mup.sys вовлекается при попытке достижения удаленных разделяемых ресурсов, используя UNC имена Драйвер файловой системы обеспечивает пользователям механизм хранения и получения информации, реализуя возможности по созданию, модификации, удалению, разделению файлов и идентификации файлов по их символическим/логическим именам. Транспортные драйверы являются, фактически, стандартными драйверами промежуточного уровня и реализуют в своей верхней части стандартный интерфейс, со-тветствующий TDI спецификации. Реализация защиты с помощью перехвата функций NDIS - библиотеки Разработка NDIS драйверов промежуточного уровня - это один из хорошо документированных механизмов расширения возможностей системы ввода/вывода ОС Windows NT.

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

Драйвер протокола выделяет ресурсы под NDIS-пакеты, заполняет их данными и посылает вниз следующему NDIS-драйверу. Множество функций интерфейса верхнего уровня драйвера сетевой карты и функций интерфейса нижнего уровня драйвера протокола разработаны для поддержки асинхронных операций. Промежуточный NDIS-драйвер обычно экспортирует функции MiniportXxx на своем верхнем уровне и функции ProtocolXxx на своем нижнем уровне Точка входа DriverEntry Возможные обязательные и необязательные функции протокольной части промежуточного драйвера перечислены ниже Возможные обязательные и необязательные функции минипортовой части промежуточного драйвера перечислены ниже Пример реализации драйвера шифрования сетевых пакетов

Передача дискретных данных по линиям связи

Сетевая технология Пропускная способность Волоконно-оптические кабели физическое кодирование аналоговая модуляция цифровое, логическое кодирование ИКМ Канальный уровень Компрессия Коммутация каналов, пакетов, сообщений Виртуальные каналы

Общая характеристика протоколов локальных сетей

Взаимодействия узлов стандартизация локальных сетей метод доступа к среде кадры 10Base-5 Стандарт 10Base-2 Стандарт 10Bаse-T Сети Token Ring Технология FDDI технологии Fast Ethernet 100Base-FX 100Base-TX 100Base-T4 100VG-AnyLAN Gigabit Ethernet

Построение локальных сетей на базе коммутаторов

коммутационная матрица Комбинированные коммутаторы Технология виртуальных сетей Производительность коммутатора фильтрация трафика

Маршрутизация в локальных сетях

маршрутизация таблицы маршрутизации Протоколы маршрутизации функция маршрутизатора Сетевой протокол Dynamic Host Configuration Protocol DNS Структура IP-пакета маски сегмент Протокол RIP Протокол OSPF Протокол IPX TCP-сообщения

Механизм идентификации и аутентификации в ОС Windows NT Основные сведения о процессе Winlogon Протокол взаимодействия процесса Winlogon и библиотеки GINA В ОС Windows NT для идентификации используется имя пользователя, а для подтверждения введенного имени - процедура аутентификации, использующая символьный пароль пользователя. Сетевая аутентификация пользователя осуществляется в процессе его подключения к серверу с целью получения доступа к сетевым ресурсам (например, к сетевому диску) Основные подходы к созданию изолированной программной среды При создании системы защиты информации (СЗИ) от несанкционированного доступа необходимо реализовать следующие функциональные подсистемы Реализация драйвером перехвата файловых операций основана на недокументированном механизме перехвата системных сервисов, описанном в разделе «Реализация защиты на уровне собственного API для ОС Windows NT». Собственный обработчик создания (открытия) файла может, например, проверить права доступа текущего процесса к создаваемому (открываемому) файлу Реализация драйвером функции получения имени обращающегося к ресурсу процесса необходима для создания системы защиты от НСД не ниже 3 класса по классификации Руководящих документов Государственной технической комиссии РФ Вывод сообщений на «синий» экран Процедура распределения IRP_MJ_DEVICE_CONTROL драйвера контроля доступа Модифицированная библиотека Gina

Курс теоретических основ электротехники

Линейная алгебра и аналитическая геометрия