ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 28.04.2024
Просмотров: 44
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Если же нет, то клиент получает новое сообщение, говорящее о произошедшей ошибке.
Получив сообщение, клиент расшифровывает свою часть для получения Сессионного Ключа клиента или TGS. Этот сессионный ключ используется для дальнейшего обмена с сервером TGS. (Важно: Клиент не может расшифровать TGT, так как оно зашифровано секретным ключом TGS) В этот момент у пользователя достаточно данных, чтобы авторизоваться на TGS.
Авторизация клиента на TGS:
Для запроса сервиса клиент формирует запрос на TGS (TGS_REQ) содержащий следующие данные:
-
TGT, полученный ранее и идентификатор сервиса. -
Аутентификатор (составленный из ID клиента и временного штампа), зашифрованный на Сессионном Ключе Клиент/TGS.
После получения TGS_REQ, TGS извлекает из него TGT и расшифровывает его используя секретный ключ TGS. Это дает ему сессионный ключ клиента или TGS. Им он расшифровывает аутентификатор. Затем он генерирует сессионный ключ клиент/сервис и посылает ответ (TGS_REP) включающий:
-
мандат сервиса (который содержит ID клиента, сетевой адрес клиента, метку времени KDC, время действия мандата и Сессионный Ключ клиент/сервис) зашифрованный секретным ключом сервиса. -
Сессионный ключ клиент/сервис, идентификатор сервиса и время жизни мандата, зашифрованные на сессионном ключе Client/TGS.
1 2 3 4 5 6 7
Запрос сервиса клиентом:
После получения TGS_REP, у клиента достаточно информации для авторизации на сервисе. Клиент соединяется с ним и посылает сообщение содержащее:
-
Зашифрованный мандат сервиса полученный ранее. -
Новый аутентификатор, зашифрованный на сессионном ключе клиент/сервис, и включающий ID клиента и метку времени.
Сервис расшифровывает мандат используя свой секретный ключ и получает сессионный ключ клиент/сервис. Используя новый ключ, он расшифровывает аутентификатор и посылает клиенту следующее сообщение для подтверждения готовности обслужить клиента и показать, что сервер действительно является тем, за кого себя выдает:
-
Метку времени, указанную клиентом + 1, зашифрованную на сессионном ключе клиент/сервис.
Клиент расшифровывает подтверждение, используя сессионный ключ клиент/сервис и проверяет, действительно ли метка времени корректно обновлена. Если это так, то клиент может доверять серверу и может начать посылать запросы на сервер.
Сервер предоставляет клиенту требуемый сервис.
Огромное значение для обеспечения надлежащего функционирования механизма Kerberos имеет процедура синхронизации времени. Если часы клиента, сервера или центра распространения ключей не синхронизированы, Kerberos не будет функционировать корректно. В соответствии со спецификацией Kerberos для защиты различных сообщений, от которых зависит работа протокола, используются отметки времени; когда часы в сети показывают разное время, билеты ошибочно аннулируются. По умолчанию AD позволяет часам уходить вперед или назад не более чем на пять минут. Именно поэтому синхронизация времени на компьютерах, взаимодействующих с использованием протокола
Kerberos, является необходимостью.
С помощью команды klist найдем билеты Kerberos
В параметрах отображаются следующие сведения.
-
билеты . перечисляет в настоящее время кэшированные билеты служб, с которыми вы прошли проверку подлинности, с момента входа. Отображает следующие атрибуты всех кэшированных билетов:-
Логонид: LUID. -
Клиент: Объединение имени клиента и имени домена клиента. -
Сервер: Объединение имени службы и имени домена службы. -
Тип шифрования кербтиккет: Тип шифрования, используемый для шифрования билета Kerberos. -
Флаги билета: Флаги билета Kerberos. -
Время начала: Время, в течение которого билет действителен. -
Время окончания: Время, когда билет стал недействительным. Если срок действия билета истек, он больше не может использоваться для проверки подлинности в службе или для продления. -
Время продления: Время, когда требуется новая Начальная проверка подлинности. -
Тип ключа сеанса: Алгоритм шифрования, используемый для ключа сеанса.
-
Клиент связывается со службой предоставления билета (TGS) и запрашивает билет для сервера, с которым он соединяется, до контакта с ним. Билет (ticket) — это запись, позволяющая клиенту аутентифицировать себя для сервера; этот просто сертификат, выдаваемый службой Kerberos. Билет зашифрован так, что только сервер-адресат способен расшифровать и прочи
тать его. Билет содержит идентификационные данные клиента-заказчика, штамп времени, сеансовый ключ серверов, срок годности билета, а также другие данные (вроде РАС) для идентификации клиента целевым сервером. Билет пригоден для многократного пользования, его срок службы обычно составляет 8 часов.
Очистить кэш Kerberos
Используем команду klist tgt
TGT — список первоначального TGT-билета Kerberos и следующие атрибуты кэшированного билета:
-
Текущий идентификатор входа: Указывается в шестнадцатеричном формате. -
Имя службы: krbtgt -
Имя корневого объекта: krbtgt -
Имя_домена: Имя домена, который выдает TGT. -
Имя конечного домена: Домен, которому выдан билет TGT. -
Имя альтернативно конечного домена: Домен, которому выдан билет TGT. -
Флаги билета: Адрес и целевое действие и тип. -
Ключ сеанса: Длина ключа и алгоритм шифрования. -
Время начала: Время на локальном компьютере, на которое был запрошен билет. -
Время окончания: Время, когда билет стал недействительным. Когда билет пройдет на этот раз, он больше не может использоваться для проверки подлинности в службе. -
Продлевать до: Крайний срок для продления билета. -
TimeSkev: Разница во времени с центр распространения ключей (KDC). -
Зашифрованный билет: Закодированный билет.
Используем команду klist tickets
Команда аналогична klist
Вывод:
Изучили процесс аутентификации пользователя с помощью доменной учетной записи и роль протокола Kerberos. С помощью команды klist нашли билеты Kerberos в локальном кэше, определили их назначение и свойства. Очистили кэш.