48238 (Программа установки защищенных сетевых соединений с использованием протокола ISAKMP), страница 2

2016-07-29СтудИзба

Описание файла

Документ из архива "Программа установки защищенных сетевых соединений с использованием протокола ISAKMP", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48238"

Текст 2 страницы из документа "48238"

Инициатор из пакета 2 берет необходимую информацию. Затем вычисляет рабочие константы, аутентификационную информацию и ключи шифрования. Пакетом 3 инициатор аутентифицирует себя.

Фаза 2 (Quick Mode)

Целью второй фазы является получение параметров секретного соединения и ключевой информации [5] [6]. Все пакеты, передаваемые во время второй фазы, защищаются секретным соединением, созданным во время первой фазы. Одновременно с обеспечением конфиденциальности передаваемой информации обеспечивается и целостность данных путем передачи значения хеш-функции от данных.

Рис. 4. Структура фазы 2 (Quick Mode)

Режим состоит из трех пакетов. Его структура представлена на рисунке 4. В первом пакете инициатор посылает SA payload, содержащий предложения о параметрах будущего соединения, случайную информацию (Nonce payload) для создания ключевой информации. Все остальные компоненты пакета являются опциональными. Если для расчета ключевой информации требуется использовать «свежий» ключевой материал, то осуществляется еще один обмен открытыми ключами, в противном случае для расчета берется информация из первой фазы. Также, если локальная политика требует использование во второй фазе идентификационной информации отличной от информации используемой в первой фазе, добавляются соответствующие Identification payload-ы.

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

Третий пакет посылается инициатором в подтверждение правильности принятой информации и содержит только Hash payload, который вычисляется с помощью буфера случайных данных, посланных ответчиком во втором пакете. Содержимое Hash payload-ов вычисляются по следующим формулам:

HASH(1) = PRF (SKEYID_a, Message ID | SA | Ni [| KE] [| IDic | IDcr])

HASH(2) = PRF (SKEYID_a, Message ID | Ni | SA | Nr | [| KE] [| IDic | IDcr])

HASH(3) = PRF (SKEYID_a, 0 | Message ID | Ni | Nr)

Формула для расчета окончательного ключевого материала зависит от того, был ли обмен открытыми ключами для создания нового общего ключа. Если такого обмена не было, то формула следующая:

KEYMAT = PRF (SKEYID_d, protocol | SPI | Ni | Nr)

где protocol – номер протокола, для алгоритма которого считается ключевой материал.

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

KEYMAT = PRF (SKEYID_d, g^xy | protocol | SPI | Ni | Nr)

Таким образом, после второй фазы мы получаем всю необходимую информацию для создания секретного соединения. Список применяемых протоколов и используемых в них алгоритмы получается после обмена SA payload-ами во второй фазе. Ключевая информация для каждого алгоритма рассчитывается по приведенным выше формулам. Следует заметить, что приведенная выше структура протокола была упрощена для простоты восприятия (отсутствует рассмотрение остальных методов аутентификации и New Group Mode).

Виды сетевых атак

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

Отказ в обслуживании (Denial of Service)

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

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

Оговоримся сразу, способа, полностью защитится от данного типа атак не существует. Атаку можно лишь сделать менее эффективной. В протоколе ISAKMP это достигается в первую очередь за счет откладывания основных «тяжелых» расчетов на более поздние обмены. В первые обмены производятся простые вычисления (выбор параметров соединения). В то же время сама работа протокола состоит из нескольких обменов, что не позволяет злоумышленнику использовать фиктивные адреса, т. к. не получив информацию от нас, он не сможет правильно сформировать следующий пакет. Т.е. если атака и станет успешной, мы будем точно знать, кто нас атаковал. Однако следует заметить, что данный способ защиты не подходит для Aggressive Mode, который, как уже подчеркивалось, работает быстрее, но менее защищен.

Человек посередине (Man-in-the-Middle)

Целью атаки являются конфиденциальность и целостность данных. Атака заключается в том, что злоумышленник, вклиниваясь в процесс установления секретного соединения, представляется для каждой из сторон ее партнером и проводит установление соединения от ее имени. В результате вместо одного защищенного канала между двумя партнерами получается два канала между каждой из сторон и злоумышленником. Для каждого из партнеров все выглядит обычным образом, но злоумышленник получает возможность не только просматривать данные, передаваемые по «защищенному» каналу, но даже модифицировать их. Структура описанной атаки представлена на рисунке 5.

Sx – секретный ключ, Px – открытый ключ

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

Повтор посылки (Replay attack)

Атака заключается в перепосылке ранее записанных пакетов в расчете на неправильную реакцию атакуемого. Например, попытаться с помощью пакетов, подслушанных при аутентификации двух партнеров, представиться одним из них при установлении соединения со вторым. Даже если таким образом просто повторят уже проведенное соединение (т.е. в результате будет создано еще одно соединение совпадающие с прежним), это приведет к потере ресурсов.

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

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

