ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 24
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
1. Общая информация и принципы работы протокола.
Протокол аутентификации Kerberos (Цербер) был создан в середине 80-ч годов в Массачусетском технологическом университете в рамках проекта Athena для сетей TCP/IP. Версии Kerberos с 1 по 3 изначально были реализованные для внутреннего использования и являлись свободно распространяемым программным продуктом (кроме криптографических модулей), что позволяло разработчикам прикладных систем и системным администраторам работать с «прозрачным» инструментом, работающим понятным и проверяемым способом. Пятая версия протокола Kerberos, была принята в качестве стандарта IETF для сети Internet написанную в RFC 1510. Основным отличием 4-й и 5-й версии является разные алгоритмы шифрования. В четвертой версии применяются алгоритмы DES с длиной ключа в 56 бит. Пятой - благодаря присоединяемому к шифрованной части блока информации идентификатору типа шифрования, имеется возможность использовать RC4, DES алгоритмы, MD5Hash алгоритм хеширования, при этом DES алгоритм поддерживает режим CBC (сцепленных шифровальных блоков) и многое другое.
При разработке протокола разработчики руководствовались следующими основными требованиями:
1. Защита. Злоумышленник с целью имитации другого пользователя, имеющий возможность перехвата сообщения в сети, не может получить необходимую информацию.
2. Надежность. Заключается в недоступности сервера Kerberos запрашиваемой службы (сервиса).
3. Прозрачность. Клиент (пользователь) не должен замечать каких-либо внешних проявлений процедуры аутентификации, кроме первоначального ввода пароля.
4. Масштабируемость. Система должна поддерживать большое (увеличивающееся) количество клиентов и серверов.
1.2 Аутентификация в операционных системах.
В виду того, что свое первое применение в ОЕМ Kerberos нашел в ОС Windows 2000, то и в качестве примера мы будем использовать эту операционную систему. В Windows 2000 поддерживается несколько протоколов, которые позволяют убедиться системе в том, что пытающийся войти в систему пользователь имеет свою учетную запись и соответствующие права. Это как протоколы аутентификации удаленных подключений, так и протоколы аутентификации пользователей, входящих в сеть через Интернет. Внутри же корпоративных сетей, где реализована доменная система управления сетью для проверки пользовательских данных имеется два протокола:
1) Windows NW LAN Manager (NTLM) – протокол, применяемый как стандартное средство сетевой аутентификации в операционной системе Windows NT 4.0. В ОС Windows 2000 он используется для аутентификации серверов и доменов Windows NT 4.0. Так же, NTLM применяется локальной аутентификации на автономных компьютерах. Компьютеры с ОС Windows 3.11, Windows 95, Windows 98, Windows NT 4.0 могут использовать протокол NTLM для сетевой аутентификации в доменах Windows 2000, однако, когда есть выбор в среде Windows 2000 по умолчанию будет использоваться второй протокол- Kerberos
2) Kerberos v. 5 является стандартным средством аутентификации сетевых пользователей в Active Directory домене на компьютерах с ОС Windows 2000 и выше.
Основное отличие протокола Kerberos от NTLM заключается в большей гибкости, большей эффективности и повышенном уровне обеспечения безопасности. Далее следует перечислить перечень конкурентных преимуществ более детально.
-
Цербер реализует более эффективную аутентификацию на серверах.
В отличии от процесса аутентификации по протоколу NTLM серверу приложений не нужно подключаться к контроллеру домена каждый раз при проверке каждого пользователя. Kerberos производит аутентификацию за счет проверки «удостоверения», предоставленного клиентом, которое он получает от контроллера домена единожды, после чего может многократно использовать его на протяжении всего сеанса работы в сети.
2. Kerberos реализует такую полезную функцию как взаимная аутентификация. Протокол NTLM позволяет идентифицировать своих клиентов, но не предусматривается верификации сервера ни клиентами, ни другими серверами, то есть допускает, что все серверы сети по умолчанию легитимные. В отличии от NTLM, Kerberos такого допущения не делает, в следствие чего проверяет обоих участников сетевого сеанса, каждый из которых может точно знать, с кем осуществлено подключение.
3. Делегирование аутентификации. В момент обращения клиента сети Windows к ресурсам, службы операционной системы сначала производят его идентификацию. Обычно, для выполнения вышеуказанной процедуры службе достаточно информации содержащейся на локальном компьютере. Оба протокола обеспечивают все данные, необходимые для идентификации пользователя на месте, но иногда этих данных бывает недостаточно. Некоторые распределенные приложения требуют, чтобы при запросах к серверным службам на других компьютерах идентификация клиента производилась локально службой самого клиента. В Kerberos предусмотрен механизм «представительских мандатов», который позволяет на месте идентифицировать клиента при его подключении к другим системам. NTLM не позволяет реализовать подобный сценарий.
4. Одним из основных достоинств механизма взаимной аутентификации, реализуемого протоколом Kerberos, является упрощенное управление доверительными отношениями, что означает, что доверительные отношения между доменами Windows 2000 по умолчанию являются двусторонними и транзитивными, в следствие чего в сетях с множеством доменов не приходится устанавливать множество явных доверительных отношений. Реализуется это как бы сведением всех доменов большой сети в дерево транзитивных отношений взаимного доверия, то есть удостоверение, выданное системой безопасности одного любого домена, может приниматься во всех ответвлениях дерева, если сеть содержит несколько «деревьев», то удостоверение любого из них будет приниматься в любых других «деревьях».
5. Широкая распространенность Kerberos 5, обеспечивает повсеместную совместимость протокола. Благодаря подходу использования стандартных спецификаций, рекомендованных группой IETF, аутентификация клиентов Windows 2000 возможна во всех сетях, поддерживающих Kerberos.
1.3 Основные принципы работы протокола Kerberos
В основе процесса аутентификации, реализованном в протоколе, лежит схема идентификации по принципу «общей тайны». Упрощенно схема аутентификации в виде определения выглядит следующим образом: если существует секрет известный только двоим, то любой из владеющих этим секретом может легко удостовериться, что имеет дело со втором хранителем этого секрета. Достаточно доподлинно установить, что напарник знает вашу «общую тайну».
Развернем это определение в объектно-прикладную плоскость. Например, двое человек, Елена часто направляет в адрес Стива некие сообщения, причем Стив использует содержащуюся в них информацию лишь в том случае, когда полностью уверен, что сообщение поступило именно от Алёны. Для этой цели они условились использовать пароль, которые знают только они двое. То есть если из текста сообщения можно сделать вывод о том, что отправитель знает общий пароль, то Стив может точно сказать: сообщение пришло от Алёны. Далее следует понять и решить, каким образом подтвердить своё знание пароля. Самым простым и очевидным решением выглядит включение пароля в текст сообщения в условленном месте, например “Dear, Steve!$SharedPAssword”, и действительно, это было бы идеальным решением при условии, что никто другой не может прочитать их переписку, однако почта передается по сети, что подразумевает наличие других пользователей, среди которых есть некто Эдвард, большой любитель анализировать сетевой траффик своим самописным анализатором пакетов в надежде перехватить чей-либо «общий секрет». Тем самым вся очевидность и удобность вышеизложенного решения сходит на нет, чтобы общий пароль оставался секретным, о нем не следует говорить открыто, нужно опосредованно дать знать напарнику, что он тебе известен.
Вот мы и подошли к сути: данная проблема решается использованием протокола Kerberos с помощью средств криптографии (использованием секретного ключа) и доверенного посредника. Но обо всем по порядку.
1.4 Аутентификация (аутентификаторы)
Одним из основных средств защиты информационных систем является механизм аутентификации, как один из самых важных элементов безопасности. Современные информационные системы – множество территориально рассредоточенных составляющих. В большинстве случаев пользователям информационной системы требуется доступ не к одному сервису. Суть механизма аутентификации по секретному ключу можно описать следующим образом:
- некий пользователь стучится в сетевую дверь некого сервера и просит разрешения на вход. Чтобы пользователю доказать, что он именно тот, за кого себя выдает и имеет право на вход ему следует предъявить аутентификатором (authenticator), который с учетом рассматриваемой нами темы является зашифрованным с помощью секретного ключа специальным блоком информации. При этом информация, содержащаяся в этом блоке должна меняться при каждом последующем сеансе работы в сети, иначе предполагаемый злоумышленник получает возможность воспользоваться перехваченным аутентификатором (атака повторного воспроизведения). Получив аутентификатор, «привратник» расшифровывает его и проверяет полученную информацию, чтобы убедиться в успешности дешифрования. При условии, что всё прошло нормально, «привратник» удостоверяется, что пользователю, предъявившему аутентификатор известен секретный ключ, а так как это ключ знают лишь двое – один из них «привратник», то вполне справедливо сделать вывод, что стучащийся именно тот человек, за кого себя выдает. Возможен так же механизм взаимной аутентификации. В данном случае используется тот же принцип, но в обратном порядке и с некоторыми модификациями: «привратник» извлекает из исходного блока часть информации, а затем опять шифрует её, получая при этом новый аутентификатор и направляет его стучащемуся в дверь. Тот же расшифровывает полученную информацию и сравнивает её с исходной, если всё совпадает, то вывод получается следующим: если «привратник» расшифровал оригинал, значит он знает секретный ключ.
На сегодняшний день универсальные системы аутентификации получили широкое распространение в информационно-вычислительных сетях. Причиной этого является непрерывный рост требований к защищенности и масштабируемости информационно-телекоммуникационных систем. В течение длительного времени основной проблемой при построении открытых информационно-вычислительных систем, которые предоставляли бы разный набор услуг, в зависимости от полномочий пользователя, была организация масштабируемости и гибкости системы аутентификации и подсистемы регулирования доступа к услугам. Еще одной из нетривиальных задач при построении таких систем была организация кроссистемного взаимодействия, т.е. предоставление пользователям услуг системы взаимодоверенной для данной. Протокол "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 со всеми настройками и данными о сервисах и пользователей. Подключение к базе данных центра распространения ключей и доступ к операциям, соответствующим образом манипулируют данными осуществляется с помощью разделенных модулей доступа к БД.