Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Yazov_ITKS

.pdf
Скачиваний:
351
Добавлен:
31.05.2015
Размер:
7.37 Mб
Скачать

отделения), либо IMAP (англ. Internet Message Access Protocol - протокол прикладного уровня для доступа к электронной почте), либо патентованные системы (такие как

Microsoft Exchange и Lotus Notes/Domino) для доступа к учетной записи своего почтового ящика на сервере.

Электронная почта поставляется почтовым клиентом (MUA, mail user agent — пользовательский почтовый агент) на почтовый сервер (MSA, mail submission agent —

агент передачи электронной почты) с помощью SMTP по TCP-порту 587. Оттуда MSA доставляет почту своим агентам пересылки сообщений (MTA, mail transfer agent). Часто эти два агента являются просто различными образцами одного и того же программного обеспечения, запущенного с разными параметрами на одном устройстве. Локальная обработка может быть проведена как на отдельной машине, так и разделена между различными устройствами. В первом случае вовлеченные процессы имеют общий доступ к файлам, во втором случае SMTP используется для пересылки сообщения внутренне, причем каждый хост настроен на использование следующего устройства в качестве промежуточного хоста. Граничный MTA использует систему доменных имен (см. предыдущий раздел) для поиска записей почтового обменника (mail exchanger — MX) домена получателя (часть адреса, находящаяся справа от символа @). Затем MTA подключается к серверу обмена в качестве SMTP-клиента.

После доставки на локальный почтовый сервер сообщение хранится для пакетного поиска по аутентифицированным почтовым клиентам (MUA). Сообщение извлекается приложениями конечного пользователя (почтовыми клиентами) с использованием протокола IMAP, который облегчает доступ к сообщениям и управляет хранящейся почтой, или с помощью протокола POP или фирменными

111

системами Microsoft Exchange/Outlook или Lotus

Notes/Domino. SMTP – всего лишь протокол доставки, он определяет передачу сообщения, а не его содержание.

Изначальная спецификация SMTP не включала средства аутентификации отправителей. Затем было введено расширение (ESMTP), которое предоставляет почтовым клиентам механизм аутентификации для сервера

SASL (Simple Authentication and Security Layer). Продукты

Microsoft реализуют собственный протокол - SPA (Secure

Password Authentication) для борьбы со «спамом». Однако,

проблема спама таким образом не может быть решена в полном объеме. Обширное изменение SMTP, так же как и полная его замена, считаются непрактичными из-за огромной инсталлированной базы SMTP. Спам остается благодаря различным факторам, в том числе из-за уязвимостей системного и прикладного программного обеспечения, развития вредоносных программ и др.

Представительский уровень в модели OSI обеспе-

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

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

112

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

Другой функцией, выполняемой на уровне представлений, является шифрование и дешифрование данных, обеспечивающее конфиденциальность передаваемых данных сразу для всех прикладных служб. Чтобы решить эту задачу, процессы и коды, находящиеся на уровне представлений, должны выполнить преобразование данных. Примером протокола, обеспечивающим конфиденциальный обмен по сети, является протокол SSL (англ. Secure Sockets Layer).

В основу общего представления данных положена единая для всех уровней модели система ASN.1. Эта система служит для описания структуры файлов, а также позволяет решить проблему шифрования данных. Наконец, представительский уровень выполняет функции:

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

представления графического материала (чертежей, рисунков, схем).

передачи запросов на прекращение сеансов.

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

Сеансовый уровень – это уровень, определяющий в модели OSI процедуру проведения сеансов между пользователями или прикладными процессами. В стеке протоколов TCP/IP сеансовый уровень отсутствует, а его функции выполняет транспортный уровень.

Он обеспечивает управление диалогом для того, чтобы фиксировать, какая из сторон является активной в настоящий момент, а также предоставляет средства синхронизации. Последние позволяют вставлять контрольные

113

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

