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

Мельников Д. А. - Организация и обеспечение безопасности информационно-технологических сетей и систем - 2012

.pdf
Скачиваний:
808
Добавлен:
15.07.2016
Размер:
20.96 Mб
Скачать

202

Глава 13. Протоколы транспортного уровня TCP и LJDP

от перегрузки (особенно это важно в случаях, когда производитель­ ность источника и приемника информации существенно различа­ ются). Этот метод называется декларацией приемного окна (window ad­ vertisement). Если отправитель «не справляется» с входящим пото­ ком, то он может декларировать окно нулевого размера, отказываясь тем самым от приема информации.

Отказ от приёма данных может войти в противоречие с требо­ ванием активных процессов произвести некоторые срочные дейст­ вия, например, экстренно прервать передачу. В этом случае отпра­ вителю разрешается послать данные с пометкой «Срочно», которые получатель обязан принять, пусть даже ему придется пожертвовать частью находящихся в приемном буфере данных.

Инициатор

разъединения

Приём блока T IN ”, N(S)=X

Передача блока “А С К ”, N(R)=X+1

Передача блока “FIN”, “А С К ” N(S)=Y, N(R)=X+1

Приём блока

“А С К ”, N(R)=Y+1

Рис. 13.8. Фаза разъединения

Раздел II.

203

Метод декларирования приёмного окна содержит в себе логи­ ческое противоречие, которое возникает в том случае, если получа­ тель декларирует нулевой размер окна для ликвидации у себя пере­ грузки. Отправителю нельзя посылать данные, поскольку получа­ тель не может их принять, а получатель не имеет полномочий про­ явить инициативу и сообщить о том, что перегрузка ликвидирова­ на. Разрешается это противоречие следующим образом: отправи­ тель информации, получивший декларацию окна нулевого разме­ ра, имеет право периодически отправлять блоки с «нулевым» ин­ формационным полем, «напоминая о себе», а получатель, квитируя такой блок, может декларировать приёмное окно ненулевой длины.

Фаза разъединения. Разъединение происходит по инициати­ ве одной из сторон, посылающей запрос на завершение соединения (бит «FIN» поля «Тип сообщения» - в состояние «2»). Процесс завер­ шения соединения - трехступенчатый. Диаграмма состояний для него показана на рис. 13.8.

Инициатор завершения соединения формирует блок-запрос, в котором устанавливает бит «FIN» поля «Тип сообщения» в состояние «2» и указывает состояние счетчика передаваемого им потока N(S)=x. Его партнер формирует сообщение, подтверждающее прием х байт пото­ ка (бит «АСК» поля «Тип сообщения» - в состояние «2», N(R)=x+l), после чего обращается к своему приложению, информируя его о заверше­ нии соединения (в это время он находится в состоянии завершения соединения). Затем, получив санкцию приложения, повторно квити­ рует полученный запрос на завершение соединения (устанавливает биты «FIN» и «АСК» поля «Тип сообщения» в состояние «2», N(R)=x+l). На это сообщение инициатор завершения соединения отвечает кви­ танцией, указывающей состояние счетчика потока в обратном направ­ лении (формирует и отправляет блок, в котором он устанавливает бит «АСК» поля «Тип сообщения» в состояние «2», N(R)=y+l). Инициатор завершения соединения проходит при этом через состояние ожидания обеих квитанций (см. рис.13.4).

Состояние ожидания квитанций подтверждения завершения со­ единения есть не что иное, как защита от потери квитанций в процессе завершения соединения. В случае неприема одной или обеих квитан­ ций на TCP-блок/запрос, в котором бит «FIN» поля «Тип сообщения» установлен в состояние «2», по истечении определенного времени (обычно оно равно двукратному времени жизни пакета в сети) прото­ кол самостоятельно принимает решение о завершении соединения и переходит в состояние пассивного ожидания.

Глава 14. Протоколы прикладного уровня INTERNET. Протоколы удаленного

доступа TELNET и доставки файлов FTP

