Лекция по протоколам Telnet и SSH на прикладном уровне, Lecture notes of Information Systems

В этой лекции рассматриваются протоколы Telnet и SSH на прикладном уровне ОSI. Telnet - служба для текстового сетевого интерфейса, обеспечивающая взаимодействие сети и пользователя. SSH - сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. Оба протокола обеспечивают безопасность и конфиденциальность передачи данных.

Typology: Lecture notes

2019/2020

Uploaded on 06/11/2020

potruguyda
potruguyda 🇧🇶

1 document

1 / 4

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Лекция 09
Прикладной уровень.
Протоколы Telnet и SSH.
Прикладной уровень (Application layer) обеспечивает взаимодействие сети и
пользователя. Разрешает приложениям пользователя иметь доступ к сетевым службам, таким
как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты.
Также отвечает за передачу служебной информации и предоставляет приложениям
информацию об ошибках.
Протокол/служба Telnet
TELNET (TErminaL NETwork) — служба для реализации текстового интерфейса по сети
современной форме при помощи транспорта TCP). Название «telnet» имеют также
некоторые утилиты, реализующие клиентскую часть протокола. Современный стандарт
протокола описан в RFC 854.
Выполняет функции протокола прикладного уровня модели OSI.
Назначение протокола TELNET в предоставлении достаточно общего, двунаправленного,
восьмибитного байт-ориентированного средства связи. Его основная задача заключается в
том, чтобы позволить терминальным устройствам и терминальным процессам
взаимодействовать друг с другом. Протокол может быть использован для связи вида
терминал-терминал («связывание») или для связи процесс-процесс («распределенные
вычисления»).
Хотя в сессии Telnet выделяют клиентскую и серверную стороны, протокол на самом деле
полностью симметричен. После установления транспортного соединения (как правило, TCP)
оба его конца играют роль «сетевых виртуальных терминалов» (Network Virtual Terminal,
NVT), обменивающихся двумя типами данных:
Прикладными данными.
Командами протокола Telnet.
Хотя Telnet-сессии, выполняющейся по TCP, свойственен полный дуплекс, NVT должен
рассматриваться как полудуплексное устройство, работающее по умолчанию в
буферизированном строковом режиме.
Прикладные данные проходят через протокол без изменений, то есть на выходе второго
виртуального терминала мы видим именно то, что было введено на вход первого. С точки
зрения протокола данные представляют просто последовательность байтов (октетов), по
умолчанию принадлежащих набору ASCII, но при включенной опции Binary — любых. Были
предложены расширения для идентификации набора символов, но на практике ими не
пользуются.
Все значения октетов прикладных данных кроме \377 (десятичное: 255) передаются по
pf3
pf4

Partial preview of the text

Download Лекция по протоколам Telnet и SSH на прикладном уровне and more Lecture notes Information Systems in PDF only on Docsity!

Лекция 09

Прикладной уровень.

Протоколы Telnet и SSH.

Прикладной уровень (Application layer) — обеспечивает взаимодействие сети и пользователя. Разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации и предоставляет приложениям информацию об ошибках. Протокол/служба Telnet TELNET (TErminaL NETwork) — служба для реализации текстового интерфейса по сети (в современной форме — при помощи транспорта TCP). Название «telnet» имеют также некоторые утилиты, реализующие клиентскую часть протокола. Современный стандарт протокола описан в RFC 854. Выполняет функции протокола прикладного уровня модели OSI. Назначение протокола TELNET в предоставлении достаточно общего, двунаправленного, восьмибитного байт-ориентированного средства связи. Его основная задача заключается в том, чтобы позволить терминальным устройствам и терминальным процессам взаимодействовать друг с другом. Протокол может быть использован для связи вида терминал-терминал («связывание») или для связи процесс-процесс («распределенные вычисления»). Хотя в сессии Telnet выделяют клиентскую и серверную стороны, протокол на самом деле полностью симметричен. После установления транспортного соединения (как правило, TCP) оба его конца играют роль «сетевых виртуальных терминалов» (Network Virtual Terminal, NVT), обменивающихся двумя типами данных:

  • Прикладными данными.
  • Командами протокола Telnet. Хотя Telnet-сессии, выполняющейся по TCP, свойственен полный дуплекс, NVT должен рассматриваться как полудуплексное устройство, работающее по умолчанию в буферизированном строковом режиме. Прикладные данные проходят через протокол без изменений, то есть на выходе второго виртуального терминала мы видим именно то, что было введено на вход первого. С точки зрения протокола данные представляют просто последовательность байтов (октетов), по умолчанию принадлежащих набору ASCII, но при включенной опции Binary — любых. Были предложены расширения для идентификации набора символов, но на практике ими не пользуются. Все значения октетов прикладных данных кроме \377 (десятичное: 255) передаются по