Сеансовый уровень управляет передачей информации между прикладными процессами, координирует прием, передачу и выдачу одного сеанса связи. Кроме того, сеансовый уровень содержит дополнительно функции управления паролями, управления диалогом, синхронизации и отмены связи в сеансе передачи после сбоя вследствие ошибок в нижерасположенных уровнях. На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:

полудуплексной (стороны будут передавать и принимать данные по очереди);

дуплексной (стороны будут передавать данные, и принимать их одновременно).

В полудуплексном режиме сеансовый уровень выдает тому процессу, который начинает передачу, маркер данных. Когда второму процессу приходит время отвечать, маркер данных передается ему. Сеансовый уровень разрешает передачу только той стороне, которая обладает маркером данных.

К функциям сеансового уровня относятся:

установление и завершение на сеансовом уровне соединения между взаимодействующими системами;

выполнение нормального и срочного обмена данными между прикладными процессами;

управление взаимодействием прикладных процессов;

синхронизация сеансовых соединений;

извещение прикладных процессов об исключительных ситуациях;

114

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

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

прекращение сеанса без потери данных;

передача особых сообщений о ходе проведения сеанса.

Протоколы сеансового уровня обычно являются составной частью протоколов трех верхних уровней модели. В стеке протоколов TCP/IP сеансовый уровень отсутствует, а его функции выполняет транспортный уровень.

Транспортный и сетевой уровни в модели OSI выполняют функции, состав и содержание которых покрываются составом и содержанием функций, выполняемых одноименными уровнями в стеке протоколов TCP/IP. Ниже дается краткая характеристика этих уровней.

Транспортный уровень предназначен для передачи пакетов через коммуникационную сеть. На транспортном уровне пакеты разбиваются на блоки. На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие, которые предпочитают сразу иметь дело с надежным соединением. Работа транспортного уровня заключается в том, чтобы обеспечить приложениям или верхним уровням модели (прикладному и сеансовому) передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными

115

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

Транспортный уровень гарантирует доставку блоков информации адресатам и управляет этой доставкой. Его главной задачей является обеспечение эффективных, удобных и надежных форм передачи информации между системами. Когда в процессе обработки находится более одного пакета, транспортный уровень контролирует очередность прохождения пакетов. Если проходит дубликат принятого ранее сообщения, то данный уровень опознает это и игнорирует пакет.

В функции транспортного уровня входят:

управление передачей по сети и обеспечение целостности блоков данных;

обнаружение ошибок, частичная их ликвидация и сообщение о неисправленных ошибках;

восстановление передачи после отказов и неисправностей;

укрупнение или разделение блоков данных;

предоставление приоритетов при передаче блоков (нормальная или срочная);

подтверждение передачи;

ликвидация блоков при тупиковых ситуациях в сети.

Начиная с транспортного уровня, все вышележащие протоколы реализуются программными средствами, обычно включаемыми в состав сетевой операционной системы.

Наиболее распространенными протоколами транспортного уровня являются:

116

UDP (User Datagram Protocol) пользовательский протокол дейтаграмм стека TCP/IP;

TCP (Transmission Control Protocol) протокол управления передачей стека TCP/IP;

NCP (NetWare Core Protocol) базовый протокол сетей NetWare;

SPX (Sequenced Packet eXchange) упорядоченный обмен пакетами стека Novell.

При решении вопросов защиты информации крайне важным является знание, прежде всего, протоколов UDP и TCP и их использования в межсетевом взаимодействии. Поэтому ниже дается краткая характеристика содержания и использования указанных протоколов.

Протокол UDP является дейтаграммным протоколом, предназначенным для негарантированной (без установки канала связи) доставки сообщений по адресу. Связь по этому протоколу может привести к тому, что дейтаграммы могут прийти не по порядку, дублироваться или вовсе исчезнуть без следа. При использовании UDP подразумевается, что проверка ошибок и исправление либо не нужны, либо должны исполняться в приложении. Чувствительные ко времени приложения часто используют UDP, так как часто предпочтительнее отбросить пакеты, чем ждать задержавшиеся пакеты.