Процедуры транспортного интерфейса являются основой для протоколов взаимодействия процессов, позволяющих реализовать такие прикладные функции, как доступ терминалов к процессам, доставку файлов, электронную почту и др. Эти функции реализуют­ ся за счет взаимодействия минимум двух процессов, выполняемых одной или разными ЭВМ (терминалами и серверами) ИТС, и соответ­ ствующих протоколов: удаленного доступа (связь с терминалами), виртуального терминала, доставки файлов и др. Указанные протоко­ лы находятся над транспортным уровнем пятиуровневой модели In­ ternet (см. рис. 8.2) и называются протоколами прикладного уровня.

14.1. Общая характеристика TELNET

Протокол удаленного доступа TELNET описан в RFC-854 (май, 1983 г.). Его авторы J. Postel и J. Reynolds во введении к документу оп­ ределили назначение протокола так: «... Дать общее описание, на­ сколько это только возможно, дуплексного, восьмибитового инфор­ мационного обмена, главной целью которого является обеспечение стандартного способа взаимодействия каждой программы (процесса) с терминалами любого типа, а также для организации взаимодейст­ вий «терминал-терминал» и «процесс-процесс». TELNET является протоколом прикладного уровня и находится над протоколами транспортного уровня (TCP, UDP).

TELNET-протокол позволяет пользователю подключиться к лю­ бой ГВМ (серверу) и работать с ней со своей ПЭВМ так, как если бы она была удаленным терминалом этой ГВМ.

TELNET-протокол решает следующие основные задачи:

1) определяет интерфейс, называемый виртуальным сетевым тер­ миналом (Network Virtual Terminal - NVT), который представ­ ляет структуру данных (порождаемых и отображаемых терми­ налом), алфавит, управляющие символы и порядок обмена управляющей информацией и данными, что позволяет клиенту и серверу абстрагироваться от собственных аппаратных осо­ бенностей и урегулировать требуемый формат данных;

раздел II.

205

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

3)устанавливает и поддерживает дуплексное межтерминальное со­ единение, что позволяет клиенту и серверу равноправно ини­ циировать передачу данных, согласовывать параметры и др.

Клиент

Сервер

Рис. 14.1. Взаимодействие локального терминала с ОС локального

и удаленного серверов

Взаимодействие локального терминала с ОС локального и уда­ ленного серверов показано на рис. 14.1. Модуль TELNET-протокола, являясь прикладной программой по отношению к ОС локального сервера, позволяет обращаться к удаленной ОС или обеспечивает функционирование клавиатуры и монитора для другого процесса на удаленном сервере.

Как правило (с точки зрения архитектурного решения), TELNET-протокол размещается на прикладном уровне, а не в ядре ОС, что имеет свои преимущества и недостатки. Главное преимуще­ ство - реализационная взаимонезависимость ОС и протокола, а не­ достаток - некоторая потеря в эффективности (снижение быстро­ действия при интерактивном режиме).

Необходимо заметить, что системы «Локальный терминал» и «Локальный сервер», показанные на рис. 14.1, разделены условно. На практике они чаще всего выступают как единая программно-ап­ паратная система. Поэтому представленное деление (рассмотрение терминала как отдельного устройства стандартного ввода/вывода) бопее удобно для понимания работы TELNET-протокола в целом.

206

Глава 14. Протоколы прикладного уровня INTERNET

14.2. Функции NVT-интерфейса

Сопряжение разнотипных терминалов с программами (по­ рожденными ими процессами). При организации межтерминаль­ ных (сквозных) соединений в реальных сетях, где в качестве оконеч­ ного оборудования могут применяться существенно различающие­ ся программно-аппаратные средства, возникают конфликты, свя­ занные с интерпретацией символьных кодов. Например, одни тек­ стовые терминалы в качестве символа, переводящего строку, ис­ пользуют специальный код CR (carriage return - возврат каретки), другие - код LF (line feed - перевод строки), третьи - пару CR-LF.

NVT-интерфейс служит для устранения таких конфликтов и яв­ ляется «буфером» между локальным терминалом и локальным серве­ ром (рис.14.1), который преобразует управляющие символы в прием­ лемый для удаленного оконечного оборудования вид (рис. 14.2). Кро­ ме того, в качестве кода перевода строки он формирует последова­ тельность CR-LF вне зависимости от кода, который был сформиро­ ван клавиатурой определенного терминала.

