Реализация протокола Kerberos в Windows 2000-2003 со стандартами RFC 1510 и RFC 1964. Она может взаимодейство- вать с другими реализациями Kerberos, также совместимыми с RFC.
Поэтому клиенты Kerberos, использующие другие плат- формы, такие как UNIX, могут быть аутентифицированы Windows.
Ускоренная аутентификация при подключении
Серверам не нужно выполнять сквозную аутентификацию. Сервер Windows может проверять личность клиента по его би- лету без запроса к службе Kerberos. Это возможно потому, что клиент уже получил билет Kerberos от контролера домена и сер- вер может использовать его для построения маркера доступа клиента. Выполняя меньше работы при установлении соедине- ния, сервер может обработать большее число одновременно по- ступающих запросов.
Взаимная аутентификация
Kerberos обеспечивает взаимную аутентификацию клиента и сервера. Протокол аутентификации NTLM в Windows обеспе- чивает аутентификацию только клиента, предполагая, что все серверы надежны. Он не проверяет подлинность сервера, с ко- торым связывается клиент. Но предположение, что все серверы надежны, не вполне обосновано.
Делегирование аутентификации
Позволяет пользователю подключаться к серверу прило- жения, который в свою очередь может подключаться к одному или более серверам от имени клиента по удостоверению лично- сти клиента.
Транзитивные доверительные отношения
Удостоверение личности, выданное одной службой Ker- beros, действительно для всех служб Kerberos внутри домена.
Процесс аутентификации с помощью Kerberos
Заключается в согласующих обменах между клиентом и целевым сервером, а также между клиентом и KDC (рис. 8.10).
Рис. 8.10. Процесс аутентификации с помощью Kerberos
Процесс аутентификации с помощью Kerberos выполняет- ся следующим образом.
Пользователь посылает начальный AS-запрос компо- ненту AS службы Kerberos. AS содержит основное имя клиента и основное имя сервера, для которого запрашивается билет.
Служба Kerberos генерирует AS-ответ и посылает его клиенту.
Ответ содержит:
TGT для компонента TGS службы Kerberos. TGT зашиф- ровывается секретным ключом TGS и содержит SID пользова- теля. При этом клиент неспособен изменить данные SID;
сеансовый ключ для обмена с компонентом TGS служ- бы Kerberos. Этот ключ шифруется закрытым ключом пользова- теля, который вычисляется по паролю клиента и сходен с сеан- совым ключом, используемым в системе NTLM. Это затрудняет взлом сеансового ключа.
Клиент генерирует и посылает TGS-запрос, содержащий основные имена клиента и соединяемого сервера, а также TGT, идентифицирующий клиента.
Компонент TGS службы Kerberos генерирует и посыла- ет клиенту TGS-ответ с билетом для соединяемого сервера. Би- лет шифруется секретным ключом сервера, который вычисляет- ся по паролю, создаваемому при включении сервера в домен. Ответ содержит и другие данные, в частности, сеансовый ключ.
Клиент извлекает сеансовый ключ для соединяемого сервера и генерирует для этого сервера запрос, содержащий имя соединяемого сервера и аутентификатор, зашифрованный сеан- совым ключом. Клиент посылает этот запрос серверу по уста- новленному способу передачи.
Сервер расшифровывает билет, используя свой секрет- ный ключ для получения сеансового ключа. Затем сервер с по- мощью сеансового ключа расшифровывает аутентификатор, удостоверяющий личность клиента. Если клиент запросил вза- имную аутентификацию, сервер генерирует ответ, зашифрован- ный сеансовым ключом, и посылает его клиенту. Взаимная аутентификация не только аутентифицирует клиента для серве- ра, но и сервер для клиента.
Обмены AS и TGS со службой Kerberos происходят по протоколу UDP через порт 88. Обмены между клиентом и сер- вером зависят от протокола, используемого этими двумя участ- никами безопасности.
Делегирование в Kerberos
Иногда серверу приложения требуется соединиться с дру- гим сервером от имени клиента.
Как и олицетворение, делегирование позволяет обеспечить надлежащие права доступа, следующие из запроса сервера при- ложения.
Kerberos поддерживает делегированную аутентификацию. Этот тип аутентификации применяется, когда клиент обращает- ся к нескольким серверам. При этом каждый сервер получает свой билет и аутентифицирует билет запрашиваемого сервера от имени клиента.
Ограничений на длину цепочки серверов, делегирующих аутентификацию, не накладывается. В этом отличие от олице-
творения, при котором сервер получает доступ к удаленным ре- сурсам со стороны клиента (рис. 8.11).
Рис. 8.11. Процесс делегирования в Kerberos
Доступ к ресурсам с участием двух серверов осуществля- ется следующим образом.
Клиент запрашивает и получает билет для сервера А от службы Kerberos.
Клиент посылает билет на сервер А.
Сервер А посылает запрос, олицетворяя клиента, на службу Kerberos для получения билета для сервера В. Служба Kerberos высылает для клиента билет на сервер В.
Затем сервер А посылает этот билет серверу В, получая к нему доступ в качестве клиента.
Do'stlaringiz bilan baham: |