Протокол UDP обеспечивает многоканальную передачу (с помощью номеров портов) и проверку целостности (с помощью контрольных сумм) заголовка и существенных данных. Надёжная же передача в случае необходимости должна реализовываться пользовательским приложением.

Заголовок дейтаграммы состоит из четырёх полей, каждое по 2 байта (рис. 1.35).

117

Биты

0–15

16 –31

0-31

Порт отправителя

Порт получателя

(Source port)

(Destination port)

 

32-63

Длина дейтаграм-

Контрольная сумма

мы (Length)

(Checksum)

 

64-...

Данные (Data)

 

 

Рис. 1.35. Структура заголовка дейтаграммы

В поле «Порт отправителя» указывается номер порта отправителя. Предполагается, что это значение задаёт порт, на который при необходимости будет посылаться ответ. В противном же случае значение должно быть равным 0. Если хостом-источником является клиент, то номер порта будет, скорее всего, динамическим. Если источником является сервер, то его порт будет одним из «хорошо известных».

Поле «Порт получателя» является обязательным и содержит номер порт получателя. Аналогично порту отправителя, если хостом-получателем является клиент, то номер порта динамический, если получатель — сервер, то это будет «хорошо известный» порт.

Поле «Длина дейтаграммы» задает длину всей дейтаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка – 8 байтов. Теоретически, максимальный размер поля – 65535 байтов для UDPдейтаграммы (8 байтов на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 — 65507 (помимо 8 байтов на UDP-заголовок требуется ещё 20 на IP-заголовок).

Чтобы избежать фрагментации UDP пакетов (и возможной их потери), размер данных в UDP не должен пре-

118

вышать 1432 байтов. Для того чтобы быть уверенным, что пакет будет принят любым хостом, размер данных в UDP не должен превышать 508 байтов (определяется минимальной длиной IP пакета).

Поле «Контрольная сумма» используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями. Поле не является обязательным для IPv4.

Протокол TCP это один из основных протоколов передачи данных стека TCP/IP, предназначенный для управления передачей данных. Он основан на предварительной установке виртуального соединения, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета, гарантируя тем самым, в отличие от UDP, целостность передаваемых данных и уведомление отправителя о результатах передачи. Реализация TCP, как правило, встроена в ядро операционной системы, хотя есть и реализации TCP в контексте приложения.

Когда осуществляется передача от компьютера к компьютеру через сеть общего пользования, TCP осуществляет надежную передачу потока байтов от одной программы на некотором компьютере к другой программе на другом компьютере (например, программы для электронной почты, для обмена файлами). TCP контролирует длину сообщения, скорость обмена сообщениями, сетевой трафик.

Структура пакета, оформленного по протоколу TCP (TCP-пакета), приведена на рис. 1.36.

119

Структура заголовка

Бит

0 — 3

4 — 9

10 — 15

16 — 31

 

 

 

 

 

0

 

Порт источника

 

Порт назначения

 

 

 

 

32

 

Номер последовательности

 

 

 

64

 

Номер подтверждения

 

 

 

 

 

96

Длина

Зарезервировано

Флаги

Окно

заголовка

128

Контрольная сумма

 

Указатель важности

160

Опции (необязательное, но используется практически всегда)

160/192

 

Данные

 

 

 

 

 

 

Рис. 1.36. Структура пакета, оформленного по протоколу TCP

Поля «Порт источника» и «Порт назначения» представляют собой 16-битные поля, которые содержат номера портов – числа, которые определяются по специальному списку.

Порт источника идентифицирует приложение клиента, с которого отправлены пакеты. Ответные данные передаются клиенту на основании этого номера. Порт назначения идентифицирует порт, на который отправлен пакет.

Номер последовательности выполняет две задачи:

1)если установлен флаг SYN (см. ниже), то это начальное значение номера последовательности — ISN (Initial Sequence Number), и первый байт данных, которые будут переданы в следующем пакете, будут иметь номер последовательности, равный ISN + 1;

2)в противном случае, если SYN не установлен, первый байт данных, передаваемый в данном пакете,

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]