Управление удаленными процессами. Другой функцией NVT-интерфейса является управление удаленным процессом. В этом случае также могут возникать конфликты различных аппаратнопрограммных систем терминалов и ГВМ (серверов).

Во избежание подобных ситуаций NVT-интерфейс определяет следующие команды управления: IP, АО, АУТ, ЕС, EL, SYNCH, BRK (рис. 14.3). В основе передачи команд в TELNET-протоколе исполь­ зуется метод так называемых составных последовательностей (escape sequences), состоящих из двух кодов. Первым всегда передается сим­ вол с десятичным кодом 255 (IAC: Interpret As Command - интерпре­ тируемый как начало управляющей команды), который обычно при нажатии клавиш клавиатурами не генерируется. Вторым следует код команды.

С им вол ы

Д есятичны й

Н азначение

 

управления

код

 

 

 

NUL

0

Пустая (невыполняемая) операция

 

BEL

7

Звуковой сигнал (bell)

|

BS

8

Сдвиг на одну позицию назад (backspace)

 

нт

9

Горизонтальная табуляция (horizontal tab)

 

LF

10

Перевод строки (line feed)

J

VT

11

Вертикальная табуляция (vertical tab)

FF

12

Конец страницы (form feed)

__

CR

13

Возврат каретки (carriage return)

 

Рис. 14.2. Символы управления, интерпретируемые NVT

Раздел II.

207

Часть команд (рис. 14.3) используется для управления удаленным процессом, часть - для согласования параметров TELNET-протокола.

Особенностью процедуры передачи команд управления уда­ ленным процессом является сопровождение их командой SYNCH, очищающей буфер от обычных (не срочных) данных и доводящей команду управления до сервера TELNET-протокола.

14.3. Факультативные функции TELNET-протокола (options)

При запуске ОС ГВМ или ТВМ установка необходимых внут­ ренних и внешних параметров происходит автоматически, однако протоколом TELNET предусмотрено выполнение дополнительных (факультативных) сервисных функций, обеспечивающих более точное согласование требуемых параметров терминалов (процессов) при ведении информационного обмена.

Набор регулируемых параметров достаточно широк и вклю­ чает кодировку данных (7- или 8-битовая), режим доставки (дуп­ лексный или полудуплексный), тип терминала и др. (рис. 14.4).

Символы

Д есятичны й

Н азначени е

команды

код

 

IAC

255

Команда «Interpret As Command» (при наличии в данных байта со значением

255 передается дважды)

 

 

DON’T

254

Запрет или запрос на установку параметров

DO

253

Разрешение на установку параметров

WONT

252

Отказ в установке параметров

WILL

251

Согласие на установку параметров

SB

250

Начало согласования некоторых параметров (subnegotiation)

GA

249

Продолжение передачи (go ahead)

EL

248

Стирание предыдущей строки (erase line)

EC

247

Стирание предыдущего символа (erase character)

AYT

246

Идентификация сервера (are you there)

AO

245

Прерывание вывода (abort output)

IP

244

Прерывание процесса (interrupt process)

BRK

243

Прерывание

 

 

Для передачи команды «SYNCH» Команда «SYNCH» передается

DMARK

242

как «IAC+DMARK» с установкой в «бита «URGENT» (срочные данные)

 

 

в заголовке сегмента TCP

NOP

241

Пустая операция (no operation)

SE

240

Завершение сеанса согласования параметров (subnegotiation end)

EOR

239

Конец записи (end of record)

Рис. 14.3. Команды управления удаленным процессом NVT-интерфейса

Процедура согласования параметров равнозначна в том смысле, что сервер и абонент в равной степени могут инициировать установ­ ление необходимых параметров. Кроме того, способ согласования па­

208

Глава 14. Протоколы прикладного уровня INTERNET

раметров допускает на разных концах соединения взаимодействие различных версий TELNET-протокола, т.е. снабженных различными наборами факультативных сервисных функций (вплоть до того, что один из партнеров не владеет никакими факультативными функция­ ми и базируется только на NVT-интерфейсе).

14.4. Протокол удаленного доступа «rlogin»

