Файл: Принципы построения и основные задачи, выполняемые серверными программами и работа с ними.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 05.04.2023

Просмотров: 182

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

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

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

Защита клиента и сервера начинается с определения того, каким формам атак они могут подвергаться. Вот основные их них:

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

- разделение линии – программа-вредитель ограничивает доступ к серверу или клиенту. Данная программа затрудняет соединение, замедляет время реакции сервера или вообще делает его недоступным.

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

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

Наиболее распространёнными протоколами безопасности на сегодняшний день являются SSL (Secure Sockets Layer) и TLS (Transport Layer Security). Это протоколы, обеспечивающие безопасный канал между двумя компьютерами, взаимодействующими между собой по сети.

SSL – криптографический протокол, для обеспечения более безопасной связи. Этот тип цифровой безопасности, позволяющий зашифровать связь между компьютерами. Для аутентификации ключей обмена он использует асимметричную криптографию. В настоящее время эта технология устарела и заменяется TLS.


В работе SSL принимают участие три ключа: приватный, публичный и сеансовый. Ключ – это средство для зашифровывания и расшифровывания сообщений. Публичный ключ используется для зашифровывания сообщения. Клиент использует его тогда, когда нужно отправить сообщение серверу. Приватный ключ необходим для расшифровывания сообщений. Он используется сервером, когда получает сообщение от клиента. Сеансовый ключ используется одновременно для зашифровки и расшифровки сообщений. Клиент генерирует его на время сеанса и когда сеанс заканчивается, ключ перестает работать.

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

2. Основные задачи, выполняемые серверными программами

2.1. Сервер маршрутизации

В сущности, сервера маршрутизации не являются серверами в классическом понимании. Они являются базовой функцией поддержки сети операционной системой. Маршрутизация является базовой функцией в протоколе IP стека TCP/IP. Маршрутизацией своих пакетов к месту назначения занимается любая система в сети, в то время как маршрутизацией чужих пакетов занимаются только маршрутизаторы (также именуемые роутерами или шлюзами). При маршрутизации чужих пакетов маршрутизатор занимается следующими задачами:

- получение пакета;

- поиск машины, куда следует этот пакет, или следующий маршрутизатор по маршруту;

- передача пакета или возвращение сообщения о невозможности его доставки;

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

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


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

Для обеспечения доставки пакета по кратчайшему и самому эффективному маршруту используется динамическая маршрутизация. С помощью динамической маршрутизации собирается информация о текущем состоянии сложной сети и поддерживается таблица маршрутов через эту сеть.

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

2.2. Файловые и медиа серверы

Файловый сервер является сервером, который обеспечивает доступ к файлам на диске. Файловые серверы предназначены для передачи файлов по требованию. Основными протоколами для осуществления передачи файлов являются FTP (File Transfer Protocol), TFTP (Trivial File Transfer Protocol), SFTP (SSH File Transfer Protocol) и HTTP (HyperText Transfer Protocol).

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

TFTP в основном используется для первоначальной загрузки бездисковых рабочих станций. В отличии от FTP он не поддерживает аутентификацию и основан на транспортном протоколе UDP. Главная цель TFTP это обеспечение простой реализации клиента. Именно поэтому, он используется главным образом для первичной загрузки бездисковых рабочих станций, конфигурации в «умные сетевые устройства» и загрузки обновлений. Так как протокол не поддерживает аутентификацию, единственный способ идентифицировать клиента - это его сетевой адрес. Но из-за того, что сетевой адрес может быть подделан, данный протокол не может обеспечить достаточный уровень безопасности.


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

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

Другой тип файловых серверов позволяет монтировать свои дисковые разделы в дисковое пространство клиента для полноценной работы с файлами на них. Такие сервера как правило используют протоколы NFS (Network File System) и SMB (Server Message Block). Эти серверы работают через интерфейс RPC.

Отдельно можно выделить серверы доступа к данным. Задача таких серверов обслуживать базу данных и отдавать данные по запросу клиента. Как пример простого сервиса данного типа можно назвать LDAP (Lightweight Directory Access Protocol). Для получения доступа к серверам баз данных нет единого протокола, однако множество баз данных используют единые правила формирования запросов – язык SQL (Structured Query Language). Так же существуют NoSQL (Not Only SQL) базы данных.

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

Серверы IP-телефонии (VoIP) обеспечивают возможность голосовой и видеосвязи в реальном времени посредством компьютерной сети. Помимо передачи потоковых медиа-данных, сервер IP-телефонии предоставляет возможности регистрации оконечного терминала, корректное установление связи между пользователями, маршрутизацию вызова. В зависимости от реализуемой техники VoIP сервер может обеспечивать только административные функции, такие как регистрация пользователей и коммутация вызовов. В таком случае потоковые данные передаются напрямую от пользователя к пользователю (peer-to-peer).


2.3. Серверы обмена сообщениями

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

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

- легко запоминаемые и воспроизводимые человеком адреса вида <имя_пользователя>@<имя_домена> (например username@example.ru);

- возможность отправки как обычного, так и форматированного текста;

- возможность прикрепления к письму произвольных файлов;

- независимость серверов;

- высокая надежность пересылки сообщений;

- высока скорость передачи сообщений;

- простота в использовании.

Стандартным протоколом для обмена электронной почтой является SMTP (Simple Mail Transfer Protocol). Каждая SMTP-сессия состоит из двух компонентов: команд от клиента и ответов на них от сервера. Такой обмен может содержать ноль и больше SMTP-операций (транзакций). Каждая SMTP-операция состоит из трех последовательных этапов команда-ответ:

  1. Mail from. Определяет обратный адрес, данная переменная нужна для возвращенных писем.
  2. RCPT to. Определяет получателя сообщения. Данная команда может использоваться несколько раз, при необходимости указания нескольких получателей.
  3. Data. Необходим для отправки сообщения, включает в себя содержимое письма. «Data» содержит в себе информацию о заголовке и теле письма. При передаче ответ сервера происходит в два этапа: на первом сервер отвечает именно на команду «Data» (уведомление о готовности принять текстовое сообщение), а на втором сообщается было ли принято или отклонено все письмо в конце последовательности данных.

Существует две различные модели работы сервера с полученной почтой: концепция почтового терминала и почтового хранилища. Концепцией почтового хранилища подразумевается, что вся почта, связанная с почтовым ящиком, хранится на сервере, а пользователь обращается к хранилищу для просмотра имеющихся и написания новых писем. По этому принципу действует протокол IMAP (Internet Message Access Protocol) и большая часть веб-интерфейсов бесплатных почтовых сервисов. В концепции почтового хранилища на сервере почта хранится временно, а пользователю необходимо периодически обращаться к серверу и «забирать» письма (в этот момент клиент скачивает копию письма и удаляет её на сервере). По этому принципу действует протокол POP3 (Post Office Protocol Version 3).