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

Ответом на эти требования практической жизни явилась концепция виртуальных «частных» сетей (Virtual Private Network, VPN), обеспечивающих взаимодействие между субъектами на основе виртуальных каналов в существующих открытых компьютерных сетях [1-3].

Одним из важных вопросов при организации VPN является обеспечение надежной идентификации и аутентификации замкнутой группы авторизованных пользователей. В последнее время функции идентификации и аутентификации пользователей на VPN, в основном, осуществляется при помощи Kerberos-приложений, построенных на основе технологии клиент/сервер [4]. Согласно этой технологии VPN разбивается на Kerberos-области, в каждой из которых создается сервер аутентификации для обеспечения санкционированного доступа авторизованных пользователей к разрешенным информационным ресурсам.

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

Следует подчеркнуть, что несмотря на растущий интерес к VPN-технологии, многие вопросы, связанные с ее организацией и практическим применением, остаются не решенными [3]. Одним из серьезных вопросов в этом направлении является разработка эффективных методов и алгоритмов для повышения «живучести» VPN, гарантирующих, что авторизованные пользователи при различных отказах серверов аутентификации за минимальное время получат доступ к запрашиваемым ресурсам [5-7].

Формализованное представление VPN при помощи разомкнутой стохастической сети

Предположим, что в составе VPN образованы серверы аутентификации и к каждому из них прикреплена определенная группа авторизованных пользователей из множества U, т.е. при условии, что Ui З Uj= Ж,i j.

В свою очередь, каждое подмножество Ui состоит из пользователей uki. Другими словами, , еni=1ni=m, m>n.

Естественно, что все серверы из S выполняют идентичные функции при аутентификации, т.к. они осуществляют единую политику безопасности в VPN. Теперь в качестве критерия эффективности функционирования VPN при аутентификации примем T0 – среднее время обслуживания запросов пользователей при работоспособном состоянии всех серверов из S.

Допустим, что VPN представлена в виде экспоненциальной разомкнутой стохастической сети из конечного числа одноканальных систем массового обслуживания (СМО), характеризующихся постоянной, не зависящей от состояния сети интенсивностью l0 на выходе источника запросов S0 [8].

Здесь интенсивность l0 известна и является параметром сети. Запросы из источника S0 поступают в сеть с постоянной вероятностью . Запросы, обслуженные СМО Si с постоянной вероятностью Pij поступают в СМО Sj,j=-1-,-n- или покидают сеть (j=0) , т.е. возвращаются в источник запросов. Очевидно, что должно выполняться равенство:

Рассмотрим трансформацию входящего потока запросов с интенсивностью l0 к входам составляющих сеть CMO для установившегося режима. Обозначим через коэффициент передачи (трансформации) входящего потока запросов к входу СМО Si, количественно равный среднему числу появлений произвольного запроса из входящего потока сети во входящем потоке CMO Si.

Тогда интенсивность входящего потока СMO Si может быть выражена через интенсивность l0, т.е. . С другой стороны, по определению, доля клиентов в интенсивности l0 из множества Ui будет равна:

(1)

где lkii – интенсивность запросов клиента uki к серверу-CMO Si. Распространяя формулу (1) на все подмножества получим, что:

Поскольку рассматривается сеть без потерь, интенсивности выходящих потоков CMO Si, i= ,совпадают с интенсивностями их входящих потоков. Интенсивность потока CMO Si, j= , равна сумме долей потоков, поступающих из источника запросов и от других CMO сети:

С учетом формул (1) и (2), а также Si,li=ai lo преобразуем формулу (3) в нижеприведенную систему линейных неоднородных алгебраических уравнений относительно коэффициентов передач ai, i= , которая имеет единственное решение:

Отсюда можем определить среднее время T0 обслуживания запросов клиентов:

T0 = еni=1aiti, (5)

где - среднее время обслуживания запросов в СМО .

По условиям постановки задачи mi = m для всех СМО.

Оптимизационная модель для обеспечения отказоустойчивости VPN

Теперь переходим к составлению оптимизационной модели, являющейся основой метода повышения отказоустойчивости VPN при аутентификации авторизованных пользователей.

Предположим, что состояния всех серверов S определяются вектором:xk=1(k),...,xi(k),...xn(k), где xi(k)=0, если сервер Si работоспособен,xi(k)=1 в противном случае. Известно, что количество таких векторов равно 2n. Из данного количества таких векторов нас не интересуют состояния <0,0,...,0>, когда все серверы находятся в работоспособном состоянии и <1,1,...,1>, когда все серверы вышли из строя. Другими словами, , где N=2n-2 .

Суть задачи заключается в том, что администратор безопасности VPN, при отказах некоторых серверов при состоянии xk распределяет их по работоспособным серверам, исходя из определенных ограничений. Например, так как эти серверы находятся на расстоянии друг от друга, то требуются определенные затраты при их распределении.

