Единая аутентификация в распределенных компьютерных системах
© Сергей Панасенко, 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. Аутентификация пользователя при старте системы:
Этап 2. Аутентификация i-го пользователя на j-м целевом сервере, выполняемая сервером управления по мере необходимости от имени пользователя:
Таким образом, механизм единой аутентификации может быть реализован на базе сервера управления распределенной системой защиты.