Протокол аутентификации
Kerberos определяет взаимодействие между
клиентом и
сетевым сервисом аутентификации, известным как KDC (Key Distribution
Center). В
Windows NT KDC используется как сервис аутентификации на всех
контроллерах доме-
на. Домен Windows NT эквивалентен области Kerberos, но к ней обращаются
как к доме-
ну. Реализация протокола Kerberos в Windows NT основана на определении
Kerberos в
RFC1510, Клиент Kerberos реализован в виде ПФБ (поставщика функций
безопасности)
Windows NT, основанном на SSPI. Начальная аутентификация Kerberos
интегрирована с
процедурой WinLogon. Сервер Kerberos (KDC) интегрирован с существующими
служба-
ми безопасности Windows NT, исполняемыми на контроллере домена. Для
хранения ин-
формации о пользователях и группах он использует службу каталогов
Active Directory.
Протокол Kerberos усиливает существующие функции безопасности Windows
NT и
добавляет новые:
− повышенная скорость аутентификации при установлении начального
соединения
(сервер приложений не обращается к контроллеру домена для
аутентификации клиента);
− делегирование аутентификации в многоярусных архитектурах
клиент-сервер
(при подключении клиента к серверу, последний имперсонирует
(олицетворяет) клиента
в этой системе, но если серверу для завершения транзакции нужно
выполнить сетевое
подключение к другому серверу, протокол Kerberos позволяет делегировать
аутентифи-
кацию первого сервера и подключиться ко второму от имени клиента);
− транзитивные доверительные отношения для междудоменной
аутентификации
(т.е. пользователь может быть аутентифицирован в любом месте дерева
доменов) упро-
щают управление доменами в больших сетях с несколькими доменами.
Основы Kerberos. Протокол Kerberos является протоколом аутентификации с
совме-
стным секретом – и пользователю, и KDC известен пароль (KDC
– зашифрованный па-
роль). Kerberos определяет серию обменов между клиентами, KDC и
серверами для по-
лучения билетов Kerberos. Когда клиент начинает регистрацию в Windows
NT, постав-
щик функций безопасности Kerberos получает начальный билет Kerberos TGT
(Ticket
grantticket), основанный на зашифрованном представлении пароля. Windows
NT хранит
TGT в кэше билетов на рабочей станции, связанной с контекстом
регистрации пользова-
теля. При попытке клиентской программы обратиться к сетевой службе
проверяется кэш
билетов: есть ли в нем верный билет для текущего сеанса работы с
сервером. Если такого
билета нет, на KDC посылается запрос с TGT для получения сеансового
билета, разре-
шающего доступ к серверу.
Сеансовый билет добавляется в кэш и может впоследствии быть использован
по-
вторно для доступа к тому же самому серверу в течение времени действия
билета. Время
действия билета устанавливается доменными правилами и обычно равно
восьми часам.
Если время действия билета истекает в процессе сеанса, то поставщик
функций безопас-
ности Kerberos возвращает соответствующую ошибку, что позволяет клиенту
и серверу
обновить билет, создать новый сеансовый ключ и возобновить подключение.
Сеансовый билет Kerberos предъявляется удаленной службе в сообщении о
начале
подключения. Части сеансового билета зашифрованы секретным ключом,
используемым
совместно службой и KDC. Сервер может быстро аутентифицировать клиента,
проверив
его сеансовый билет и не обращаясь к сервису аутентификации, так как на
сервере в кэше
хранится копия секретного ключа. Соединение при этом происходит гораздо
быстрее,
чем при аутентификации NTLM, где сервер получает мандаты пользователя,
а затем про-
веряет их, подключившись к контроллеру домена.
Сеансовые билеты Kerberos содержат уникальный сеансовый ключ, созданный
KDC
для симметричного шифрования информации об аутентификации, а также
данных, пере-
даваемых от клиента к серверу. В модели Kerberos KDC используется в
качестве инте-
рактивной доверенной стороны, генерирующей сеансовый ключ.
Интеграция Kerberos. Протокол Kerberos полностью интегрирован с
системой безо-
пасности и контроля доступа Windows NT. Начальная регистрация в Windows
NT обес-
печивается процедурой WinLogon, использующей ПФБ Kerberos для получения
началь-
ного билета TGT. Другие компоненты системы, например, Redirector,
применяют интер-
фейс SSPI к ПФБ Kerberos для получения сеансового билета для удаленного
доступа к
файлам сервера SMB.
Взаимодействие Kerberos. Протокол Kerberos версии 5 реализован в
различных сис-
темах и используется для единообразия аутентификации в распределенной
сети.
Под взаимодействием Kerberos подразумевается общий протокол, позволяющий
учетным записям аутентифицированных пользователей, хранящимся в одной
базе осуще-
ствлять доступ ко всем сервисам в гетерогенной среде. Взаимодействие
Kerberos осно-
вывается на следующих характеристиках:
− общий протокол аутентификации пользователя или сервиса по
основному имени
при сетевом подключении;
− возможность определения доверительных отношений между областями
Kerberos
и создания ссылочных запросов билетов между областями;
− поддержка определенных в RFC 1510 требований к взаимодействию,
относящих-
ся к алгоритмам шифрования и контрольных сумм, взаимной аутентификации
и другим
возможностям билетов;
− поддержка форматов маркера безопасности Kerberos версии 5 для
установления
контекста и обмена сообщениями.
Поддержка Kerberos открытых ключей. В Windows NT также реализованы
расши-
рения протокола Kerberos, поддерживающие дополнительно к аутентификации
с совме-
стно используемым секретным ключом аутентификацию, основанную на парах
открыто-
го (закрытого) ключа. Поддержка открытых ключей позволяет клиентам
запрашивать
начальный ключ TGT с помощью закрытого ключа, в то время как KDC
проверяет запрос
с помощью открытого ключа, полученного из сертификата Х.509 (хранится в
пользова-
тельском объекте в каталоге Active Directory), Сертификат пользователя
может быть вы-
дан как сторонним уполномоченным сертификации (Certification
Authority), так и
Microsoft Certificate Server, входящим в Windows NT. После начальной
аутентификации
закрытым ключом используются стандартные протоколы Kerberos для
получения сеансо-
вых билетов на доступ к сетевым службам,