транспорту как есть. Октет \377 передаётся последовательностью \377\377 из двух октетов. Это связано с тем, что октет \377 используется на транспортном уровне для кодирования опций. Протокол предоставляет по умолчанию минимальную функциональность и набор расширяющих её опций. Принцип оговоренных опций требует проводить переговоры при включении каждой из опций. Одна сторона инициирует запрос, а другая сторона может либо принять, либо отвергнуть предложение. Если запрос принимается, то опция немедленно вступает в силу. Опции описаны отдельно от протокола как такового, и их поддержка программным обеспечением произвольна. Клиенту протокола (сетевому терминалу) предписывается отвергать запросы на включение неподдерживаемых и неизвестных опций. Терминал NVT имеет неопределённую ширину каретки и длину страницы и должен иметь представление всех 95 печатных символов US-ASCII (коды с 32 по 126). Каждая команда TELNET является многобайтовой последовательностью, начинающейся с кода \377 (десятичное: 255) «Interpret as Command» (IAC) и кода команды. Команды, отвечающие за договоренности по опции, являются трехбайтовыми последовательностями, где третий байт является кодом опции. Исторически Telnet служил для удалённого доступа к интерфейсу командной строки операционных систем. Впоследствии его стали использовать для прочих текстовых интерфейсов, вплоть до игр MUD и анимированного ASCII-art. Теоретически, даже обе стороны протокола могут являться не только людьми, но и программами. Иногда клиенты telnet используются для доступа к другим протоколам на основе транспорта TCP. Например, telnet используется в управляющем соединении FTP. В протоколе не предусмотрено использование ни шифрования, ни проверки подлинности данных. Поэтому он уязвим для любого вида атак, к которым уязвим его транспорт, то есть протокол TCP. Сессия Telnet беззащитна, если только не осуществляется в полностью контролируемой сети или с применением защиты на сетевом уровне (различные реализации виртуальных частных сетей). По причине ненадёжности от Telnet как средства управления операционными системами отказались.

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

  • Запрещение удалённого root-доступа.
  • Запрещение подключения с пустым паролем или отключение входа по паролю.
  • Выбор нестандартного порта для SSH-сервера.
  • Использование длинных SSH2 RSA-ключей (2048 бит и более). Системы шифрования на основе RSA считаются надёжными, если длина ключа не менее 1024 бит.
  • Ограничение списка IP-адресов, с которых разрешён доступ.
  • Запрещение доступа с некоторых потенциально опасных адресов.
  • Регулярный просмотр сообщений об ошибках аутентификации.
  • Установка систем обнаружения вторжений (IDS). SSH-туннелирование SSH-туннель — это туннель, создаваемый посредством SSH-соединения и используемый для шифрования туннелированных данных. Используется для того, чтобы обезопасить передачу данных в Интернете (аналогичное назначение имеет IPsec). При пересылке через SSH- туннель незашифрованный трафик любого протокола шифруется на одном конце SSH- соединения и расшифровывается на другом. Техническая информация о протоколе SSH — это протокол прикладного уровня. SSH-сервер обычно прослушивает соединения на TCP-порту 22. Спецификация протокола SSH-2 содержится в RFC 4251. Для аутентификации сервера в SSH используется протокол аутентификации сторон на основе алгоритмов электронно-цифровой подписи RSA или DSA. Для аутентификации клиента также может использоваться ЭЦП RSA или DSA, но допускается также аутентификация при помощи пароля (режим обратной совместимости с Telnet) и даже ip-адреса хоста (режим обратной совместимости с rlogin). Аутентификация по паролю наиболее распространена; она безопасна, так как пароль передаётся по зашифрованному виртуальному каналу. Аутентификация по ip-адресу небезопасна, эту возможность чаще всего отключают. Для создания общего секрета (сеансового ключа) используется алгоритм Диффи — Хеллмана (DH). Для шифрования передаваемых данных используется симметричное шифрование, алгоритмы AES, Blowfish или 3DES. Целостность передачи данных проверяется с помощью CRC32 в SSH1 или HMAC-SHA1/HMAC-MD5 в SSH2. Для сжатия шифруемых данных может использоваться алгоритм LempelZiv (LZ77).