Обеспечение доверия и безопасности в инфокоммуникациорнных сетях. 1. Технология dns
Скачать 1.52 Mb.
|
Протокол преобразования адресов ARPВ сети Интернет сетевое взаимодействие осуществляется на основе IP-адресов. В сети данные передаются с помощью технологий канального уровня, например, Ethernet. Сетевые устройства канального уровня – коммутаторы, используют физические MAC-адреса. Для получения МАС-адреса сетевого устройства в локальной сети по известному IP-адресу используется протокол преобразования адресов (ARP-Address Resolution Protocol). Протокол ARP работает в режиме запрос-ответ. На каждом сетевом устройстве, например, сетевом адаптере хоста или коммутаторе поддерживается собственная ARP-таблица, в которой в ходе функционирования сети накапливается информация о соответствии между IP-адресами и МАС-адресами интерфейсов других устройств данной сети. Первоначально, при включении компьютера, маршрутизатора или коммутатора в сеть их ARP-таблицы пусты. Различные сетевые операционные системы по-разному используют протокол ARP для изменения информации в своих ARP таблицах. Атаки, связанные с уязвимостями протокола ARP являются внутрисегментными и поэтому представляют угрозу для пользователя только в случае нахождения атакующего внутри сегмента сети. Защиты от атак на протокол ARP в общем случае не существует, т.к. используемые уязвимости являются особенностями работы технологии Ethernet (широковещательность). Однако можно выполнить следующее: нарушителя нужно искать внутри сетевого сегмента атакуемого объекта; полезно вести таблицу соответствия МАС-адресов и IP-адресов, которую следует периодически обновлять; использовать статические записи в таблице ARP хотя бы для наиболее важных узлов сети. 25 Транспортные протоколы. Протокол TCP Протокол управления передачей TCPПротоколы транспортного уровня решают проблему правильной последовательности и гарантированной доставки сообщений. На рисунке 2.11.1 представлены некоторые протоколы транспортного уровня. Основными из них являются TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Взаимодействие прикладных программ, использующих транспортные услуги протокола TCP или UDP, строится, согласно модели, "клиент-сервер", которая подразумевает, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Связь программы-клиента и сервера идентифицируется пятеркой: Используемый транспортный протокол TCP или UDP; IP-адрес сервера; Номер порта сервера; IP-адрес клиента; Номер порта клиента. e Рисунок 2.11.1 – Различные протоколы транспортного уровня 2.11.1. Основные функции протокола TCP Основная задача протокола TCP – обеспечение надежной передачи данных в сети. Его транспортный адрес в заголовке IP-сегмента равен 6. Год создания – 1981 (RFC 793). Основные функции протокола TCP: Реализует взаимодействие в режиме с установлением логического соединения; Обеспечивает двунаправленную дуплексную связь; Организует потоковый тип передачи данных; Дает возможность пересылки части данных, как «экстренных»; Для идентификации взаимодействующих сторон на транспортном уровне использует 16-битовые "номера портов"; Реализует принцип "скользящего окна" (sliding window) для повышения скорости передачи; Поддерживает механизмы, обеспечивающие надежную передачу данных. На рисунке 2.11.2 представлен формат заголовка TCP-пакета.
Рисунок 2.11.2 – Формат заголовка TCP-пакета Рассмотрим поля заголовка TCP-пакета. Source Port, Destination Port (Порт источника и порт приемника) – 16-битовые поля, содержащие номера портов, соответственно, источника и приёмника TCP-пакета. В таблице 2.11.1 дан список номеров портов для некоторых приложений. Sequence Number (Номер в последовательности) – 32-битовое поле, содержимое которого определяет положение данных TCP-пакета внутри исходящего потока данных, существующего в рамках текущего логического соединения. В момент установления логического соединения каждый из двух абонентов генерирует начальный номер для первого пакета в последовательности, основное требование к которому - не повторяться в промежутке времени, в течение которого TCP-пакет может находиться в сети. Абоненты обмениваются этими начальными номерами и подтверждают их получение. Во время отправления TCP-пакетов с данными, поле "номер в последовательности" содержит сумму начального номера и количества байт ранее переданных данных. Acknowledgment Number (Номер подтверждения) – 32-битовое поле, содержимое которого определяет количество принятых данных из входящего потока к TCP-модулю, формирующему TCP-пакет. Data Offset (Смещение данных) – 4-битовое поле, содержащее длину заголовка TCP-пакета в 32-битовых словах и используемое для определения начала расположения данных в TCP-пакете. Reserved (Зарезервировано) – 6 бит, выделенных для дальнейшего использования. В настоящее время последние два бита уже используются, как управляющие биты (флаги). Control Bits (Управляющие биты/флаги) – поле из 6 битовых флагов. Флаг URG – установленное в 1 значение, которого означает, что TCP-пакет содержит важные данные. Обработке таких данных отдаётся наивысший приоритет. Флаг ACK – установленное в 1 значение означает, что TCP-пакет содержит в поле «номер подтверждения» верные данные. Флаг PSH – установленное в 1 значение означает, что данные, содержащиеся в TCP-пакете, должны быть немедленно переданы прикладной программе, для которой они адресованы. Подтверждение для TCP-пакета, содержащего единичное значение во флаге PSH, означает, что и все предыдущие TCP-пакеты достигли адресата. Флаг RST – устанавливается в 1 в TCP-пакете, отправляемом в ответ на получение неверного TCP-пакета. Также может означать запрос на переустановление логического соединения. Флаг SYN – установленное в 1 значение означает, что TCP-пакет представляет собой запрос на установление логического соединения. Получение пакета с установленным флагом SYN должно быть подтверждено принимающей стороной. Флаг FIN – установленное в 1 значение означает, что TCP-пакет представляет собой запрос на закрытие логического соединения и является признаком конца потока данных, передаваемых в этом направлении. Получение пакета с установленным флагом FIN должно быть подтверждено принимающей стороной. Window (Размер окна) – 16-битовое поле, содержащее количество байт информации, которое может принять в свои внутренние буфера TCP-модуль, отправляющий партнеру данный TCP-пакет. Данное поле используется принимающим поток данных TCP-модулем для управления интенсивностью этого потока. Установив значение поля в 0, можно полностью остановить передачу данных, которая будет возобновлена, когда размер окна увеличится. Checksum (Контрольная сумма) – 16-битовое поле, содержащее контрольную сумму, подсчитанную для ТСР-заголовка, данных пакета и псевдозаголовка. Псевдозаголовок включает в себя ряд полей IP-заголовка и имеет показанную на рисунке 2.11.3 структуру. Urgent Pointer (Указатель) – 16-битовое поле, содержащее указатель (в виде смещения) на первый байт в теле TCP-пакета, начинающий последовательность важных (urgent) данных. Options (Опции) – последовательность полей произвольной длины, описывающих необязательные данные заголовка; Padding (Выравнивание) – последовательность нулей для дополнения строки до длины, равной 32 битам; Data (данные) – передаваемые данные.
Рисунок 2.11.3 – Схема псевдозаголовка TCP-пакета Протокол TCP устанавливает обязательное получение подтверждения от принимающей стороны о правильности полученных данных. В протоколе TCP используется принцип "скользящего окна" (sliding window), который заключается в том, что каждая сторона может отправлять партнеру максимум столько байт, сколько партнер указал в поле "размер окна" заголовка TCP-пакета, подтверждающего получение предыдущих данных. Принцип "скользящего окна" обеспечивает "опережающую" посылку данных с "отложенным" их подтверждением. Следует отметить недостаток этого механизма: если в течение некоторого времени не будет получено "отсроченное" подтверждение ранее отправленного пакета, то отправляющий TCP-модуль будет вынужден повторить посылку всех TCP-пакетов, начиная с неподтвержденного. Размер окна, как правило, определяется объемом свободного места в буферах, принимающего TCP-модуля. 2.11.2. TCP порты Для доставки TCP-пакета конкретному приложению, используется уникальный идентификатор - номер порта, 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет. TCP порты используют определенный порт программы для доставки данных, передаваемых с помощью протокола управления передачей (TCP). TCP порты являются более сложными и работают иначе, чем порты UDP. В то время как порт UDP работает как одиночная очередь сообщений и как точка входа для UDP-соединения, точкой входа для всех соединений TCP является уникальное соединение. Каждое соединение TCP однозначно идентифицируется двумя точками входа. TCP программы используют зарезервированные номера портов, как показано в таблице 2.11.1. Таблица 2.11.1 – Номера некоторых портов TCP
Каждый отдельный порт сервера TCP может предложить общий доступ к нескольким соединениям, потому что все TCP соединения идентифицируются двумя значениями: IP-адресом и TCP портом. Все номера портов TCP, которые меньше, чем 1024 – зарезервированы и зарегистрированы в Internet Assigned Numbers Authority (IANA). Номера портов UDP и TCP не пересекаются. 26 Транспортные протоколы. Протокол UDP |