Протокол Kerberos
Протокол Kerberos используется в системах клиент-сервер для аутентификации и обмена ключевой информацией, предназначенной для установления защищенного канала связи между абонентами, работающими как в локальной сети, так и глобальных сетях. Данный протокол встроен в качестве основного протокола аутентификации в Microsoft Windows 2000 и в UNIX BSD.
Kerberos обеспечивает аутентификацию в открытых сетях, т. е. при работе Kerberos подразумевается, что злоумышленники могут производить следующие действия:
• выдавать себя за одну из легитимных сторон сетевого соединения;
• иметь физический доступ к одному из участвующих в соединении компьютеров;
• перехватывать любые пакеты, модифицировать их и (или) передавать повторно.
Соответственно, обеспечение безопасности в Kerberos построено таким образом, чтобы нейтрализовать любые потенциальные проблемы, которые могут возникнуть из-за указанных действий злоумышленников.
Kerberos разработан для сетей TCP/IP и построен на основе доверия участников протокола к третьей (доверенной) стороне. Служба Kerberos, работающая в сети, действует как доверенный посредник, обеспечивая надежную аутентификацию в сети с последующей авторизацией доступа клиента (клиентского приложения) к ресурсам сети. Защищенность установленных в рамках сессии Kerberos соединений обуславливается применением симметричных алгоритмов шифрования. Служба Kerberos разделяет отдельный секретный ключ с каждым субъектом сети, и знание такого секретного ключа равносильно доказательству подлинности субъекта сети.
Основу Kerberos составляет протокол аутентификации и распределения ключей Нидхэма—Шредера с третьей доверенной стороной. Рассмотрим эту версию протокола. В протоколе Kerberos (версия 5) участвуют две взаимодействующие стороны и доверенный сервер, выполняющий роль Центра распределения ключей.
Этот протокол успешно работает при условии, что часы каждого участника синхронизированы с часами сервера. Следует отметить, что в этом протоколе необходим обмен с сервером для получения сеансового ключа каждый раз. Протокол обеспечивает надежное соединение объектов при условии, что ни один из ключей не скомпрометирован и сервер защищен.
Система Kerberos имеет структуру типа клиент—сервер и состоит из клиентских частей, установленных на всех рабочих станциях пользователей и серверах сети, и сервера Kerberos, располагающегося на каком-либо (не обязательно выделенном) компьютере. Клиентами могут быть пользователи, а также независимые программы, выполняющие такие действия, как загрузка удаленных файлов, отправка сообщений, доступ к БД, доступ к принтерам, получение привилегий у администратора и т. п.
Сервер Kerberos KS, можно разделить на две части: сервер аутентификации AS (Authentication Server) и сервер службы выдачи мандатов TGS (Ticket Granting Service). Физически эти серверы могут быть совмещены. Информационными ресурсами, необходимыми клиентам, управляет сервер информационных ресурсов RS. Предполагается, что серверы службы Kerberos надежно защищены от физического доступа злоумышленников.
Сетевые службы, требующие проверки подлинности, и клиенты, которые хотят использовать эти службы, регистрируют в Kerberos свои секретные ключи. Kerberos хранит БД о клиентах и их секретных ключах. Наличие в этой БД секретных ключей каждого пользователя и ресурсов сети, поддерживающих этот протокол, позволяет создавать зашифрованные сообщения, направляемые клиенту или серверу; успешное расшифрование этих сообщений и является гарантией прохождения аутентификации всеми участниками протокола.
Kerberos также создает сеансовые ключи (session key), которые выдаются клиенту и серверу (или двум клиентам) и никому больше. Сеансовый ключ используется для шифрования сообщений, которыми обмениваются две стороны, и уничтожается после окончания сеанса.
Область действия системы Kerberos распространяется на тот участок сети, все пользователи которого зарегистрированы под своими именами и паролями в БД сервера Kerberos.
Укрупненно процесс идентификации и аутентификации пользователя в системе Kerberos версии 5 можно описать следующим образом.
Клиент С, желая получить доступ к ресурсу сети, направляет запрос серверу аутентификации AS. Сервер AS идентифицирует пользователя с помощью его имени и пароля и высылает клиенту мандат (ticket) на доступ к серверу службы выделения мандатов TGS (Ticket-Granting Service).
Для использования конкретного целевого сервера информационных ресурсов RS клиент С запрашивает у TGS мандат на обращение к целевому серверу RS. Если все в порядке, TGS разрешает использование необходимых ресурсов сети и посылает соответствующий мандат клиенту С.
Основные шаги работы системы Kerberos (см. рис. 13.10):
1. С —> AS — запрос клиента С к серверу AS разрешить обратиться к службе TGS.
2. AS —> С — разрешение (мандат) от сервера AS клиенту С обратиться к службе TGS.
3. С —> TGS — запрос клиента С к службе TGS на получение допуска (мандата) к серверу ресурсов RS.
4. TGS —> С — разрешение (мандат) от службы TGS клиенту С для обращения к серверу ресурсов RS.
5. С —> RS — запрос информационного ресурса (услуги) у сервера RS.
6. RS —> С — подтверждение подлинности сервера RS и предоставление информационного ресурса (услуги) клиенту С.
Данная модель взаимодействия клиента с серверами может функционировать только при условии обеспечения конфиденциальности и целостности передаваемой управляющей информации. Без строгого обеспечения информационной безопасности клиент С не может отправлять серверам AS, TGS и RS свои запросы и получать разрешения на доступ к обслуживанию в сети.
Чтобы избежать возможности перехвата и несанкционированного использования информации, Kerberos применяет при передаче любой управляющей информации в сети систему многократного шифрования с использованием комплекса секретных ключей (секретный ключ клиента, секретный ключ сервера, секретные сеансовые ключи пары клиент—сервер). Kerberos может использовать различные симметричные алгоритмы шифрования и хэш-функции.
На сегодняшний день протокол Kerberos является широко распространенным средством аутентификации. Kerberos может использоваться в сочетании с различными криптографическими схемами, включая шифрование с открытым ключом.
Эта статья была опубликована Пятница, 10 сентября, 2010 at 19:00 в рубрике Инфраструктура защиты на прикладном уровне. Вы можете следить за ответами через RSS 2.0 feed.