Развитием протокола удаленного доступа в ряде систем UNIX является протокол удаленного доступа «rlogin» (remote login, RFC1282). Этот протокол отличается от TELNET более тесной связью с ОС. В частности, для «rlogin» характерно распознавание прав досту­ па пользователей (он не требует повторного ввода пароля при по­ следовательном доступе от одной ГВМ (серверу) к другой, если пользователь корректно выполнил операцию входа на первую из доступных ему ГВМ). Кроме того, «rlogin» может использовать стан­ дартный ввод/вывод ОС удаленных ГВМ; интерпретировать стан­ дартные ошибки ОС; распознавать параметры настройки про­ граммной оболочки (environment) как на локальной, так и на уда­ ленной ГВМ; передавать часть этих параметров от локальной на удаленную ГВМ и др.

С и м вол

Д есятичны й

R F C

Н азначени е

парам етра

код

 

 

Transmit binary

0

856

Передача данных в двоичной форме

Echo

1

857

Эхо-пакет на принятые данные

Supress-Ga

3

858

Отмена команды «GA» после передачи данных

Status

5

859

Запрос параметров TELNET с удаленного терминала

Timing-Mark

6

860

Запрос вставки временных маркеров для синхронизации

взаимодействующих процессов

 

 

 

Terminal-Type

24

884

Запрос типа терминала

End-Of-Record

25

885

Запрос на завершение передачи данных кодом «EOR»

Linemode

34

1116

Установка локального редактирования строк и построчной

передачи на удаленном терминале

 

 

 

Рис. 14.4. управляющие символы для установки параметров

вTELNET-протоколе

14.5.Преимущества и недостатки удаленного доступа

Удаленный доступ является чрезвычайно мощным инстру­ ментом. Практически без всяких территориальных ограничений можно запустить процесс на любой доступной (в административном отношении) ГВМ; произвести вычисления, получить (рис. 14.5) или передать информацию и др.

Раздел II.

209

С помощью этого инструмента системный оператор может «вой­ ти» в удаленный компьютер, произвести необходимую реконфигура­ цию, тестирование, настроечные или восстановительные работы.

Однако удаленный доступ может стать и угрозой. Протоколы удаленного доступа в руках инженера - полезный инструмент, а в руках злоумышленника - грозное оружие. Поэтому их использова­ ние должно сопровождаться тщательным анализом угрозы, связан­ ной с доступом к информации и вычислительным ресурсам ИТС.

14.6. Файловый доступ. Общая характеристика протокола FTP (File Transfer Protocol)

FTP-протокол (RFC-959) обеспечивает:

1)программный доступ к удаленным файлам: для работы про­ грамм предоставляется командный интерфейс;

2)интерактивный доступ к удаленным файлам: пользователь, вызывая FTP-протокол, попадает в интерактивную оболочку, из которой с помощью ряда команд может выполнять доста­ точно большой набор функций;

А д р е с

Login passw ord

С одерж ание

Regulus cs.bucknell.edu

Н ет

База данны х ад ресов IN T E R N E T

(«?» - подсказка)

 

 

 

А д р еса F R E E N Е Т (СШ А, Канада)

Heartland bradley.edu

Logimbbguest

 

Yfn ysu edu

Login visitor

Меню-ориентированные системы

Freenet carleton ca

Login guest

Freenet victoria be edu

Login, guest

 

fFeenet scri fsu edu

Login visitor

 

Downwind sprl-unich edu3000

Нет

Погода

Spacelink msfc nasa gov

Нет

База данных NASA

Lpi jsc.nasa gov

Login lpi

Информационный бюппетень Института Луны

и ппанет NASA

 

 

Denever ipac catech.edu

Loqin.ned

База данных «Внегалактика»

Duat contel com

Нет

База данных для пилотов малой авиации

 

Системы BBS (Bulleten Board System)

Access usask qov

Loqinhytelnet

Описание доступа по TELNET к библиотекам США

Liberty uc wlu edu

Login lawlib

Библиотека по законодательству

Isn iastate edu

DIALscholar

База данных по сельскому хозяйству

Nebbs nersc qov

Login new

Министерство образования США

Hela ucwlu edu

Login-visitor

США сегодня

Рис. 14.5. Информационные ресурсы (часть) в Internet, доступные по TELNET-протоколу

