В Интернетe применяют два основных протокола транспортного уровня: TCP, ориентированный на создание соединений, и UDP (User Datagram Protocol – пользовательский дейтаграммный протокол) - без установления соединения.
Протокол UDP позволяет приложениям отправлять инкапсулированные IP-дейтаграммы без установления соединений. Он практически представляет собой протокол IP с добавлением небольшого заголовка. Его отличие от использования IP заключается в указании портов источника и приемника.
Протокол TCP взаимодействует через межуровневые интерфейсы с ниже лежащим протоколом IP и выше лежащими протоколами прикладного уровня или приложениями. Его задача заключается в передаче данных между любыми прикладными процессами, выполняющимися на любых узлах сети. Т.е. доставленный в компьютер-получатель средствами IP-протокола пакет должен быть направлен конкретному процессу-получателю.
Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называют портами. Т.о. адресом назначения, который используется протоколом TCP, является идентификатор (номер) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети, который имеет название сокет (socket).
В 1995 году корпорация Netscape Communications представила систему безопасности под названием SSL (Secure Sockets Layer — протокол защищенных сокетов). Протокол SSL используется очень широко (в том числе Internet Explorer).
SSL создает защищенное соединение между двумя сокетами, позволяющее:По сути дела, между прикладным и транспортным уровнями появляется новый уровень, принимающий запросы от браузера и отсылающий их по TCP для передачи серверу. После установки защищенного соединения основная задача SSL заключается в поддержке сжатия и шифрования. Если поверх SSL используется HTTP, этот вариант называется HTTPS (Secure HTTP — защищенный HTTP) несмотря на то, что это обычный протокол HTTP.
Область применения SSL не ограничивается исключительно веб-браузерами, но это наиболее распространенное применение. Существует несколько версий протокола SSL. Третья версия протокола SSL поддерживает множество разных алгоритмов и может обладать разными функциями, среди которых сжатие, тот или иной алгоритм шифрования, а также некоторые компоненты, связанные с ограничениями экспорта в криптографии. SSL состоит из двух субпротоколов, один из которых предназначен для установления защищенного соединения, а второй — для использования этого соединения. SSL поддерживает разнообразные криптографические алгоритмы. Наиболее сильный из них использует для шифрации тройной стандарт шифрования DES (Data Encryption Standard – стандарт шифрования данных) с тремя отдельными ключами и функция вычисления профиля сообщения SHA-1 (Secure Hash Algorithm – надежный алгоритм хэширования) для обеспечения целостности данных. Такое сочетание алгоритмов работает медленно, поэтому применяется в основном в приложениях, в которых требуется высокий уровень защиты. В обычных приложениях для шифрации применяется 128-разрядный ключ, а для аутентификации — алгоритм MD5 (Message Digest 5 – профиль сообщения 5). В качестве исходных данных алгоритму RC4 передается 128-разрядный ключ, который разрастается во много раз при работе алгоритма. Это внутреннее число используется для создания ключевого потока. Последний суммируется по модулю 2 с открытым текстом, в результате чего получается обычный потоковый шифр.
Для реальной передачи данных используется второй субпротокол. Сообщения, поступающие от браузера, разбиваются на единицы данных размером до 16 Кбайт. Если сжатие включено, каждая из этих единиц независимо сжимается. Затем по двум нонсам вычисляется закрытый ключ, подготовительный ключ объединяется со сжатым текстом и результат хэшируется по согласованному алгоритму (чаще всего MD5). Хэш добавляется к каждому фрагменту в виде MAC (Message Authetication Code — код аутентификации сообщения). Этот сжатый фрагмент вместе с MAC кодируется согласованным алгоритмом с симметричным ключом (обычно это суммирование по модулю 2 с ключевым потоком RC4). Наконец, присоединяется заголовок фрагмента, и фрагмент передается по ТСР-соединению.
Назначение номеров портов прикладным процессам осуществляется либо централизованно, если эти процессы представляют собой популярные общедоступные службы (21 –
служба удаленного доступа к файлам FTP, 23 – служба удаленного управления Telnet), либо локально для тех служб, которые еще не стали распространенными,
чтобы закрепить за ними зарезервированные номера.
Локальное присвоение номера порта заключается в том, что разработчик некоторого приложения просто связывает с ним любой произвольно выбранный числовой
идентификатор, обращая внимание на то, чтобы он не входил в число зарезервированных. В дальнейшем все удаленные запросы к этому приложению от других приложений
должны адресоваться с указанием назначенного ему номера порта.
Номера портов делят на три категории:
Ниже приведены некоторые соответствия портов и служб/протоколов:
Сетевые порты могут дать важнейшую информацию о приложениях, которые обращаются к компьютерам по сети. Зная приложения, которые используют сеть, и соответствующие сетевые порты, можно составить точные правила для брандмауэра и настроить хост-компьютеры таким образом, чтобы они пропускали только полезный трафик.
Задача администратора состоит в том, чтобы выявить недостатки в функционировании сети и устранить их. Самый распространенный способ – сканирование портов — процесс обнаружения прослушивающих приложений путем активного опроса сетевых портов компьютера или другого сетевого устройства. Результаты сканирования и сравнения сетевых отчетов с результатами хост-опроса портов позволяет составить ясную картину трафика, проходящего через сеть. Например, сканируя диапазон внешних IP-адресов, можно собрать ценные данные о взломщике, проникшем из Интернет. Поэтому следует чаще сканировать сеть и закрыть все необязательные сетевые порты. Построив профиль сети и разместив инструменты для распознавания сетевого трафика, можно более эффективно обнаруживать взломщиков, анализируя генерируемый ими сетевой трафик. Можно значительно уменьшить вероятность проникновения в систему, если отключить сетевую активность приложений (служб) или заблокировать неиспользуемые порты компьютера.
Каждый открытый порт — потенциальная лазейка для взломщиков, которые используют пробелы в хост-приложении или тайком обращаются к приложению с именем и паролем другого пользователя (либо применяют другой законный метод аутентификации). Можно обнаружить открытые порты с помощью стандартных приложений ОС. Например, в ОС Windows можно воспользоваться утилитой Netstat. Она служит для отображения активных подключений TCP, портов, прослушиваемых компьютером, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6). Запущенная без параметров, команда netstat отображает подключения TCP. Результатом сканирования c параметром -an является список с открытыми портами компьютера и название служб/протоколов, работающих на этом порту. Windows XP содержит ряд утилит для диагностики, отслеживания производительности и восстановления сетевых подключений. Большая часть из них включена в ее состав, некоторые хранятся в наборе Windows Support Tools, который можно установить из папки \Support\ Tools на диске Windows XP.
Сканировать можно с помощью специальных программ, называемых сетевыми сканерами.
Сканер локальной сети NetView - программа-заменитель Сетевого Окружения Windows - ведет лог со списком машин, адресами и описаниями и регулярно проверяет его на наличие выключенных машин, ведет лог активных сетевых соединений (имеет функцию черного и белого списков). Имеет быстрый поисковик файлов в расшаренных (распределенных) ресурсах, сканер портов и диапазона IP-адресов, встроенный PortListener - монитор, отслеживающий соединения на заданные порты (полезен для обнаружения IP-адресов, с которых проводятся попытки установить соединения на троянские порты или сканирования портов), а также возможность посылать сообщения по сети. Может составлять посегментную карту сети (через traceroute), а также визуализировать сеть (картинки для компьютеров, линии, фоновая текстура). Позволяет открывать компьютеры как по имени, так и по IP-адресам.
Сканер портов Nmap – утилита для обследования сетей и аудита защиты. В ней поддерживается сканирование на основе запроса отклика (определение жизнеспособности узлов), много методов сканирования портов (определение сервисов, доступных на узлах), определение версий (какие приложения/службы работают на порте) и анализ трафика TCP/IP (fingerprinting, идентификация типа устройства или ОС узла). Имеются гибкие возможности спецификации целевых устройств и портов, сканирование на предмет ловушек и замаскированных угроз, сканирование SunRPC и многое другое. Для большинства платформ Unix и Windows поддерживаются режимы командной строки и графического интерфейса.
Монитор портов TCPView - показывает все процессы, использующие интернет-соединения. Запустив TCPView, можно узнать, какой порт открыт и какое приложение его использует, а при необходимости и немедленно разорвать соединение.
Комплекс утилит IP-Tools представляет собой набор программ (19 утилит) для сетевого мониторинга: сканеры, мониторы, трассировщик и другие программы. Допустимо использовать сразу несколько утилит, причем сканеры могут работать как с отдельным хостом, так и по диапазону IP-адресов или по списку адресов. Всю информацию, выдаваемую программой, можно записывать в текстовые файлы (а некоторую - и в HTML-файлы).
Рисунок 1. Пример вывода программы nmap
nmap –p1-65535 IP-адрес_компьютера
|
nmap –sV IP-адрес_компьютера
|
nmap –O IP-адрес_контроллера_домена
|
nmap –f адрес_контролера_домена
|
nmap –packet_trace IP-адрес_компьютера.
|
На главную | Методические рекомендации для студентов |