logo
Лекции / Малов / Другие сети от другого Малова / 09) аутентификация

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

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