Допустим, что затраты, требуемые для переключения пользователя uki к работоспособному серверу S составляют Ckij, i,j = . Далее объемы памяти сетевых средств, на базе которых реализованы серверы S, обозначим Vimax, i=. Фактический объем памяти, необходимый для организации сервера Sj, равен Vj, j=.

Теперь, для распределения отказавших серверов Si при векторе xk состояний по функционирующим серверам Sj введем псевдобулевую переменную xij(k). Здесь xij(k)=1, если пользователи Ui отказавшего сервера Si переключены к серверу Sj для аутентификации и xij(k)=0 в противном случае. Отметим, что все пользователи Ui при каждом состоянии xk подключаются только к одному функционирующему серверу.

Исходя из вышеизложенного, а также формул (4) и (5) приводим оптимизационную модель:

где применяя формулы aj и tj для состояний xk получаем, что:

при ограничениях

Ограничение (11) означает, что при распределении отказавших серверов Si по функционирующим серверам Sj при векторе xk суммарные затраты не должны быть больше заданного значения С. Неравенство (13) позволяет сформулировать ограничение сверху на интенсивность входящего потока сети l0 из условия существования установившегося режима в разомкнутой стохастической сети.

Алгоритм решения оптимизационной задачи

Как видно из модели (6) – (13), она относится к классу задач дискретного программирования с псевдобулевыми переменными [9,10]. Прежде чем разработать соответствующий алгоритм, пригодный для практического пользования при создании и функционировании виртуальных частных сетей оценим сложность вычисления по данной модели при полном переборе всех вариантов.

Известно, что m неисправных серверов аутентификации можно выбрать из n серверов Cnm способом. При этом, остаются n – m функционирующих сервера. По условиям модели (6) – (13), пользователей каждого отказавшего сервера необходимо прикрепить к одному из (n – m) функционирующих серверов аутентификации. Очевидно, что при заданном количестве m отказавших серверов, общее число u(n,m) вариантов распределения их по (n-m) функционирующим серверам будет равно:

q(n,m)=Cnm(n-m).(n-m).....(n-m)=Cnm(n-m)m

Распространяя данную формулу на все значения m, где 1Ј m Јn-1, можно определить сложность вычисления u(n) модели (6) – (13):

Очевидно, что полным перебором решить эту задачу практически невозможно [11]. Поэтому, при решении таких задач необходимо стремиться к эффективному частичному перебору сравнительно малого числа допустимых вариантов и неявному перебору остальных.

Этой цели служит алгоритм по модели (6) – (13), основанный на методе ветвей и границ и учитывающий специфику рассматриваемой задачи.

Введем обозначения:

.

Очевидно, что Jk = Ik = N\Ik, где N={1,2,...,n}.

Здесь дерево ветвления строится следующим образом. Подмножество первого уровня разбиения формируем, фиксируя соответствие первого сервера из Ik различным серверам из Jk{X1,X2,...,Xj1,...,Xjk}. Множество Xj1 включает в себя все варианты, где первый сервер из Ik прикрепляется к серверу j1 О Jk, а распределение остальных серверов из Ik по серверам Jk произвольное.

Аналогично формируем множество второго уровня, фиксируя соответствие второго сервера из Ik различным серверам из Jk. Множество Xj1j2 включает в себя все варианты решений, где первый сервер из Ik прикреплен к серверу j2 О Jk, а второй сервер к серверу j2 О Jk, а остальные серверы из Ik имеют произвольное распределение по серверам Jk и т.д.

Для каждого из подмножеств (вершин дерева) необходимо построить оценки целевой функции (6) и ограничений. Общее выражение оценки целевой функции для множества вариантов Xj1j2...jm...ji в данной задаче может быть построено следующим образом:

Здесь V(Xj1j2...jm...jl)– оценка целевой функции для подмножества вариантов, причем для l первых параметров алгоритмы принятия решений выбраны и равны j1,j2,...,jl, а для остальных параметров i=l+1,l+2,...,Ik выбор определенного распределения не сделан. Оценка целевой функции принимается во внимание, если справедливы следующие оценки для ограничений:

Ниже приводится описание непосредственно алгоритма решения:

Шаг 0. Начало.

Шаг 1. Ввод исходных данных: число серверов – n; затраты переключения пользователей сервера Si на сервер Sj – Cij,i=, j= максимальные объемы памяти технических средств, на базе которых реализованы серверы, – Vjmax, j= фактические объемы памяти серверов – Vj, j=; вероятности поступления запросов от сервера Si к серверу SjPij, i=1,n, j=0,nвычисление вероятностей Poi, i=.

Шаг 2. Генерация очередного вектора состояний Xk. Определяются номера функционирующих (отказавших) серверов – множество I0 (I1, соответственно).

Шаг 3. Выбирается первый неприкрепленный сервер из множестваI1.

