Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
82
Добавлен:
17.04.2013
Размер:
352.26 Кб
Скачать

6.4. Сообщения Kerberos версии 5

В Kerberos версии 5 используется пять сообщений (рис. IX. 9):

  1. Клиент-Kerberos: с, TGS

  2. Kerberos-клиент: с,TGSс, {Тс,TGS}KTGS

  3. Клиент-TGS: {Ac,s}K cTGS, {Tc,TGS}KTGS s

  4. TGS-клиент: {KC,S}KC,TGS, {TC S}KS

  5. Клиент-сервер: {Ac,s}KC S, {TC S}Ks

Теперь рассмотрим использование этих сообщений подробно.

6.5. Получение первоначального мандата

Клиент идентифицируется при помощи пароля. Открытая передача пароля по сети небез­опасна. Протокол Kerberos минимизирует вероятность компрометации пароля, но при этом не позволяет пользователю правильно идентифицировать себя, если он не знает пароля. Кли­ент посылает сообщение, содержащее собственное имя и имя сервера TGS (у клиента может быть несколько серверов TGS), на сервер аутентификации Kerberos. На практике пользова­тель, скорее всего, просто вводит свое имя. Сервер аутентификации Kerberos ищет данные о клиенте в своей базе данных. Если информация о клиенте есть в базе данных, Kerberos генерирует сеансовый ключ, который будет использоваться для обмена данными между кли­ентом и TGS. Kerberos шифрует этот сеансовый ключ секретным ключом клиента. Затем он создает для клиента Разрешение на выделение мандата (Ticket Granting Ticket, TGT), дока­зывающее подлинность клиента серверу TGS, и шифрует его на секретном ключе TGS. Сер­вер аутентификации посылает эти два зашифрованных сообщения клиенту. Теперь клиент расшифровывает первое сообщение и получает сеансовый ключ. Секретный ключ является хэш-функцией от пароля клиента, поэтому у законного пользователя не возникает проблем с дешифрованием. Злоумышленник не знает правильного пароля и, следовательно, не может расшифровать ответ сервера аутентификации и получить TGT или сеансовый ключ. Клиент сохраняет TGT и сеансовый ключ и для снижения вероятности компрометации уничтожает пароль и значение хэш-функции. Если злоумышленник получит доступ к памяти компьюте­ра клиента, он раскроет только TGT и сеансовый ключ. Эти данные важны, но только на время жизни TGT. Когда срок действия TGT истечет, эти сведения станут бессмысленными. Теперь в течение срока действия TGT клиент может доказывать TGS свою подлинность.

6.6. Получение мандатов прикладных серверов

Клиенту требуется получить отдельный мандат для каждой необходимой ему услуги. Сервер TGS выделяет мандаты для отдельных прикладных серверов. Когда клиенту нужен мандат, которого у него нет. он посылает запрос TGS. Сервер TGS. получив запрос, расшифровы­вает TGT на своем секретном ключе. Затем TGS использует включенный в TGT сеансовый ключ, чтобы расшифровать удостоверение. Наконец, TGS сравнивает информацию удосто­верения с информацией мандата, сетевой адрес клиента с адресом отправителя запроса и метку времени с текущим временем. Если все совпадает, TGS разрешает выполнение запро­са. Проверка меток времени предполагает, что часы всех компьютеров синхронизированы, по крайней мере, с точностью до нескольких минут. Если расхождение времени слишком велико, TGS считает запрос попыткой повторения предыдущего запроса. TGS должен так­же отслеживать правильность сроков действия удостоверений, так как услуги сервера могут последовательно запрашиваться несколько раз с одним мандатом, но с разными удостове­рениями. Другой запрос с тем же мандатом и уже использованной меткой времени удосто­верения будет отвергнут. В ответ на легальный запрос TGS возвращает мандат, который клиент может предъявить серверу. TGS также создает новый сеансовый ключ для клиента и сервера, зашифрованный общим для клиента и TGS сеансовым ключом. Оба этих сообщения отправляются клиенту. Клиент расшифровывает сообщение и извлекает сеансовый ключ.

Соседние файлы в папке Другие сети от другого Малова