logo
Протокол Kerberos

Аутентификация за пределами домена

Функции центра KDC можно разделить на две категории: службу аутентификации, в задачу которой входит генерация билетов TGT, и службу выдачи билетов, создающую сеансовые билеты. Такое разделение труда позволяет применять протокол Kerberos и за пределами его "родного" домена. Клиент, получивший билет TGT из службы аутентификации одного домена, может воспользоваться им для получения сеансовых билетов в службах выдачи билетов других доменов.

Чтобы лучше понять принцип междоменной аутентификации, рассмотрим для начала простейшую сеть, содержащую всего два домена - "Восток" и "Запад". Предположим, что администраторы этих доменов являются сотрудниками одной организации или у них есть какие-либо другие веские причины уравнять пользователей второго домена со своими собственными. В любом из этих случаев наладить аутентификацию между доменами нетрудно, для этого достаточно договориться о едином междоменном ключе (в Windows 2000 такой ключ генерируется автоматически, когда между доменами устанавливаются доверительные отношения). Как только ключ создан, служба выдачи билетов каждого домена регистрируется в центре KDC другого домена в качестве главного абонента безопасности. В результате служба выдачи билетов каждого из доменов начинает рассматривать службу выдачи билетов второго домена, как еще одну свою службу. Благодаря этому клиент, прошедший аутентификацию и зарегистрировавшийся в системе, может запрашивать и получать сеансовые билеты для нее.

А теперь рассмотрим, что происходит, когда пользователь с учетной записью в домене "Восток" запрашивает доступ к серверу из домена "Запад". Прежде всего, клиент Kerberos, установленный на рабочей станции этого пользователя, посылает запрос в службу выдачи билетов своего домена, в котором просит выдать сеансовый билет для доступа на нужный сервер. Служба выдачи билетов домена "Восток" проверяет список своих абонентов безопасности и убеждается, что такого сервера среди них нет. Поэтому она направляет клиенту так называемый билет переадресации (referral ticket), который представляет собой TGT, зашифрованный с помощью междоменного ключа, общего для служб KDC доменов "Восток" и "Запад". Получив билет переадресации, клиент использует его для подготовки другого запроса на сеансовый ключ. Однако на этот раз запрос пересылается в службу выдачи билетов того домена, где находится учетная запись нужного сервера, то есть, домена "Запад". Его служба выдачи билетов пытается расшифровать билет переадресации с помощью собственной копии междоменного ключа. Если попытка удается, центр KDC направляет клиенту сеансовый билет на доступ к соответствующему серверу своего домена.

Процесс переадресации запроса несколько усложняется в сетях, где развернуто более двух доменов. Теоретически служба KDC каждого домена может установить непосредственную связь с аналогичными службами всех доменов сети, договорившись с каждой из них об индивидуальном междоменном ключе. Однако на практике количество и сложность подобных взаимосвязей очень быстро возрастают до такой степени, что становятся просто неуправляемыми, особенно в сложных сетях. Протокол Kerberos решает эту проблему, делая ненужными прямые связи между доменами. Клиент одного домена может получить билет на доступ к серверу другого домена через один или несколько промежуточных серверов, каждый из которых выдаст ему билет переадресации.

В качестве примера рассмотрим сеть, состоящую из трех доменов: "Восток", "Запад" и "Штаб-квартира". В службе KDC домена "Восток" нет междоменного ключа для аналогичной службы домена "Запад", но центры распределения ключей обоих доменов наладили обмен билетами с доменом "Штаб-квартира". Когда пользователь с учетной записью в домене "Восток" хочет подключиться к серверу из домена "Запад", его запрос будет переадресован дважды. Сначала он пройдет через службу KDC "родного" домена, затем - через промежуточный домен "Штаб-квартира" и, наконец, достигнет центра распределения ключей домена "Запад", которому известен ключ нужного сервера. Таким образом, клиент здесь посылает сеансовые билеты трижды в три различные службы KDC.

1. Клиент запрашивает у службы KDC домена "Восток" билет на доступ к серверу домена "Запад". Служба KDC домена "Восток" направляет клиенту билет переадресации в службу KDC домена "Штаб-квартира", зашифрованный с междоменным ключом, общим для доменов "Восток" и "Штаб-квартира".

2. Клиент обращается в службу KDC домена "Штаб-квартира" с просьбой о билете на доступ к серверу домена "Запад". Служба KDC домена "Штаб-квартира" направляет клиенту билет переадресации в службу KDC домена "Запад", зашифрованный с междоменным ключом, общим для доменов "Штаб-квартира" и "Запад".

3. Клиент обращается в службу KDC домена "Запад" с просьбой о билете на доступ к серверу домена "Запад". Служба KDC домена "Запад" направляет клиенту билет на доступ к нужному серверу.