Во второй части были представлены основные типы сетевых атак, объяснен принцип их действия и, на основе структуры протокола ISAKMP, показано как он противостоит этим атакам.

Разработка программы

Определение места программы в системе защиты сетевого трафика

В этом разделе мы рассмотрим, из каких основных модулей состоит система защиты сетевого трафика, назначение этих модулей и каким образом они взаимодействуют [3].

На рисунке 6 представлена структура системы защиты сетевого трафика. Рассмотрим отдельно каждый модуль.

Модуль управления

Данный модуль определяет общее поведение системы. Внутри него происходит считывание, проверка и хранение конфигурационной информации, согласно которой он управляет остальными модулями. Модуль имеет интерфейсы почти ко всем остальным модулям. В модуль обработки трафика он прогружает правила фильтрации трафика (входящего и исходящего), правила обработки трафика (заданные вручную в конфигурации и полученные модулем ISAKMP). Из модуля обработки трафика он получает запросы, на создание секретного соединения (правила обработки трафика), которые передает в модуль ISAKMP. Также в процессе работы модуля ISAKMP именно на нем лежит обязанность формулирования предлагаемых вариантов параметров соединения и выбор приемлемого варианта в предложенном наборе. До прогрузки секретного соединения, созданного модулем ISAKMP, оно сохраняется в модуле хранения основной ключевой информации.

Модуль хранения основной ключевой информации

Является дублирующим местом хранения правил обработки трафика (еще одно находится в модуле обработки сетевого трафика). Необходимость дублирования информации в двух местах объясняется тем, что время жизни соединения в секундах легче отслеживать в этом модуле, а в килобайтах в модуле обработки трафика. Дополнительно появляется возможность не хранить в модуле обработки трафика информации о соединениях, которыми давно не пользовались, а запрашивать эту информацию по необходимости. Взаимодействие ведется только с модулем управления, от которого принимается информация о соединения для сохранения и команды на удаление соединения, а выдается сигнал о том, что у какого-то соединения кончилось время жизни.

Модуль обработки сетевого трафика

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

Модуль ISAKMP

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

Модуль хранения ключевой информации ISAKMP

Данный модуль является хранилищем информации о секретных соединениях протокола ISAKMP, используемых им для защиты своего трафика. Данные соединения полностью скрыты для модуля управления. Модуль осуществляет прием на хранение информации о соединениях, поиск существующего соединения и отслеживание окончания времен жизни хранимых соединений (при истечении срока соединение тут же удаляется).

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

Разработка общей структуры программы

Так как представленная программа написана с использованием технологии «нитей» (Thread), то в начале данного раздела будет дано определение этому термину, описаны плюсы и минусы использования этой технологии, а затем рассмотрено из каких конкретно модулей (нитей) состоит программа, их назначение и взаимодействие между собой.

Что такое нить (thread)?

Под нитью (иногда называемой нитью контроля) понимается независимая последовательность выполнения программного кода внутри отдельного процесса [10]. Нити разделяют между собой всю память процесса, и если одна нить пишет что-то в память, другая может читать эти данные. Нити также разделяют все остальные ресурсы процесса, например, дескриптор файла, т.е. сразу несколько нитей могут писать в один и тот же файл. Нити внутри процесса распределяются и исполняются абсолютно независимо, т.е. если одна нить ожидает ввода информации, это никаким образом не прерывает исполнение других нитей. В мультипроцессорных системах разные нити могут выполняться разными процессорами. В однопроцессорных же системах – нити могут исполняться в произвольном порядке. Обычно, нить исполняется, пока не будет заблокирована каким-либо запросом или пока не закончится отведенный ей отрезок времени (квант времени).

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

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

Мультипроцессорные системы. Использование нескольких нитей в одном процессе является эффективным способом использования возможности параллельной работы.

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

Оперативность серверных приложений. Серверные приложения обрабатывают запросы, приходящие от клиентов. Одновременно может прийти несколько запросов. В случае однонитевого приложения запросы будут выполняться последовательно, и выполнение сложного запроса может надолго отложить выполнение других, более простых и важных запросов. Много нитевая структура в этом отношении представляется более адаптивной, т. к. каждый запрос пользователя может быть обработан согласно его сложности и важности. Другой проблемой для серверных приложений является взаимные запросы. Это происходит если сервер 1, обрабатывая клиентский запрос, делает запрос к серверу 2, который в свою очередь при его обработке обращается обратно к серверу 1. В однонитевом приложении это приведет к зависанию обоих серверов, т. к. единственная нить сервера 1 уже занята обработкой запроса и не может обработать запрос сервера 2. Использование нескольких нитей решает эту проблему, т. к. для каждого запроса выделяется отдельная нить, которая выполняется независимо от других.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5193
Авторов
на СтудИзбе
434
Средний доход
с одного платного файла
Обучение Подробнее