Главная » Рефераты    
рефераты Разделы рефераты
рефераты
рефератыГлавная
рефератыЕстествознание
рефератыУголовное право уголовный процесс
рефератыТрудовое право
рефератыЖурналистика
рефератыХимия
рефератыГеография
рефератыИностранные языки
рефератыРазное
рефератыИностранные языки
рефератыКибернетика
рефератыКоммуникации и связь
рефератыОккультизм и уфология
рефератыПолиграфия
рефератыРиторика
рефератыТеплотехника
рефератыТехнология
рефератыТовароведение
рефератыАрхитектура
рефератыАстрология
рефератыАстрономия
рефератыЭргономика
рефератыКультурология
рефератыЛитература языковедение
рефератыМаркетинг товароведение реклама
рефератыКраеведение и этнография
рефератыКулинария и продукты питания
рефераты
рефераты Информация рефераты
рефераты
рефераты

Доклад: TCP/ip

Доклад: TCP/ip

1.2 Обзор внутреннего устройства TCP/IP

Этот раздел содержит краткое описание TCP/IP в объеме, достаточном для

последующего обсуждения проблем безопасности, связанных с Интернетом.

[Com91a],[Com91b],[Hunt92] и [Bel89] содержат гораздо более подробное

описание; читатели, которые хотят получить более глубокое представление,

должны обратиться к этим источникам.

Отчасти популярность стека протоколов TCP/IP объясняется возможностью его

реализации на базе большого числа разнообразных каналов и протоколов

канального уровня, таких как T1 и Х.25, Ethernet и линии RS-232. Большинство

организаций использует в своих ЛВС Ethernet для объединения хостов и

клиентских систем, а затем присоединяет эти сети с помощью T1 к региональной

сети (например, региональной магистральной сети TCP/IP), которая соединяет в

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

Как правило, организации имеют одно соединение с Интернетом, но большие

организации могут иметь два и более соединений. Скорости модемов

увеличиваются по мере появления новых коммуникационных стандартов, поэтому

версии TCP/IP, которые работают в среде коммутируемых телефонных каналов,

становятся все более популярными. Многие организации и просто отдельные люди

используют PPP (Point-to-Point Protocol) и SLIP (Serial Line IP) для

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

телефонные каналы.

Если говорить строго, то TCP/IP - это стек протоколов, включающий TCP, IP,

UDP (User Datagram Protocol), ICMP (Internet Control Message Protocol), и ряд

других протоколов. Стек протоколов TCP/IP не соответствует модели

взаимодействия открытых систем (ВОС), и его структура показана на рисунке 1.1

Доклад: TCP/ip

1.2 IP

Уровень IP получает пакеты, доставляемые нижними уровнями, например драйвером

интерфейса с ЛВС, и передает их лежащим выше уровням TCP или UDP. И наоборот,

IP передает пакеты, полученные от уровней TCP и UDP к нижележащим уровням.

Пакеты IP являются дейтаграмами с негарантированной доставкой, потому что IP

ничего не делает для обеспечения гарантии доставки пакетов IP по порядку и

без ошибок. Пакеты IP содержат адрес хоста, с которого был послан пакет,

называемый адресом отправителя, и адрес хоста, который должен получить пакет,

называемый адресом получателя.

Высокоуровневые сервисы TCP и UDP при приеме пакета предполагают, что адрес

отправителя, указанный в пакете, является истинным. Другими словами, адрес IP

является основой для аутентификации во многих сервисах; сервисы предполагают,

что пакет был послан от существующего хоста, и именно от того хоста, чей

адрес указан в пакете. IP имеет опцию, называемую опция маршрутизации

источника, которая может быть использована для для указания точного прямого и

обратного пути между отправителем и получателем. Этот путь может

задействовать для передачи пакета маршрутизаторы или хосты, обычно не

использующиеся для передачи пакетов к данному хосту-получателю. Для некоторых

сервисов TCP и UDP пакет IP c такой опцией кажется пришедшим от последней

системы в указанном пути, а не от своего истинного отправителя. Эта опция

появилась в протоколе для его тестирования, но [Bel89] отмечает, что

маршрутизация источника может использоваться для обмана систем с целью

установления соединения с ними тех хостов, которым запрещено с ними

соединяться. Поэтому, то, что ряд сервисов доверяют указанному IP-адресу

отправителя и полагаются на него при аутентификации, очень опасно и может

привести к проникновению в систему.

1.2.2 TCP

Если IP-пакеты содержат инкапсулированные пакеты TCP, программы IP передадут

их вверх уровню TCP. TCP последовательно нумерует все пакеты и выполняет

исправление ошибок, и реализует, таким образом, виртуальные соединения между

хостами. Пакеты TCP содержат последовательные номера и подтверждения о приеме

пакетов, поэтому пакеты, принятые не в порядке передачи, могут быть

переупорядочены, а испорченные пакеты повторно посланы.

TCP передает полученную информацию приложениям верхнего уровня, например

клиенту или серверу TELNETа. Приложения, в свою очередь, передают информацию

обратно уровню TCP, который передает ее ниже уровню IP, после чего она

попадает к драйверам устройств, в физическую среду и по ней передается до

хоста-получателя. Сервисы с установлением соединения, такие как TELNET, FTP,

rlogin, X Windows и SMTP требуют надежности и поэтому используют TCP. DNS

использует TCP только в ряде случаев( для передачи и приема баз данных

доменных имен), а для передачи информации об отдельных хостах использует UDP

.

1.2.3 UDP

Как показано на рисунке 1.1, UDP взаимодействует с прикладными программами на

