
- •1. Сетевые адаптеры (сетевые карты)
- •1. Сетевая карта Ethernet (Fast Ethernet).
- •2. Сетевая карта Token Ring (High Speed Token Ring)
- •3. Сетевая карта fddi (Fiber Distributed Data Interface)
- •2. Сетевые кабели
- •3. Топология сети
- •4. Одноранговые сети и сети с выделенным файловым сервером.
- •5. Сетевое оборудование
- •6. Сетевые операционные системы.
- •6.8. Операционные системы мейнфреймов (vse/esa, vm/esa, os/390)
- •1. Физический уровень
- •2. Канальный уровень
- •3. Сетевой уровень
- •4. Транспортный уровень.
- •5. Сеансовый уровень.
- •6. Представительский уровень.
- •7. Прикладной уровень.
- •1. Протоколы канального уровня
- •1.1. Протокол Ethernet
- •1.2. Протокол FastEthernet
- •1.3. Протокол 100vg-AnyLan
- •1.4. Протокол GigabitEthernet
- •1.5. Протокол Token Ring (High Speed Token Ring)
- •1.6. Протокол fddi
- •1 .7. Протоколы slip и ppp
- •2. Протоколы сетевого и транспортного уровня
- •2.1. Стек протоколов ipx/spx
- •2.2. Стек протоколов NetBios / smb
- •2.3. Стек протоколов tcp/ip
- •2.3.1. Протокол ip (icmp)
- •2.3.2. Протоколы транспортного уровня tcp и udp.
- •3. Протоколы прикладного уровня http, ftp, smtp, imap, pop3, telnet.
- •4. Система доменных имен dns.
- •Лекция 3. Сетевое оборудование.
- •3.1. Повторитель (концентратор, hub)
- •1QBase*t граней вер'
- •0 Рн 1 pei jj е иные mac- адреса о:00:а2:00:07:вЭ
- •3.2. Мост (bridge)
- •3.3. Коммутатор (switch)
- •Арбитраж шины
- •Адрес назначений -►тэг Арбитраж шины
- •1) Поддержка алгоритма Spanning Tree.
- •2) Трансляция протоколов канального уровня.
- •3) Фильтрация трафика.
- •4) Приоритетная обработка кадров.
- •1) Скорость фильтрации/продвижения кадров (кадров в секунду), пропускная способность (мегабит в секунду), задержка передачи кадра.
- •2) Тип коммутации — "на лету" или с полной буферизацией.
- •3) Размер адресной таблицы.
- •4) Объем буфера кадров.
- •5) Производительность процессоров портов, производительность внутренней шины коммутатора.
- •3.4. Маршрутизатор (router)
- •1) Поддержка нескольких сетевых протоколов. Приоритеты сетевых протоколов.
- •2) Поддержка одновременно нескольких протоколов маршрутизации.
- •3) Поддержка политики маршрутных объявлений.
- •4) Поддержка немаршрутизируемых протоколов.
- •5) Разделение функций построения и использования таблицы маршрутизации.
- •1) Перечень поддерживаемых сетевых протоколов и протоколов машрутизации.
- •2) Перечень поддерживаемых интерфейсов локальных и глобальных сетей.
- •3) Общая производительность маршрутизатора.
- •3.5. Корпоративные модульные концентраторы.
- •3.6. Коммутаторы третьего уровня.
- •3.7. Шлюз (gateway), межсетевой экран (firewall), прокси-сервер, nat.
- •Лекция 4. Расчет корректности конфигурации локальной сети.
- •1) Ограничение на максимальную/минимальную длину кабеля.
- •2) Ограничение на количество компьютеров в одном сегменте сети.
- •3) Ограничение на число повторителей между любыми двумя компьютерами сети.
- •4) Ограничение на время двойного оборота сигнала (Path Delay Value, pdv).
- •5) Ограничение на сокращение межкадрового интервала (Path Variability Value, pvv).
- •4.2. Расчет корректности конфигурации сети Fast Ethernet.
- •412 М полудуплекс 2000 м полный дуплекс
- •136 М тйОм
- •Лекция 5. Windows 2000
- •5.1. Отличительные особенности Win2000
- •Сопоставление Windows 2000 и Unix/Linux систем
- •5.2. Файловая система ntfs
- •5.3. Распределенная файловая система dfs
- •5.4. Динамические диски в Windows 2000
- •5.5. Служба каталогов Active Directory в Windows 2000 (ранее ntds в Win nt 4.0), сценарии входа и профили пользователя.
- •5.6. Службы dns, wins, dhcp
- •5.7. Маршрутизация и удаленный доступ
- •5 .8. Диспетчер служб Интернета iis (Internet Information Services).
- •5.9. Служба Telnet.
- •5.10. Диспетчер службы терминалов
- •5.11. Управление компьютером.
- •5.12. Система безопасности Windows 2000 5.12.1. Пользователи и группы пользователей, права доступа, аудит.
- •5.12.2. Домены в Windows 2000, доверительные отношения между доменами, аутентификация пользователя (протоколы Kerberos и ntlm).
- •5.12.3. Политики безопасности Windows 2000
- •Возможности ос Linux.
- •Оболочки Linux
- •Система X Window
- •Файловая система Linux
- •Система безопасности Linux
- •Краткий перечень наиболее употребимых команд Linux
- •Лекция 7. Технологии глобальных сетей.
- •7.1. Выделенные и коммутируемые каналы - физическая основа построения глобальных сетей.
- •7.1.1. Аналоговые телефонные линии
- •4 Dte (компьютер, маршрутизатор) Интерфейс rs-449 (rs-232c) -прО40Дное окончание
- •7.1.2. Цифровые выделенные линии pdh и sonet/sdh
- •Маршрутизатор, мост, компьютер (dte)
- •7.1.3. Цифровые коммутируемые линии isdn (сети isdn)
- •7.1.4. Асимметричные цифровые абонентские линии adsl
- •7.2. Глобальные сети с коммутацией пакетов.
- •7.2.1. Сети X.25
- •7.2.2. Сети Frame Relay.
- •7.2.3. Сети atm
- •7.2.4. Сети tcp / ip (сеть Internet).
- •Создание таблиц в html
- •Создание форм в html
- •Фреймы в html
- •Использование разделенного рисунка
- •Слои dhtml, каскадные таблицы стилей css.
- •Лекция 9. Язык vbScript
- •Объект Window
- •Объект Document
- •Элементы формы
- •1) Свойства:
- •2) Методы:
- •Создание диалогов пользователя (метод showModalDialog объекта window)
- •Цикл For..Next в vbScript.
- •1. Java — интерпретируемый язык (виртуальная Java-машина)
- •2. Java — объектно-ориентированный язык
- •3. Апплеты Java
- •4. Встраивание апплетов в html-страницы
- •5. Безопасность Java апплетов
- •6. Система безопасности Java
- •7. Интерфейс Java api
- •8. Основные конструкции языка Java
- •8.1. Файлы классов, описание класса
- •8.2. Типы данных, свойства класса, модификаторы доступа свойств и методов, массивы.
- •8.3. Методы класса, методы доступа в классах, конструкторы и деструкторы класса. Объявление метода
- •8.4. Создание экземпляра класса
- •8.5. Наследование, переопределение методов
- •8.6. Создание иерархии объектов.
- •8.7. Использование пакетов
- •8.8. Интерфейсы
- •8.10. Математические функции, дата и время, работа со строками Математические функции:
- •8.11. Блоки try catch finally, обработка исключений.
- •9. Создание приложений на языке Java, запуск приложений
- •10. Создания апплетов на языке Java
- •10.1. Менеджер расположения
- •10.2. Элементы управления в апплете, обработка событий.
- •10.4. Фреймы, меню, диалоговые окна.
- •10.5. Взаимодействие апплета с сервером (пакет java.Net).
- •10.6. Параметры, конфигурирование апплета.
- •Описание функций в JavaScript.
- •Обработка событий в JavaScript.
- •Типы данных, глобальные и локальные переменные в JavaScript.
- •Преобразование типов данных
- •Массивы в JavaScript.
- •Циклы и управляющие операторы.
- •Математические функции, дата и время, работа со строками
- •Использование объекта event в обработчике события
- •Создание пользовательских объектов
- •Настройка встроенных объектов Web-браузера
- •Отображение бегущих строк
- •Создание гиперссылки в виде рисунка, меняющегося при наведении на него указателя мыши
- •Создание анимации с помощью массивов
- •Создание динамических страниц с помощью слоев (dhtml)
- •Зависимость программ на JavaScript от типа браузера
6. Система безопасности Java
Важным достоинством Java-приложений является защищенность. Во-первых, сам язык способствует написанию более защищенных и устойчивых к сбоям программ. Во-вторых, язык имеет встроенную систему безопасности. К особенностям языка, заставляющим писать безопасный код относятся :
1) Строгая ориентация на объекты.
Технология объектно-ориентированного программирования значительно снижает вероятность возникновения ошибок в программах, из-за подхода к объекту как к завершенной автономной единице. Это исключает возникновение таких трудно обнаруживаемых ошибок, как ошибки, возникающие при взаимодействии двух по отдельности нормально работающих процедур, но ссылающихся на одну и ту же область памяти, в результате чего последствия их совместной работы не предсказуемы. Чем меньше таких ошибок - тем устойчивее работа программы и меньше возможности проникновения в систему из-за сбоев в ней.
2) Строгая типизация и безопасное преобразование типов.
В целях безопасности преобразования типов проверяются как статически, так и динамически; это гарантирует то, что объявленный на этапе компиляции тип объекта будет точно соответствовать типу объекта во время выполнения, даже если по отношению к этому объекту выполнялись операции преобразования типов. Контроль за преобразованием типов препятствует преднамеренной подмене типов данных.
3) Отсутствие указателей.
Все элементы данных всегда имеют имя. Каждая простая структура данных или фрагмент кода имеют идентификатор, позволяющий полностью контролировать их. Нельзя сослаться на область памяти (прочитать/записать), не относящейся к переменным Java-программы. Если бы указатели существовали
- это дало бы возможность писать (читать) в любую область памяти компьютера, несанкционированно подменять (получать) данные, выполнять свой код.
4) Позднее распределение памяти и связывание.
Позднее связывание гарантирует, что точное местоположение ресурсов на этапе выполнения происходит в самый последний момент. Позднее связывание представляет серьезное препятствие на пути внешних атак благодаря специальным соглашениям, касающимся выделения памяти для этих ресурсов.
5) Автоматическая сборка мусора и неявное управление памятью.
В языках С и C++ программист явным образом распределяет память, освобождает ее и следит за всеми указателями на выделенную память. Зачастую это усложняет программы и является главным источником ошибок и уязвимости к атакам типа "переполнение буфера" (злоумышленник, передав программе слишком большой, не предусмотренный программистом, параметр может вызвать крушение системы или выполнение своего кода), нелегальное копирование, захват полномочий. В языке Java программист не должен явно управлять памятью. Выделение и освобождение памяти выполняются автоматически и корректно. При освобождении неиспользуемой памяти применяется механизм сборки мусора (дефрагментация памяти).
6) Классы и методы final.
Классы и методы можно объявлять как final, запрещая тем самым создание подклассов и переопределение методов. Такое объявление препятствует злонамеренному изменению проверенного кода.
7) Проверка имен.
Классы Java описываются внутри пакетов. Имена классов связаны с названиями пакетов. Пакеты гарантируют, что код, полученный из сети, отличается от локального кода. Принятая библиотека классов не может по ошибке или преднамеренно заменить локальные библиотеки проверенных классов или перехватить их права, даже если эти библиотеки имеют одинаковые имена. Это также защищает от непроверенных, случайных взаимодействий локального и принятого классов.
8) Синтаксические конструкции для защищенных потоковых структур данных.
Java является многопотоковым языком и обеспечивает защищенный потоковый доступ к структурам данных и объектам.
9) Уникальные манипуляторы для объектов.
С каждым объектом в языке Java связан уникальный хэш-код (hashcode). Это означает, что в любой момент возможен мониторинг состояния Java-программы.
10) Безопасность на уровне компиляции Java-кода.
Во время компиляции анализируются все механизмы защиты, существующие в синтаксисе языка Java, включая проверку согласованности объявлений private и public, правильности типов и инициализации всех переменных в соответствии с предопределенными значениями.
Как уже говорилось, помимо особенностей языка Java, "заставляющих" писать безопасный код, в Java имеется и встроенная система безопасности, которая состоит из следующих элементов:
ClassLoader (загрузчик классов)
Verifier (верификатор)
SecurityManager (менеджер безопасности)
Эта модель известна под названием sandbox (песочница). Все Java-приложения, загруженные из сети, выполняются "в песочнице", т.е. не имеют полного доступа к ресурсам компьютера (см. "Безопасность Java-апплетов") и контролируются системой безопасности Java.
Загрузчик классов определяет, когда и каким образом классы могут быть добавлены в работающую систему и защищает целостность системы, например запрещает загрузку поддельного менеджера безопасности. Он выполняют две основные функции:
собственно загрузку байт-кода (с локального диска, по сети, из области памяти)
определение пространства имен (namespaces) для различных классов и способов их взаимодействия (отделяя, к примеру, локальные классы от загруженных по сети).
Есть два вида загрузчиков - первичный (primordial) и реализованный в виде объекта (Class Loader Object). Первичный существует в единственном экземпляре и является составной частью виртуальной машины. Он занимается загрузкой доверенных классов (обычно находящихся на локальном диске). Загрузчик второго типа представляет собой обычный Java-объект. С его помощью можно осуществить загрузку класса по сети либо динамическое создание класса программой. Алгоритм действий загрузчика обычно выглядит так:
Определить, не был ли загружен этот класс раньше, и, если да, вернуть его.
Проконсультироваться с первичным загрузчиком на предмет существования внутреннего класса с этим именем (во избежание подмены внутренних классов Java классами загружаемыми по сети).
Запросить у менеджера безопасности разрешение на загрузку данного класса.
Считать файл класса в виде массива байтов - по сети, с диска и т. п.
Создать экземпляр класса Class.
Загрузить другие классы, используемые данным.
Передать класс верификатору на проверку.
Второй рубеж обороны - верификатор, проверяющий загружаемый байт-код на корректность, так как у нас нет никакой гарантии, что загружаемый код был получен в результате работы компилятора Java, а не подправлен вручную или не сгенерирован специальным «враждебным» компилятором. После того как код прошел верификацию, гарантируется, что файл класса имеет корректный формат, параметры всех операций имеют правильный тип, в коде не происходит некорректных преобразований типов (например, целого числа в указатель), нет нарушений доступа, нет переполнения стека и т. п. Таким образом, проверяется все, что только можно проверить до начала исполнения программы. Верификатор встроен в виртуальную машину и недоступен из Java-программы.
Класс SecurityManager (менеджер безопасности) отвечает за политику безопасности приложения. Он позволяет приложению перед выполнением потенциально опасной операции выяснить, выполняется ли она классом, загруженным первичным загрузчиком, либо с помощью некоторого ClassLoader по сети (к последнему доверия должно быть гораздо меньше). Далее менеджер безопасности может определить, разрешить ли эту операцию или запретить. Контролируется работа с файлами (создание, удаление, чтение, запись), запуск программ, подключение библиотек DLL, создание входящих и исходящих сетевых соединений, подмена менеджера безопасности и загрузчика классов, обращение к системным ресурсам, к ресурсам виртуальной машины, защита потоков и групп потоков друг от друга и т. д. Для каждого кода (апплета, Java-программы) имеется возможность установить права доступ и указать, что код, обладающий определенными правами доступа, имеет право на определенные действия (например, создание сетевого соединения с другой машиной). Никакой Java-код не считается безопасным по умолчанию. Локальный код может быть подвержен тем же проверкам, что и код апплета, хотя, конечно, никто не мешает ослабить этот контроль с помощью настроек. В менеджере безопасности имеется также возможность цифровой подписи классов (аналог сертификатов в ActiveX). На классы подписанные солидной организацией можно не накладывать стандартные ограничения. В целом, система безопасности (версии JDK 1.1 и 1.2.) представлены ниже: