Rambler's Top100

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

Карта сайта

 

Обобщенный алгоритм работы серверных модулей систем Pseudo-SSO

© Кирилл Аверченко, Сергей Панасенко, 2011.

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

В настоящее время пользователи ресурсов часто сталкиваются с ситуацией, когда необходимо запоминать большое количество аутентифицирующей информации (прежде всего, паролей) для доступа к различным ресурсам сети. Нередко такая необходимость приводит к тому, что пользователь либо записывает учетные данные на бумаге или в компьютерном файле, либо использует одни и те же данные для доступа к разным ресурсам. Оба этих варианта снижают безопасность и могут позволить злоумышленнику получить доступ ко многим ресурсам при компрометации аутентифицирующей информации на одном из них.
В этом случае может помочь единая аутентификация. Схема работы данной технологии довольно проста. Пользователь один раз аутентифицируется на сервере, а далее этот сервер аутентифицирует пользователя при обращении к нужным ресурсам.
Широко известными примерами реализаций единой аутентификации являются протокол OpenID, использующийся в LiveJournal, и сервис Windows Live ID, который позволяет получить доступ ко многим ресурсам Microsoft.
Системам единой аутентификации и их реализациям посвящено множество работ. Приведем некоторые из них в качестве примера.

  1. В работе [1] рассматривается возможность использования мобильной связи для аутентификации в системах SSO.
  2. Работа [2] посвящена использованию доверенного аппаратного и программного обеспечения в системах единой аутентификации с помощью дополнительного криптографический модуля, в котором хранится ключ RSA.
  3. В работе [3] рассматриваются методы обеспечения безопасной работы пользователя в системах SSO из недоверенных мест, таких как интернет-кафе или терминалы в аэропорту.
  4. Авторы работы [4] рассматривают принципы аутентификации в веб-сервисах с использованием языка SAML (Security Assertion Markup Language) [5].
  5. В работе [6] предложен протокол аутентификации с использованием интеллектуальных (оснащенных операционной системой, позволяющей запускать различные приложения, в том числе, программы электронной подписи) банковских карт стандарта EMV.

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

Системы Pseudo-SSO

Понятие Pseudo-SSO было введено в работе [7], авторы которой представили классификацию систем SSO, разделив их на две основные категории:

Основная особенность Pseudo-SSO систем состоит в том, что они, однократно аутентифицировав пользователя, в дальнейшем, при необходимости доступа пользователя к какому-либо ресурсу системы, лишь используют некие учетные данные (скажем, логин и пароль), соответствующие аутентифицированному пользователю, для доступа к требуемому ресурсу. Схема Pseudo-SSO системы приведена на рис. 1.
Основное отличие систем True SSO от Pseudo-SSO заключается в том, что True SSO компонент представляет собой аутентифицирующий сервис (Authentication Service Provider – ASP), который активно участвует в обмене аутентифицирующей информацией между пользователем и ресурсами (рис. 2). Кроме того, в системах True SSO отношение «учетные данные/сервис» может быть «многие ко многим». Таким образом, пользователь потенциально может выбрать один из нескольких идентификаторов для данного сервиса, а также этот идентификатор может быть использован для нескольких сервисов.
В следующем разделе представим обобщенный механизм работы Pseudo-SSO систем.

Обобщение алгоритма работы систем Pseudo-SSO

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

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

где:

N – количество пользователей системы;
Ui – идентификатор i-го пользователя;
Ai – набор информации, необходимой для аутентификации i-го пользователя на компоненте Pseudo-SSO;
{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-му ресурсу.

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

Этап 1. Первичная аутентификация пользователя (рис. 4):

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

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

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

Литература:

  1. A. Pashalidis, C. Mitchell, Using GSM/UMTS for Single Sign-On. // http://citeseerx.ist.psu.edu, 2003.
  2. A. Pashalidis, C. Mitchell. Single Sign-On using Trusted Platforms. // Материалы VI международной конференции ISC 2003, Bristol, UK, октябрь 2003: Lecture Notes in Computer Science, т. 2851, с. 54-68.
  3. A. Pashalidis, C. Mitchell. Impostor: A Single Sign-On System for Use from Untrusted Devices. // http://citeseerx.ist.psu.edu, 2004.
  4. K. D. Lewis, J. E. Lewis. Web Single Sign-On Authentication using SAML. // International Journal of Computer Science Issues, № 2, 2009, с. 41-48.
  5. Security Assertion Markup Language (SAML). // http://xml.coverpages.org/saml.html. February 23, 2010.
  6. A. Pashalidis, C. Mitchell. Using EMV cards for Single Sign-On. // http://www.isg.rhul.ac.uk, 2004.
  7. A. Pashalidis, C. Mitchell. A Taxonomy of Single Sign-On Systems. Материалы международной конференции ACISP 2003: Lecture Notes in Computer Science, т. 2727, с. 249-264.

Рисунки:

  1. Схема системы Pseudo-SSO.
  2. Схема системы True SSO.
  3. Данные, используемые сервером Pseudo-SSO.
  4. Первый этап аутентификации.

Ключевые слова: единая аутентификация, Pseudo-SSO, авторизация.