Представленные в статье материалы работы посвящены важным вопросам построения сложных гибких систем аутентификации. С проблемами взаимной аутентификации пользователей любой открытой системы непременно сталкиваются разработчики. Дополнительным достижением работы является практическая реализация системы аутентификации, основанной на протоколе «Kerberos» в виде программного продукта.
Materials described in current article dedicated to important issues of complex flexible authentication systems. A developer of similar open systems certainly faces issues of mutual principal authentication. Additional achievement of current work is practical implementation of authentication system, based on the «Kerberos» protocol as a software product.
Введение
На сегодняшний день универсальные системы аутентификации получили широкое распространение в информационно-вычислительных сетях. Причиной этого является непрерывный рост требований к защищенности и масштабируемости информационно-телекоммуникационных систем. В течение длительного времени основной проблемой при построении открытых информационно-вычислительных систем, которые предоставляли бы разный набор услуг, в зависимости от полномочий пользователя, была организация масштабируемости и гибкости системы аутентификации и подсистемы регулирования доступа к услугам. Еще одной из нетривиальных задач при построении таких систем была организация кроссистемного взаимодействия, т.е. предоставление пользователям услуг системы взаимодоверенной для данной. Протокол "Kerberos" предназначен для организации централизованной системы аутентификации в информационной среде, ориентированный в основном на клиент-серверную архитектуру, предлагает механизм взаимной аутентификации двух собеседников (хостов) перед установлением связи между ними в условиях незащищенного канала.
Общие сведения
В своей основе протокол Kerberos ставит перед собой реализацию следующих принципов:
Пароль пользователя никогда не должен передаваться по сети.
Пароль пользователя ни в какой форме не должен храниться на клиентской машине: он должен быть ликвидирован сразу после использования.
Пароль пользователя не должен храниться в незашифрованном виде даже в базе данных аутентификации (authentication server database).
Пользователь вводит пароль только один раз за сессию. Таким образом, пользователи имеют доступ ко всем сервисам, на которые они авторизованы, без необходимости заново вводить пароль во время сессии. Это свойство также известная как Single Sign-On.
Управление аутентификацией осуществляется централизованно сервером аутентификации. Прикладные серверы, предоставляющие услуги, не должны содержать аутентификационных данных пользователей. Это важно для централизованного администрирования учетных записей пользователей; не сохраняется избыточная информация аутентификации на различных серверах; при изменении пользователем пароля, он одновременно меняется для всех предоставляемых услуг.
Не только пользователи обязаны подтвердить, что они являются теми, кем заявляют, но и прикладные серверы должны подтвердить свою идентичность пользователям. Этот процесс называется Взаимная аутоинтефикация.
После завершения этапов аутентификации и авторизации, клиент и сервер должны иметь возможность установить зашифрованную связь. С этой целью Kerberos поддерживает генерацию и обмен ключей шифрования.
В основу Kerberos положен протокол Нидхэма-Шредера. В качестве доверенного третьей стороны выступает Центр Распределение Ключей.
Рис. 1. Диаграмма взаимодействия между субъектами системы
(Key Distribution Center (KDC)), состоящий из двух логически разделенных частей: Сервера Аутентификации (Authentication Server (AS)) и Сервера Выдачи Билетов (Ticket Granting Server, (TGS)). Kerberos работает на основе "билетов", которые используются для подтверждения идентичности пользователей.
Упрощенное описание субъектов процесса аутентификации выглядит следующим образом:
Клиент, приглашает(запрашивает) услугу (Client)
Сервер Аутентификации (Authentication Server (AS)
Сервер Выдачи Билетов (Ticket Granting Server, (TGS))
Прикладной сервер, предоставляющий услуги (Application Server (APP))
Клиент проходит аутентификацию в AS с помощью длительного совместного секрета и получает билет от AS. Позже клиент использует билет для получения дополнительных билетов для прикладного сервера без необходимости использования общего секрета. Эти билеты подтверждают аутентификацию для прикладного сервера.
Анализ
Системы аутентификации, реализующие или базирующихся на протоколе «Kerberos» являются довольно распространенными, в то же время большинство из них являются закрытыми, проприетарными дорогими программными продуктами
На момент составления анализа можно выделить следующие наиболее важные реализации и случаи использования протокола:
MIT Kerberos
KTH Kerberos
Heimdal Kerberos
GNU Shishi
mod_auth_kerb
pam_krb5
Microsoft Kerberos
Реализация в составе Apple Mac OS X
Реализация в составе Red Hat Linux 4
Solaris Kerberos Service
Разработка системы аутентификации
Kerberos – это протокол аутентификации доверенных абонентов при не доверенных сетях. Учитывая алгоритм механизма аутентификации, назначения и наиболее частые случаи использования данного протокола, наиболее целесообразной формой его реализации является программный комплекс Kerberos Authentication System (далее ПК "KAS"), состоящий из логически и физически независимых компонентов.
Учитывая современные тенденции в области разработки программного обеспечения, в качестве платформы для разработки и функционирования ПО используется Microsoft. NET Framework 4.0.
Программный комплекс состоит из двух принципиально отличных частей: клиентской и серверной. Серверная часть, в свою очередь, делится на следующие компоненты:
Центр распространения ключей
Прикладной сервер
Состав клиентской части:
Модуль взаимодействия с сервером
Фронтенд с графическим интерфейсом
Рассмотрим подробнее центр распространения ключей. Его функционирование обеспечивается тремя компонентами:
Сервер аутентификации
Сервер предоставления билетов
База данных
Программный комплекс включает две дополнительные программы для упрощенной регистрации пользователей и сервисов, обслуживаемых системой аутентификации:
Инструмент регистрации пользователей
Инструмент регистрации сервисов
Все компоненты программного комплекса могут развиваться как на одном компьютере, так и на любом количестве компьютеров, объединенных в сеть. При разработке программного комплекса, одной задач было достижение максимальной гибкости системы и независимости каждого из модулей от других настолько, насколько это возможно.
Логическая структура программного комплекса изображена в виде диаграммы слоев (Layer diagram) на рис. 2.
Исходя из условий поставленной задачи при разработке программного комплекса и возможностей выбранной платформы Microsoft. Net Framework 4.0, целесообразно разбить функциональные модули структурных компонент комплекса на CLR сборки, как элементарные часть повторного использования исполняемого кода в терминах. Net Framework.
База
данных центра
распространения ключей
является его
неотъемлемой частью.
Она предназначена для хранения
информации о
доступных
сервисах,
обслуживаемых
данным центром
распространения ключей,
а также
пользователям,
имеющим доступ
этих сервисов.
База данных
представляет собой
обособленный файл
СУБД Microsoft
SQL Server 2008 R2.
Это позволяет,
при
необходимости экспортировать
Kerberos Authentication System
со всеми
настройками и
данными о
сервисах и
пользователей. Подключение
к базе данных
центра распространения
ключей и доступ
к операциям,
соответствующим образом
манипулируют данными
осуществляется с помощью
разделенных
модулей доступа
к БД.
Выводы
В работе были рассмотрены, как структура системы аутентификации, построена на основе протокола «Kerberos», так и процессы, происходящие при аутентификации пользователя. Краткий анализ существующих реализаций уменьшил время на выполнение задачи разработки собственной реализации системы аутентификации на базе протокола рассматривается.
Результатом выполнения этой задачи является программный комплекс «Kerberos Authentication System», что в принципиальной мере реализует протокол аутентификации «Kerberos». Разработанный программный комплекс может быть использован как в учебно-демонстрационных целях, так и стать основой для полнофункциональной, гибкой системы аутентификации.
Рис. 2. Структура программного комплекса
Рис. 3. Упрощенная диаграмма последовательности обмена сообщениями
Литература:
RFC 1510. The Kerberos Network Authentication Service (V5). Request for Comments: 1510. J. Kohl, C. Neuman, Digital Equipment Corporation.
RFC 4120. The Kerberos Network Authentication Service (V5). Request for Comments: 4120. T. Yu, S. Hartman, K. Raeburn, MIT, 2005.
USC/ISI Technical Report number ISI/RS-94-399. Kerberos: An Authentication Service for Computer Networks. B. Clifford Neuman, Theodore Ts'o, 1994 Microsoft Kerberos SDK Team. УДК 004.457.