3) преобразование данных: FTP-протокол позволяет клиенту описать формат хранимых данных (например, специфициро­ вать кодировку символов для текстов);

210

Глава 14. Протоколы прикладного уровня INTERNET

4) аутентификацию: FTP-протокол проверяет имя пользователя, его пароль и права доступа.

FTP-протокол, основывающийся на транспортной службе ТСРпротокола, поддерживает множество FTP-соединений с различными абонентами. В свою очередь, всякое FTP-соединение состоит из двух соединений (рис.14.6): управляющего (control connection) и доставки данных (data transfer connection). Управляющее соединение поддер­ живается от начала до конца сеанса связи с клиентом. Соединение доставки данных динамически устанавливается на время передачи каждого файла. Обычно оба соединения поддерживаются двумя различными процессами ОС.

Для поддержания управляющего FTP-соединения использует­ ся TELNET-протокол в рамках NVT-интерфейса.

Клиент

Сервер

Рис. 14.6. Соединение ТСР-протокола

Команда

П арам етры

Н азначение

AB0R

 

Завершает соединение FTP и доставку данных

LIST

filelist

Завершает список файлов и каталогов

PASS

password

Передает пароль клиента серверу

PORT

n1, n2, n3,

Передает серверу адрес протокола IP (первые четыре байта)

n4, n5, n6

и адрес порта клиента (последние два байта)

 

QUIT

 

Производит отключение от сервера

RETR

filename

Запрашивает прием файла с сервера

STOR

filename

Запрашивает доставку файла на сервер

SYST

 

Запрашивает тип ОС сервера

TYPE

type

Назначает тип файла. А - ASCII, I- изображение

USER

username

Передает имя пользователя на сервер

__

__

__

__ --

Рис. 14.7. Команды FTP-протокола

Раздел II.

211

Способ связи с портами различается для клиента и сервера. FTP-сервер работает на известных (well-known) портах 21 (управляю­ щее соединение) и 20 (соединение для доставки данных). FTP-абонент может выбрать и согласовать на локальной ПЭВМ номера портов, что позволяет ему поддерживать несколько FTP-соединений с од­ ним сервером.

14.7. Команды FTP-протокола

Процедурная характеристика FTP-протокола достаточно про­ ста. Абонент направляет серверу текстовые команды, состоящие из имени команды и, факультативно, параметров (рис. 14.7).

На эти команды сервер посылает ответы - текстовые строки, которые для удобства использования в программах начинаются с символов трехзначного кода, а далее идет текст, раскрывающий значение кода. Трехзначный код ответа интерпретируется пораз­ рядно. Первый символ определяет общий тип ответа: положитель­ ный (1...3) или отрицательный (4...5), промежуточный (1, 2, 4) или окончательный (3, 5); второй - указывает на причину ошибки; тре­ тий - конкретизирует событие.

Код команды

Назначение

dir, Is

Показывает содержимое удаленного каталога

mdir, mis

Показывает содержимое нескольких каталогов

cd

Осуществляет переход в другой (вложенный) каталог

cdup

Осуществляет переход в вышележащий каталог

led

Изменяет рабочий каталог на локальной машине

mkdir

Создает каталог на сервере

rmdir

Стирает каталог на сервере

delete

Стирает файл на сервере

mdelete

Стирает несколько файлов на сервере

get

Копирует файл с сервера на клиентскую ПЭВМ

mget

Копирует несколько файлов с сервера на клиентскую ПЭВМ

put

Копирует файл с клиентской ПЭВМ на сервер

mput

Копирует несколько файлов с клиентской ПЭВМ на сервер

rename

Переименовывает файл на сервере

type

Устанавливает тип передаваемых данных

ascii

Устанавливает текстовый тип передаваемых данных

binary

Устанавливает двоичный тип передаваемых данных

close, disconnect

Завершает FTP-сеанс

bye

Завершает FTP-сеанс и выходит из оболочки

Рис. 14.8. Команды FTP-протокола для интерактивного доступа (часть)

FTP-протокол для интерактивного доступа. Для пользователя интерактивный режим FTP-протокола выглядит как самостоятельная «командная программная оболочка». При вызове FTP-протокола с по­