|
|
Компьютеры - Kerberos - Протокол аутентификации01 мая 2011
Оглавление: 1. Kerberos 2. Протокол аутентификации и обмена ключами 3. Протокол аутентификации
Безопасность протокола в значительной мере основывается на том, что системные часы участников более-менее синхронны и на временных утверждениях подлинности, называемых билетами Kerberos.
Ниже приведено упрощенное описание протокола. Следующие аббревиатуры будут использованы:
- AS = Сервер аутентификации
- TGS = Сервер предоставления билетов
- SS = Ресурс, предоставляющий некий сервис, к которому требуется получить доступ
- TGT = Билет для получения билета
Вкратце: клиент авторизируется на AS, используя свой долгосрочный секретный ключ, и получает билет TGT от AS. Позже клиент может использовать этот билет для получения дополнительных билетов на доступ к ресурсам SS без необходимости прибегать к использованию своего секретного ключа.
Более детально:
Шаги входа пользователя в систему:
- Пользователь вводит имя и пароль на клиентской машине.
- Клиентская машина выполняет над паролем одностороннюю функцию, и результат становится секретным ключом клиента/пользователя.
Шаги аутентификации клиента:
- Клиент посылает простым текстом сообщение серверу AS, запрашивая сервисы от имени пользователя. Например так: «Пользователь АБВ хочет запросить сервисы». Обратите внимание, что ни секретный ключ, ни пароль не посылаются на AS.
- AS проверяет, есть ли такой клиент в базе. Если есть, то назад AS отправляет следующие два сообщения:
- Сообщение A: Сессионный Ключ Client/TGS, зашифрованный секретным ключом клиента/пользователя.
- Сообщение B: TGT, зашифрованный секретным ключом TGS.
- Как только клиент получает сообщения A и B, он расшифровывает сообщение A, чтобы получить Сессионный Ключ Client/TGS. Этот сессионный ключ используется для дальнейшего обмена с сервером TGS. В этот момент у пользователя достаточно данных, чтобы авторизоваться на TGS.
Шаги авторизации клиента для получения сервиса:
- При запросе сервисов клиент отправляет следующие два сообщения на TGS:
- Сообщение C: Содержит TGT, полученный в сообщении B и ID требуемого сервиса.
- Сообщение D: Аутентикатор, зашифрованный на Сессионном Ключе Client/TGS.
- После получения сообщений C и D, TGS извлекает сообщение B из сообщения C и расшифровывает его используя секретный ключ TGS. Это дает ему Сессионный Ключ Client/TGS. Используя его TGS расшифровывает сообщение D и посылает следующие два сообщения клиенту:
- Сообщение E: Client-to-server ticket зашифрованный секретным ключом сервиса.
- Сообщение F: Сессионный ключ Client/server, зашифрованный на Сессионном Ключе Client/TGS.
Шаги клиента при запросе сервиса:
- При получении сообщений E и F от TGS, у клиента достаточно информации для авторизации на SS. Клиент соединяется с SS и посылает следующие два сообщения:
- Сообщение E из предыдущего шага.
- Сообщение G: новый аутентикатор, зашифрованный на client/server session key, и включающий ID клиента и временной штамп.
- SS расшифровывает билет используя свой секретный ключ для получения Сессионного Ключа Client/Server. Используя сессионный ключ, SS расшифровывает аутентикатор и посылает клиенту следующее сообщение для подтверждения готовности обслужить клиента и показать, что сервер действительно является тем, за кого себя выдает:
- Сообщение H: Временной штамп, указанный клиентом + 1, зашифрованный на Сессионном Ключе Client/Server.
- Клиент расшифровывает подтверждение, используя Сессионный Ключ Client/Server и проверяет, действительно ли временной штамп корректно обновлен. Если это так, то клиент может доверять серверу и может начать посылать запросы на сервер.
- Сервер предоставляет клиенту требуемый сервис.
Просмотров: 2518
|