Криптография, защита компьютерных данных: информация, исследования, аналитика, экспертиза

Rambler's Top100

OZON.ru

Перейти на главную страницу

Карта сайта

Список статей

Единая аутентификация в распределенных компьютерных системах

© Сергей Панасенко, 2010.

Распределенные системы защиты могут решать множество различных задач. В настоящее время подавляющее большинство проблем защиты информации могут быть решены с помощью подобных систем, серверная («центральная») часть которых выполняет управление клиентскими устройствами или программными средствами и мониторинг их деятельности.
Распределенная система защиты может быть частью более масштабной клиент-серверной системы, решающей какие-то иные задачи. Рассмотрим частный случай, когда распределенная система защиты представляет собой систему защиты от несанкционированного доступа (НСД) на компьютеры, на которых установлены клиентские модули системы управления базами данных (СУБД).
В данном случае пользователь системы вынужден проходить несколько уровней аутентификации, например:

При более сложной схеме распределенной компьютерной системы количество процедур аутентификации пользователя для получения доступа к тому или иному сервису может быть существенно выше. Следовательно, во избежание потерь рабочего времени на данные процедуры, необходимости запоминания паролей или хранения аутентифицирующих носителей и т. д., необходимо использовать механизм единой аутентификации (SSO – Single Sign-On) пользователя в рамках данной компьютерной системы.
Механизм SSO может быть реализован на базе сервера управления распределенной системой защиты. Общие принципы использования данного сервера для реализации SSO таковы:

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

Для реализации данных функций сервер управления должен содержать предварительно заданный набор информации Ii, который можно представить как совокупность следующих параметров для каждого i-го пользователя системы:

Ii = {Ui, Ai, {Si}}, i = 1…N,

где:

N – количество пользователей системы;
Ui – идентификатор i-го пользователя;
Ai – набор информации, необходимой для аутентификации i-го пользователя на сервере управления;
{Si} – совокупность наборов прав i-го пользователя на доступ к J целевым серверам, а также параметров, необходимых для аутентификации пользователя на данных целевых серверах:

Si,j = {Ui,j, Ai,j, Ri,j}, j = 1…J,

где:

Si,j – набор прав и параметров i-го пользователя по отношению к j-му целевому серверу;
Ui,j – идентификатор i-го пользователя на j-м целевом сервере;
Ai,j – информация, необходимая для прохождения аутентификации i-го пользователя на j-м целевом сервере;
Ri,j – множество прав пользователя по отношению к j-му целевому серверу.

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

Этап 1. Аутентификация пользователя при старте системы:

  1. Сервер управления проверяет введенный пользователем идентификатор и ищет запись о данном пользователе Ii по его идентификатору Ui, т. е. выполняет идентификацию пользователя.
  2. Сервер управления выполняет аутентификацию пользователя с помощью набора данных Ai.
  3. При ошибке на любом из двух предыдущих шагов аутентификация считается неуспешной.

Этап 2. Аутентификация i-го пользователя на j-м целевом сервере, выполняемая сервером управления по мере необходимости от имени пользователя:

  1. Сервер управления ищет в наборах {Si} записи о данном пользователе информацию о возможностях доступа пользователя к j-му целевому серверу (Si,j).
  2. Если набор Si,j не найден, пользователю отказывается в доступе к серверу.
  3. В найденном наборе проверяется соответствие множества запрошенных прав доступа R и множества прав пользователя по доступу к данному целевому серверу Ri,j: если R Вхождение Ri,j, то доступ разрешается, иначе – запрещается.
  4. Из набора Si,j выбирается идентификатор пользователя на целевом сервере и информация, необходимая для прохождения аутентификации {Ui,j, Ai,j}. Данная информация предъявляется j-му целевому серверу, в результате чего пользователь получает или не получает доступ к целевому серверу.

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