УДК 004.056.53
СИНТЕЗ ДИНАМИЧЕСКОЙ МОДЕЛИ ПОДСИСТЕМЫ РАЗГРАНИЧЕНИЯ ДОСТУПА RADIUS
Ю.Ю. Громов, А.В. Яковлев, О.М. Яковлева, Ю.В. Минин
Проведен анализ подсистемы разграничения доступа Radius. Выявлены основные функциональные требования, предъявляемые к ней в современных информационных системах. Рассмотрено пошаговое выполнение протокола и приведена структурная схема его функционирования. Сетевая динамическая модель представлена вербаль-но и формально с учетом особенностей реализуемого протокола, обсуждается алгоритм обработки клиентского запроса сервером. Приведено полное описание модели, включая описания позиций, переходов, начальной маркировки сети, а также дерево достижимости маркировки
Ключевые слова: доступ, дерево достижимости, угроза, аутентификация
Управление распределенной системой доступа по телефонным линиям и модемными пулами в сетях с большим числом пользователей может потребовать от администраторов значительных усилий. Поскольку модемный пул по определению является «открытой дверью», требуется повышенное внимание к идентификации пользователей, проверке их полномочий и учету работы (accounting). Наиболее эффективное решение может быть обеспечено путем создания единой "базы данных" о пользователях, которая применяется при идентификации (проверка имени пользователя и пароля), установке конфигурационных параметров и выборе типа сервиса, предоставляемого пользователю (например, SLIP, PPP, telnet, rlogin) [1]. Данное решение реализовано с помощью системы Radi-
us(RemoteAuthenticationinDial-InUserService) .
Изначально концепция Radius состояла в обеспечении удаленного доступа через коммутируемое телефонное соединение. Со временем выявились и другие области применения этой технологии. К ним относятся серверы виртуальных частных сетей (VirtualPrivateNetwork, VPN), а также точки доступа беспроводных локальных сетей (Wireless LAN, WLAN).
В общем случае, система Radius разработана для передачи данных между центральной платформой и оборудованием и использует специальный Radius протоколдля реализации аутентификации (authentication), проверки полномочий
(authorization) и установки конфигурационных параметров в серверах доступа,которые хотят работать с идентифицированными пользователями. Информация о пользователях содержится на разделяемом сервере идентификации (AuthenticationServer) [2].
Основными преимуществами протокола Radius являются [3]:
Громов Юрий Юрьевич - ТГТУ, д-р техн. наук, профессор, e-mail: gromovtambov@vandex.ru, тел. (4752) 63-92-86 Яковлев Алексей Вячеславович - ТГТУ, канд. техн. наук, доцент, тел. (4752) 63-13-58
Яковлева Ольга Михайловна - ТГТУ, магистрант, тел. (4752) 63-13-58
Минин Юрий Викторович - ТГТУ, канд. техн. наук, доцент, тел. (4752) 63-13-58
1) Архитектура "клиент-сервер".
Сервер доступа в сеть (NAS - NetworkAccessServer) выступает в качестве клиента Radius. Клиент отвечает за передачу сведений о пользователе заданным серверам Radius и дальнейшие действия в зависимости от возвращенной сервером информации.
Серверы Radiusотвечают за прием клиентских запросов, идентификацию пользователей и возврат клиенту всех конфигурационных параметров, требуемых для предоставления пользователю соответствующих услуг.
Сервер Radius может выступать в качестве клиента-посредника (proxyclient) других серверов Radius или серверов идентификации иного типа.
2) Безопасность.
Аутентификация транзакций между клиентом и сервером Radius осуществляется с использованием разделяемого ключа (sharedsecret), который никогда не передается через сеть. В дополнение к этому пользовательские пароли между клиентами и серверами Radius передаются в зашифрованном виде во избежание перехвата паролей при их передаче через незащищенные сети.
3) Гибкость механизмов идентификации.
Сервер Radius может поддерживать широкий
спектр методов идентификации пользователей. При получении регистрационного имени и пароля, указанных пользователем, сервер может поддерживать дополнительные механизмы, включая PPP, PAP или CHAP, UNIXlogin и т.п.
4) Возможность расширения.
Все протокольные транзакции представляются в форме триплетов "атрибут-размер-значение". Новые атрибуты могут добавляться без нарушения работы существующих реализаций протокола [3].
Работу протокола Radius можно описать как последовательность действий, совершаемых тремя субъектами: пользователем, клиентом и сервером.
Шаг 1. Клиент направляет пользователю приглашение на вход в систему, а именно, запрашивает логин и пароль.
Шаг 2. Пользователь вводит идентификационную информацию.
Шаг 3. Клиент получает от пользователя его идентификационные данные.
Шаг 4. Клиент создает пакет Access-Request (запрос доступа), который содержит:
- регистрационное имя пользователя;
- пароль;
- идентификатор клиента и порта (PortID), который кодируется с помощью алгоритма RSAMD5.
Шаг 5. Клиент передает сформированный запрос доступа Access-Requestсерверу Radius через сеть.
Шаг 6. Клиент ожидает отклик от сервера, при его отсутствии - возврат к шагу 5.
Шаг 7. Сервер Radius, получив запрос доступа от клиента, осуществляет проверку данного клиента, а именно проверяет наличие с ним разделяемого ключа.
Шаг 8. В случае отсутствия разделяемого ключа с клиентом, передавшим запрос доступа, данный запрос отбрасывается без уведомления.
Шаг 9. В случае наличия разделяемого ключа с клиентом сервер обращается к базе данных о пользователях.
Шаг 10. Сервер осуществляет поиск в базе данных указанного в запросе имени и проверяет корректность данных.
Шаг 11. В случае некорректности пользовательского запроса, сервер передает клиенту отклик Access-Reject.
Шаг 12. В случае корректности пользовательского запроса сервер передает клиенту отклик Access-Accept (доступ разрешен), который содержит список всех конфигурационных параметров для данного пользователя [4].
Алгоритм обработки клиентского запроса сервером Radius представим в виде структурной схемы алгоритма, изображенной на рис. 1.
Динамика реализации угроз непосредственного и удаленного доступа к элементам информационно-телекоммуникационной системы в современных условиях представляет собой динамический сложный процесс, в связи с тем, что в данных системах присутствует множество параллельных процессов, выполнение которых влияет на реализацию определенных действий [5].
Следовательно, для описания процесса реализации исследуемых угроз предпочтительно использовать модели, построенные на сетях Петри, что позволит рассматривать реализацию параллельных процессов с определением временных и статистических характеристик.
Моделирующие возможности сетей Петри и их эффективность в приложениях объясняются прежде всего тем, что сеть Петри - это интеграция графа и дискретной динамической системы, она может служить, таким образом, и статической, и динамической моделью представляемого с ее помощью объекта. Несомненным достоинством сетей Петри является математически строгое описание модели. Это позволяет проводить их анализ с помощью современной вычислительной техники [6].
Получен запрос на установление соединения
Отправлен запрос
на ввод идентификатора
да
Проверка корректности идентификатора
Требуется доп. инф ?
Установление соединения
Конец ^
Рис. 1. Структурная схема алгоритма обработки клиентского запроса
При использовании теоретико-множественной нотации сеть Петри может быть формально определена как N = (^, T, I, O, ц). Здесь P = - конечное множество позиций, где p— комплект позиций состояний системы; T = - конечное множество переходов, где комплект переходов, характеризующих процессы в системе, а маркировка сети используется для определения очередности запуска того или иного перехода [7].
Поскольку сеть Петри (СП) является ориентированным двудольным мультиграфом, то любой переход соединяется с позициями через входные и выходные дуги, которые задаются через функцию предшествования B: T — P и через функцию следования E: T —> P, являющиеся отображениями из множества переходов в комплекты позиций. Эти функции определяют комплекты позиций, связанных с переходом через множество дуг.
Множество позиций можно представить как объединение двух пересекающихся множеств:
Р = ЮО.ШО = 0, где комплект входных позиций перехода:
Разрыв соединения
и 'to), 'to)
= {pí:5(pí,t;)>1,¿ = 1.....ft},
7 = 1
у = 1, ...,m; комплект выходных позиций перехода:
o = Qo(ty), 0(ty)
7 = 1
= > 1,1 = 1.....й},
У = 1, ...,т.
Введем обозначения: !£#- кратность входящих в переход и выходящих из него дуг; ц0 -начальное состояние СП, которое также называется начальной маркировкой. Маркировка есть функция, отображающая множество позиций Р в множество неотрицательных целых чисел ЫМ: $ = {ц: Р ^ 'а£}. Начальная маркировка ц0 (как и текущая маркировка ц, которая соответствует некоторому состоянию сети в текущий момент модельного времени) определяется как множество цр), число компонентов которого равно числу позиций сети, а значение /-го компонента - это натуральное число, которое определяет количество маркеров в позиции.
Срабатывание возбужденного перехода, являющееся локальным действием и ведет к изменению маркировки сети. Поэтому если в сети задана начальная маркировка, при которой хотя бы один переход возбужден, то в ней начинается движение маркеров, отображающее смену состояний сети. Переход может сработать, если выполняется соотношение:
рг е /(£,): ц(рг) > ((р£,/(£,)) -
Переход, для которого выполняется это условие, называется возбужденным. Здесь запись да(рг,/(£;))означает количество маркеров в позиции во входном комплекте перехода, которое должно превышать кратность входных дуг перехода. При срабатывании перехода маркировка изменяется на маркировкуц' (рг), определяемую соотношением [6]:
Ц (рг) = ц(Рг) - (р£,/(^;)) + (Рг,°(^7))-
Из последнего выражения видно, что количество маркеров, которое переход изымает из своих входных позиций, может не равняться количеству маркеров, которое этот переход помещает в свои выходные позиции, так как не обязательно, чтобы число входных дуг перехода равнялось числу его выходных дуг.
Если в сети одновременно возбуждено несколько переходов, то порядок их срабатывания не определен и, следовательно, активизация возбужденного перехода в сетях Петри может произойти через любой конечный промежуток времени после его возбуждения. Неопределенность времени активизации возбужденного перехода позволяет проанализировать все возможные комбинации смены состояний сети, так как исследуемая система, не является полностью известной, т.е. часто не хватает достоверных данных о ее функционировании, либо эти данные в принципе не могут быть получены [7,8].
Моделирование в сетях Петри осуществляется на событийном уровне. Определяются, какие действия происходят в системе, какие состояние предшествовали этим действиям и какие состояния примет система после выполнения действия. Выполнения событийной модели в сетях Петри описывает поведение системы. Анализ результатов выполнения может сказать о том, в каких состояниях пребывала или не пребывала система, какие состояния в принципе не достижимы. Однако, такой анализ не дает числовых характеристик, определяющих состояние системы [7].
Формальное описаниепротокола Radius с помощью аппарата сетей Петри выглядит следующим образом:
1) конечное множество позиций:
P = {pi, Р2, Рз, Р4, P5, Рб, P7, P8, P9, Pl0, Pll, Pl2, Pl3, Pl4, Pl5, P16, Pl7, Pl8, Pl9, P20, Pli, P22, P23, P24, P25, P26, P27}.
2) конечное множество переходов:
T={tb /ь ^ t4, t5, fe H ^ t10, tll къ t13, t14, ^ t1б, t17, t18, t19, ¿20, hh t22, t23, t24, t25, t26}-
3) множество входных позиций перехода:
I={I(tl), Ш I(t3), I(t4), I(t5) ,I(t) I(t7) ,Ш I(t9)
,I(tl0) ,I(tll), I(tl2), I(tl3), I(tl4), I(tl5), I(tl6), I(tl7), I(tl8), I(tl9), I(t20), I(t2l), I(t22), I(t23), Ifa), Ifa) ,I(WY
Рис. 2. Сеть Петри, моделирующая алгоритм работы протокола Radius
I(ti) = {pi}, I(t2) = {p2, p4}, Щ) = &}, I(t4) = {p6}, I(t5) = {pi}, I(t<) = {p%}, I(tl) = {p9, pW}, I(t8) = {p„}, I(t9) = {pil}, I(tw) = {pu}, I(tu) = {pl2},
I(tn) = {p2, pi4}, I(tU) = {pi5}, I(ti4) = {pi6, pii},
I(tl5) = {pi8}, I(tl6) = {pis}, I(tll) = {pi9}, I(tl8) = {pi9}, I(tl9) = {p2l}, I(t20) = {p22}, I(t2l) = {p23},I(t22) = {pi8}, I(t23) = {p24}, I(t24) = {p25}, I(t25) = {p25}, I(he) = {p2e}.
4) множество выходных позиций перехода:
О = {0(t,), О(Ы О(Тз), O(t4), O(t5), O(t6)
O(ti), O(t) O(t9), O(tlo), O(tll), O(tl2), O(tl3)
O(tl4), O(tl5), O(tl6), O(tli), O(tl), O(tl9), O(t2o)
O(t2l), O(t22), O(t23), O(t24), O(t25), O(t^, O(hi)}.
O(tl) = p}, O(t2) = {p5}, O(t3) = {p6}
O(t4) = {pi}, O(t5) = {pg}, O(t(¡) = {p9, plo} O(ti) = {pll}, O(t8) = {-}, O(t9) = {pl2}, O(tlo) = {pl4}
O(tll) = {pl3}, O(hz) = {pl5}, O(tl3) = {pl6, pli}
O(tl4) = {pu}, O(tl5) = {pl9}, O(tl6) = {-}
O(tli) = {p2l}, O(tl8) = {p20}, O(tl9) = {p22} O(t2l) = {pl}, O(t22) = M
O(t24) = {p26}, O(t25) = {-}
O(t2o) = {p23}, O(t23) = {p25},
O(t26) = {p2i}.
5) начальная маркировка:
Ц0 = {1, да,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0, 0, 0, 0, 0}
Содержание компонентов модели протокола Radius представлено в таблице.
Содержание компонентов модели протокола Radius
Обозн. Описание
элемента
pl,p2,ps Начальное состояние
?4 Сформирован и отправлен запрос на вход в систему
p5 Получен и обработан запрос на вход в систему
p6 Получен запрос на ввод идентифицирующей информации
p7 Введена и отправлена идентифицирующая информация
p8 Получена идентифицирующая информация (пакет Access-Request)
p9 Разделяемый ключ не найден
p10 Разделяемый ключ найден
pii Обработаны результаты поиска разделяемого ключа
p12 Сформирован отклик об отсутствии разделяемого ключа
pis Получен отклик об отсутствии разделяемого ключа
pi4 Сформирован запрос к базе данных сервера Radius
Продолжение таблицы
pi5 Базой данных получен запрос от сервера
pi6 Идентифицирующая информация найдена в базе данных
pi7 Идентифицирующая информация не найдена в базе данных
pi8 Обработаны результаты поиска идентифицирующей информации
pi9 Сервером получено сообщение «данные корректны»
p20 Сформирован отклик Access-Accept (доступ разрешен)
p2i Сформирован пакет Access-Challenge (запрос доп. идентиф. инф.)
p22 Получен пакет Access-Challenge
p23 Обработан запрос Access-Challenge
p24 Сформировано сообщение «данные некорректны»
p25 Получено сообщение «данные некорректны»
p26 Сформировано уведомление об отказе в обслуживании
p27 Получено уведомление об отказе в обслуживании
tl Формирование и отправка запроса на вход в систему
t2 Подготовка сервера к взаимодействию (обработка запроса на вход в систему)
t3 Формирование и отправка запроса на ввод идентифицирующей информации
t4 Ввод идентифицирующей информации
t5 Процесс отправки серверу идентифицирующей информации (пакета Access-Request)
t6 Поиск разделяемого ключа
ti Обработка результата поиска разделяемого ключа
t8 Отброс без уведомления
t9 Формирование уведомления об отказе в обслуживании
tlo Формирование запроса к базе данных
tll Отправка клиенту сообщения об отказе в обслуживании
tl 2 Подготовка базы данных к взаимодействию (обработка запроса от сервера)
tl3 Поиск идентифицирующей информации в базе данных
tl4 Обработка результатов поиска идентифицирующей информации
tl 5 Формирование и отправка серверу сообщения «данные корректны»
tl6 Отброс без уведомления
tli Формирование пакета Access-Challenge (запрос доп. идентиф. инф.)
tl 8 Формирование отклика Access-Accept (доступ разрешен)
Окончание таблицы
t19 Отправка клиенту пакета Access-Challenge
t20 Обработка запроса Access-Challenge
t21 Подготовка к повторному соединению, отправка клиенту запроса на ввод доп. идентиф. инф.
t22 Формирование уведомления «данные некорректны»
t23 Отправка на сервер сообщения «данные некорректны»
t24 Формирование уведомления об отказе в обслуживании
t25 Отброс без уведомления
t26 Отправка клиенту уведомления об отказе в обслуживании
Для исследования различных вариантов возможного развития вычислительного процесса на сетевой модели протокола Radius введем понятия некоторых свойств сетей Петри и проанализируем построенную сеть.
1) Безопасность.
Позиция pieP называется безопасной в заданной начальной маркировке ц, если в процессе работы этой сети в данной позиции pi никогда не появится более одной фишки (маркера), то есть ц^) < 1. Сеть Петри называется безопасной, если безопасны все ее позиции [6].
Из данного определения можно сделать вывод, что сеть Петри, моделирующая протокол клиент-серверного взаимодействия, является небезопасной, поскольку в позициях данной сети происходит накопление фишек.
2) Ограниченность.
Позиция pieP называется ограниченной в заданной начальной маркировке ц, если в процессе работы этой сети в данной позиции р^икогда не появится более k маркеров, то есть ц(рг) < к. Сеть Петри называется ограниченной, если ограничены все ее позиции [6].
Сеть Петри, моделирующая процесс взаимодействия клиентов с сервером Radius, является неограниченной, так как ц(р2) = ц(р3) = то есть сервер и база данных готовы постоянно взаимодействовать с клиентами в порядке очередности поступления заявок.
3) Устойчивость.
Сеть Петри называется устойчивой, если для любого ее перехода tieT выполняется следующее условие: состояние возбуждения этого перехода не может быть снято срабатыванием другого какого-либо перехода. Если в сети имеются альтернативные переходы, то она является неустойчивой [6].
В сети, моделирующей процесс взаимодействия клиента с сервером Radius, имеются альтернативные переходы, например переходы t8, t9, t10, следовательно, данная сеть является неустойчивой.
4) Достижимость.
Маркировка ц' называется достижимой из некоторой маркировки ц, если для данной модели сети
Петри можно указать такую последовательность срабатывания переходов, которая переводит маркировку ц в маркировку ц' [6].
Дерево достижимости сети Петри, изображенной на рисунке 1, представлено на рисунке 3.
5) Активность.
Переход tieT называется активным в заданной начальной маркировке ц, если для любой маркировки ц', достижимой из ц, можно указать цепочку срабатывания переходов, которая привод к возбуждению перехода ti.. Сеть называется активной в заданной начальной маркировке ц, если активны все ее переходы [6].
Сеть Петри, моделирующая процесс взаимодействия клиентов с сервером Radius, является активной, так как все ее переходы активны, а состояния достижимы при начальной маркировке ц и можно указать цепочку срабатывания переходов, которая приведет в то или иное состояние. Например, в состояние p20 приводит цепочка срабатывания переходов {t1, t2, t3, t4, t5,
fe ^ ^ ^^^ t13, ^^^ ^ t18}.
Итак, анализ свойств построенной модели показывает, что сеть Петри, моделирующая процесс клиент-серверного взаимодействия по протоколу Radius, является небезопасной, неограниченной, неустойчивой и активной. Также данная сеть обладает свойством достижимости.
so
i
1 S21
Рис. 3. Дерево достижимости сети, моделирующей работу протокола Radius
В работе представлена модель протокола клиент-серверного взаимодействия Radius с помощью аппарата сетей Петри. Моделирование было произведено с помощью программы Pipe 3.0.
Динамическая сетевая модель протокола Radius имеет математически строгое описание, поз-
воляющие анализировать процесс взаимодействия трех субъектов информационных отношений, а именно клиента, сервера и базы данных клиентов, выявлять дефекты функционирования подсистемы разграничения доступа к глобальным сетям Radius и осуществлять поиск рациональных настроек на основе сетевой динамической модели.
Анализ свойств построенной модели показывает, что построенная сеть является небезопасной, неограниченной, неустойчивой, активной и достижимой для всех маркировок.
В ходе работы также произведен анализ механизма аутентификации как такового и компонент для односторонней и одноразовой аутентификации при использовании клиент-серверной технологии; доказано, что протокол клиент-серверного взаимодействия Radius уязвим к DOS-атакам различного рода, в связи с чем, требуется модификация протокола.
Литература
1. Золотов, С.Н. Протоколы Internet / С.Н. Золо-тов. - СПб.: BHV-Санкт-Петербург, 2002. - 212 с.
2. Олифер, В.Г. Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. -СПб: Издательство "Питер", 2000. - 672 с.
3. RFC 2865 - Протокол Radius (перевод на русский язык), 2000. - 32 с.
4. Таненбаум, Э. Распределенные системы. Принципы и парадигмы / Э. Таненбаум. - Спб.: Питер, 2003. - 877 с.
5. Кулаков, В.Г. Модели процессов реализации угроз и противодействий им в информационно-телекоммуникационных системах (региональный аспект) / В.Г. Кулаков, Ю.Г. Бугров, А.Г. Остапенко. - Воронеж, 2003. - 136 с.
6. Питерсон, Дж. Теория сетей петри и моделирование систем: Пер. с англ. / Дж. Питерсон - М.: Мир, 1984. - 244 с.
7. Зыбарев, Ю.М. Спецификация и моделирование распределенных информационных систем на основе сетей Петри / Ю.М. Зыбарев, Е.Ю. Зыбарев, С.П. Чернев // Проблемы информатики. - 2008. - № 1. С. 17-21.
8. Радько, Н.М. Риск-модели информационно-телекоммуникационных систем при реализации угроз удаленного и непосредственного доступа / Н.М. Радько, И.О. Скобелев. - М.: РадиоСофт, 2010. - 232 с.
9. Подвальный, С.Л. Многоальтернативность как основа обеспечения интеллектуальности систем управления [Текст] / С. Л. Подвальный, Т. М. Леденева // Вестник Воронежского государственного технического университета. - 2012. - Т. 8. - № 11. - С. 17-23.
10. Подвальный, С.Л. Концепция многоальтернативного управления открытыми системами: истоки, состояние и перспективы [Текст] / С. Л. Подвальный, Е. М. Васильев // Вестник Воронежского государственного технического университета. - 2013. - Т. 9. - № 2. - С. 4-20.
Тамбовский государственный технический университет
SYNTHESIS OF DYNAMIC MODEL ACCESS ISOLATION SUBSYSTEM RADIUS Yu.Yu. Gromov, A.V. Yakovlev, O.M. Yakovleva, Yu.V. Minin
Analysis of access control subsystem Radius. The main functional requirements for it in modern information systems. Considered step by step to fulfillment of the protocol and shows a block diagram of its operation. Network dynamic model is presented verbally and formally taking into account features implemented protocol processing algorithm discussed client request server. We give a complete description of the model, including position descriptions , transitions , initial marking network and reachability tree marking
Key words : access, reachability tree , threat, authentication