том же уровне, что и TCP. Тем не менее, он не выполняет функции исправления

ошибок или повторной передачи потерянных пакетов. Поэтому UDP не используется

в сервисах с установлением соединения, которым требуется создание

виртуального канала. Он применяется в сервисах типа запрос-ответ, таких как

NFS, где число сообщений в ходе взаимодействия гораздо меньше, чем в TELNET и

FTP. В число сервисов, использующих UDP, входят сервисы на базе RPC, такие

как NIS и NFS, NTP(протокол сетевого времени) и DNS(также DNS использует

TCP).

Пакеты UDP гораздо проще подделать, чем пакеты TCP, так как нет этапа

установления соединения (рукопожатия).[Ches94]. Поэтому с использованием

сервисов на базе UDP сопряжен больший риск.

1.2.4 ICMP

ICMP (Протокол межсетевых управляющих сообщений) находится на том же уровне,

что и IP; его назначение - передавать информацию, требуемую для управления

траффиком IP. В-основном, он используется для предоставления информации о

путях к хостам-получателям. Сообщения ICMP redirect информируют хосты о

существовании боле коротких маршрутов к другим системам, а сообщения ICMP

unreachable указывает на наличие проблем с нахождением пути к получателю

пакета. Кроме того, ICMP может помочь корректно завершить соединение TCP,

если путь стал недоступен. PING является широко распространенным сервисом на

базе ICMP.

[Bel89] рассматривает две проблемы с ICMP: старые версии Unix могут разорвать

все соединения между хостами, даже если только одно из них столкнулось с

проблемами. Кроме того, сообщения о перенаправлении пути ICMP могут быть

использованы для обмана маршрутизаторов и хостов с целью заставить их

поверить в то, что хост злоумышленника является маршрутизатором и пакеты

лучше отправлять через него. Это, в свою очередь, может привести к тому, что

атакующий получит доступ к системам, которым не разрешено иметь соединения с

машиной атакующего или его сетью.

1.2.5 Структура портов TCP и UDP

Сервисы TCP и UDP используются с помощью схемы клиент-сервер. Например,

процесс сервера TELNET вначале находится в состоянии ожидания запроса

установления соединения. В какой-нибудь момент времени пользователь запускает

процесс клиента TELNET, который инициирует соединение с сервером TELNET.

Клиент посылает данные серверу, тот читает их, и посылает обратно клиенту

ответ. Клиент читает ответ и сообщает о нем пользователю. Поэтому, соединение

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

записи.

Как много одновременных соединений TELNET может быть установлено между

системами? Соединение TCP или UDP уникальным образом идентифицируется с

помощью четырех полей, присутствующих в каждом соединении:

  • IP-адрес источника - адрес системы, которая послала пакет
  • IP-адрес получателя - адрес системы, которая принимает пакет

  • порт отправителя - порт соединения в системе-отправителе

  • порт получателя - порт соединения в системе-получателе

Порт - это программное понятие, которое используется клиентом или сервером

для посылки или приема сообщений; порт идентифицируется 16-битвым числом.

Серверные процессы обычно ассоциируются с фиксированным числом, например

числом 25 для SMTP или 6000 для X Windows; номер порта является известным,

так как он требуется, помимо IP-адреса получателя, при установлении

соединения с конкретным хостом и сервисом. Клиентские процессы, с другой

стороны, запрашивают номер порта у операционной системы в начале работы; и

номер порта является случайным, хотя в некоторых случаях он является

следующим в списке свободных номеров портов.

Для иллюстрации того, как используются порты для посылки и приема сообщений,

рассмотрим протокол TELNET. Сервер TELNET слушает приходящие сообщения на

порту 23, и сам посылает сообщения на порт 23. Клиент TELNET, на той же или

другой системе, сначала запрашивает неиспользуемый номер порта у ОС, а затем

использует его при посылке и приеме сообщений. Он должен указывать это номер

порта, например 3097, в пакетах, предназначенных для сервера TELNET, чтобы

этот сервер при ответе на сообщение клиента мог поместить это номер в

посылаемые им TCP-пакеты. Хост клиента по приему сообщения должен посмотреть

номер порта в сообщении и решить, какой из клиентов TELNET должен принять это

сообщение. Этот процесс показан на рисунке 1.2

Доклад: TCP/ip

Рисунок 1.2 Взаимодействие при TELNET

Существует достаточно распространенное правило, согласно которому только

привилегированные процессы сервера, то есть те процессы, которые работают с

привилегиями суперпользователя UNIX, могут использовать порты с номерами

меньше, чем 1024( так называемые привилегированные порты). Сервера в-основном

используют порты с номерами меньше, чем 1024, а клиенты, как правило, должны

запрашивать непривилегированные порты у ОС. Хотя это правило и не является

обязательным для исполнения и не требуется спецификацией протоколов TCP/IP,

системы на основе BSD соблюдают его.

В результате всего этого брандмауэры могут блокировать или фильтровать доступ

к службам на основе проверки номеров портов в TCP- и UDP-пакетах и

последующего пропускания через себя или удаления пакета на основе политики,

указывающей доступ к каким службам разрешен или запрещен. (более детально это

описано в главе 2).

Не все серверы и клиенты TCP и UDP используют порты таким простым способом,

как TELNET, но в целом, процедура, описанная здесь, полезна в контексте

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

понятия суперпользователя UNIX, но все-таки используют порты описанным выше

способом (хотя нет стандарта, требующего это).

рефераты Рекомендуем рефератырефераты

     
Рефераты @2011