Реализация метода защиты аутентификационных данных в многоуровневых приложениях | Прикладная дискретная математика. Приложение. 2009. № 1.

Реализация метода защиты аутентификационных данных в многоуровневых приложениях

The paper considers the peculiaritiesof authentication in multi-tier environment and corresponding security problems.A method for protecting DBMS credentials is provided. Some ways to implementation ofthe method using PHP programming language are considered.

Implementation of a method for protecting credentials in the multi-tier applications.pdf Многоуровневое (или N-уровневое) приложение - приложение, разделенное на Nсамостоятельных уровней, каждый из которых может выполняться на отдельной платформе.Типичным примером является трехуровневая архитектура, используемая ввеб-приложениях, где уровни распределены следующим образом:1) уровень представления - браузер;2) уровень приложения - программа, исполняемая на веб-сервере;3) уровень данных - СУБД.Применение трехуровневой архитектуры приводит к появлению нескольких звеньеваутентификации. В классическом двухуровневом приложении клиент аутентифицируетсяперед сервером. В трехуровневом приложении появляется второе звеноаутентификации - клиент аутентифицируется перед прикладным уровнем, а прикладнойуровень аутентифицируется перед СУБД. В современных веб-приложениях прикладнойуровень работает с СУБД от имени фиксированного числа пользователей(часто от имени одного пользователя). При использовании парольной аутентификациивозникает необходимость хранения аутентификационных данных (имен и паролей)пользователей СУБД на прикладном уровне. Данная проблема была рассмотренав работе [1], в которой было предложено несколько схем защиты аутентификационныхданных СУБД, хранимых на прикладном уровне. Предпочтительной для использованияявляется схема с использованием асимметричного шифра.Для реализации данной схемы был выбран язык программирования PHP. Программнаябиблиотека, реализующая схему с использованием асимметричного шифра,решает следующие задачи:1) реализацию рассмотренных в [1] алгоритмов управления пользователями;2) управление сеансами работы пользователей и подключениями к СУБД.Первая задача была решена с использованием библиотеки OpenSSL и базы данныхSQLite. OpenSSL предоставляет необходимые криптографические функции, а модульSQLite позволяет работать с локальным файлом как с SQL-совместимой базой данных.Так было организовано описанное в работе [1] хранилище учетных данных.Рассмотрим вторую задачу подробнее. Для этого опишем работу типичного вебприложения,разработанного с использованием языка программирования PHP.Браузер посылает веб-серверу HTTP-запрос. Веб-сервер запускает соответствующуюPHP-программу. Программа устанавливает соединение с СУБД, получает необходимые данные, закрывает соединение, оформляет полученные данные в виде HTML-страницы и передает последнюю веб-серверу. Веб-сервер отправляет страницу браузеру,как ответ на HTTP-запрос.Для работы такой системы прикладному уровню необходимы имя и пароль длядоступа к СУБД с целью обработки каждого запроса от браузера. Так как в рассматриваемойсхеме защиты для получения учетных данных СУБД необходим парольпользователя, то для обработки каждого запроса прикладному уровню понадобитсяпароль пользователя. Но пароль предъявляется пользователем только в начале сеансаработы. Для решения этой проблемы после аутентификации пользователя передприложением предлагается выполнить следующие действия:1. На прикладном уровне генерируется случайный ключ K симметричного шифрования.На время сеанса работы пользователя этот ключ хранится на сервере.2. С помощью ключа K шифруются учетные данные СУБД.3. Зашифрованные учетные данные СУБД отправляются браузеру в теле HTTP-ответа.Далее с каждым запросом браузер посылает веб-серверу зашифрованные учетныеданные для доступа к СУБД. Таким образом, пароль пользователя требуется тольков начале сеанса работы.Другой подход к решению рассматриваемой задачи заключается в использованиимеханизма постоянных соединений с СУБД. Такие соединения остаются открытымипосле окончания обработки запроса PHP программой. Но в стандартном программноминтерфейсе PHP для работы с постоянными соединениями имя пользователя и парольнеобходимы как для установления нового соединения, так и для получения доступа куже установленному [2]. Но фактически для работы с уже установленным соединениемимя и пароль для СУБД не нужны.На основе стандартного модуля PHP для СУБД MySQL был реализован модуль,позволяющий получать доступ к уже установленному соединению без имени пользователяи пароля. В этом модуле функция установки соединения с СУБД возвращаетидентификатор, который можно использовать для получения соединения с СУБД приобработке последующих запросов.При использовании парольной аутентификации прикладному уровню необходимыимя и пароль пользователя СУБД в открытом виде для установления соединения сСУБД. В большинстве веб-приложений эти данные хранятся в открытом виде постоянно.Рассматриваемая схема позволяет хранить учетные данные для доступа к СУБДв закрытом виде и получать их в открытом только при необходимости.Реализация схемы с помощью только стандартных средств языка PHP не требуетспециального модуля для работы с СУБД и легче переносима на разные платформы.Но при использовании такой реализации учетные данные для доступа к СУБД«открываются» на прикладном уровне при обработке каждого запроса пользователя.Подход с применением специального модуля для работы с СУБД предоставляет болеевысокий уровень защиты, так как учетные данные для доступа к СУБД «открываются» только в начале сеанса работы пользователя. На данный момент такой модульреализован только для СУБД MySQL.

Ключевые слова

Авторы

ФИООрганизацияДополнительноE-mail
Паутов Павел АлександровичТомский государственный университетаспирант_ _Pavel_ _@mail.ru
Всего: 1

Ссылки

Паутов П. А. Проблема аутентификации в многоуровневых приложениях / / Прикладная дискретная математика. 2008. №2. С. 87-90.
Olson P. PHP Manual. 2009.
 Реализация метода защиты аутентификационных данных в многоуровневых приложениях | Прикладная дискретная математика. Приложение. 2009. № 1.

Реализация метода защиты аутентификационных данных в многоуровневых приложениях | Прикладная дискретная математика. Приложение. 2009. № 1.