Шаг 4. Вычисление «остаточной интенсивности обслуживания» для каждого сервера из множества I0. «Остаточная интенсивность» определяется как разность между интенсивностью обслуживания m и суммой интенсивностей запросов от рассматриваемого сервера и прикрепленных к нему серверов. Если интенсивность запросов выбранного сервера из I1 больше любой «остаточной интенсивности», то переходим к шагу 10. В противном случае выбирается номер первого сервера из I0, «остаточная интенсивность обслуживания» которого больше интенсивности запроса выбранного сервера из I1. Номер очередного отказавшего сервера из I1 и номер выбранного функционирующего сервера в виде пары (i,j) заносится в список распределения.

Шаг 5. Проверяется выполнение условий (11) и (12) для выбранного промежуточного распределения. Если не выполняется хотя бы одно из условий, то переходим к шагу 10, в противном случае к следующему шагу.

Шаг 6. Если рассмотренный сервер j является последним в множестве I1, то переходим к очередному шагу, в противном случае к шагу 10.

Шаг 7. Решив систему уравнений (7) методом простых итераций, находим aj, j=, вычисляем tj, j1,n и Tk по формулам (8) и (6), соответственно. Так как в формуле (8)

то, условие сходимости итераций выполняется.

Шаг 8. Проверяем выполнение условия (13). Если условие не выполняется, то переходим к шагу 10, в противном случае переходим к следующему шагу.

Шаг 9. Если имеется уже вычисленное значение минимального времени обслуживания – TMIN, то сравниваем его с новым значением Tk. Если TMINk, то переходим к следующему шагу, в противном случае, а также в случае отсутствия значения TMIN, положим TMIN=Tk и запоминаем распределение серверов.

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

Шаг 11. Если имеется значение TMIN, то выводится на дисплей (принтер) найденное распределение отказавших серверов по функционирующим серверам. Если значение TMIN не имеется, то для этого состояния Xk распределение невозможно и выводится соответствующее сообщение об этом. Если число рассмотренных состояний меньше чем 2n–2, то увеличив это число на единицу переходим к шагу 2, в противном случае – к шагу 12.

Шаг 12. Конец.

Количество серверов аутентификации, n Сложность вычисления модели по полному перебору, qa(n) Сложность вычисления модели по предлагае-мому алгоритму, qa(n) Показатель эффективности алгоритма, q(n)/qa(n)
3 9 6 1,5
4 40 24 1,7
5 195 80 2,4
6 1056 330 3,2
7 6321 1276 5,0
8 41392 5744 7,2
9 293607 21962 13,4
10 2237920 96910 23,0
11 18210092 668654 27,2

Сложность вычисления qa(n) приведенного алгоритма по сравнению со сложностью q(n) вычисления модели при полном переборе всех вариантов, как видно из таблицы, намного ниже и с увеличением количества серверов аутентификации в VPN его эффективность, выраженная через q(n)/qa(n) повышается.

Отметим, что включение ограничений (11 – 13) приводит к тому, что не при всех векторах состояний Xk, k=1,N будут существовать оптимальные планы распределений отказавших серверов по функциони-рующим. В этом случае принимаются оперативные меры по выходу из таких состояний, а именно, смягчаются требования ограничений: увеличиваются объемы памяти соответствующих технических средств , серверы заменяются на более мощные и, наконец, увеличивается значение С в ограничении (11).

Заключение

Применение предложенного алгоритма позволяет сформировать оптимальный план распределения отказавших серверов Si по работающим Sj в виде матрицы ||Xij(k)||, что может составить основу функционального блока принятия решений при чрезвычайных ситуациях в составе администратора безопасности VPN.

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

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

Литература

1. Салливан К. Прогресс технологии VPN. PCWEEK/RE, №2, 26 января 1999, с.16.
2. Штайнке С. VPN между локальными сетями. LAN/Журнал сетевых решений. Октябрь 1998, том 4, №10, сс.86-93.
3. Фратто М. Секреты виртуальных частных сетей. Сети и системы связи, №3 (25), 1998, сс.138-148.
4. Вьюкова Н. Сервер аутентификации Kerberos. Открытые системы, 1 (15)/96, сс.44-50.
5. Аббасов А.М., Алгулиев Р.М. Об одном методе повышения отказоустойчивости виртуальных частных сетей. Известия АН Азербайджана, том XVIII, (2, 1998, сс.158-162.
6. R.Alguliev. Reliability of Distributed Servers Authentification, Safety Functioning Within the Framework of Uniform Policy. Proceedings of International Conference on Informational Networks and System. ICINAS-98. 7-12 September 1998, St.Petersburg, pp. 9-16.
7. Алгулиев Р.М. О некоторых математических моделях обеспечения отказоустойчивости распределенных серверов аутентификации, функционирующих в рамках единой политики безопасности. Известия АН Азербайджана, том XVIII, (4-5, 1997, сс. 242-249.
8. Клейнрок Л. Вычислительные системы с очередями.М.:Мир, 1979.
9. Сергиенко И.В. Математические модели и методы решения задач дискретной оптимизации. Киев: Наукова думка, 1988.
10.Корбут А.А., Финкельштейн Ю.Ю. Дискретное программирование. М.: Наука, 1969.
11.Гери М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982.