Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шнайер - Прикладная криптография.doc
Скачиваний:
13
Добавлен:
01.05.2025
Размер:
10 Мб
Скачать
☆

Запрос услуги

Теперь клиент может доказать свою подлинность серверу. Он создает сообщение, очень похожее на то, которое посылалось TGS (и это понятно, так как TGS - тоже услуга).

Клиент создает удостоверение, состоящее из его имени, сетевого адреса и метки времени, зашифрованное сеансовым ключом, который был генерирован TGS для сеанса клиента и сервера. Запрос состоит из мандата, полученного от Kerberos (уже зашифрованного секретным ключом сервера) и зашифрованного идентификатора.

Сервер расшифровывает и проверяет мандат и удостоверение, как уже обсуждалось, а также проверяет адрес клиента и метку времени. Если все в порядке, то сервер уверен, что, согласно Kerberos, клиент - именно тот, за кого он себя выдает.

Если приложение требует взаимной проверки подлинности, сервер посылает клиенту сообщение, состоящее из метки времени, зашифрованной сеансовым ключом. Это доказывает, что серверу известен правильный секретный ключ, и он может расшифровать мандат и удостоверение.

При необходимости клиент и сервер могут шифровать дальнейшие сообщения общим ключом. Так как этот ключ известен только им, они оба могут быть уверены, что последнее сообщение, зашифрованное этим ключом, отправлено другой стороной.

Kerberos версии 4

В предыдущих разделах рассматривался Kerberos версии 5. Версия 4 немного отличается сообщениями и конструкцией мандатов и удостоверений. В Kerberos версии 4 используются следующие пять сообщений:

  1. Клиент-Kerberos: c,tgs

  2. Kerberos-клиент: {Kc,tgs{Tc,tgs}Ktgs}Kc,

  3. Клиент-TGS: {Ac,s}Kc,tgs{Tc,tgs} Ktgs,s

  4. TGS-клиент: {Kc,s{Tc,s}Ks}Kc,tgs

  5. Клиент-сервер: {Ac,s}Kc,s {Tc,s}Ks

Tc,s = {s, c, a, v, l, Kc,s}Ks

Ac,s = {c, a, t} Kc,s

Сообщения 1,3 и 5 не изменились. Двойное шифрование мандата на этапах 2 и 4 в версии 5 было устранено. Мандаты версии 5 дополнительно включают возможность использовать несколько адресов, а поле "время жизни", l, заменено временем начала и окончания. В удостоверение версии пять добавлена возможность включения дополнительного ключа.

Безопасность Kerberos

Стив Белловин (Steve Bellovin) и Майкл Мерритт (Michael Merritt) проанализировали некоторые потенциальные уязвимые места Kerberos [108]. Хотя эта работа была написана про протоколы версии 4, многие ее замечания применимы и к версии 5.

Возможно кэширование и повторное использование старых удостоверений. Хотя метки должны предотвратить иакую возможность, удостоверения могут использоваться повторно в течение времени жизни мандата. Предполагается, что серверы хранят все правильные мандаты, чтобы обнаружить повторы, но это не всегда возможно. Кроме того, время жизни бывает достаточно большим, часто до восьми часов.

Использование удостоверений основаны на том, что все часы сети более или менее синхронизированы. Если время компьютера будет установлено неправильно, то старое удостоверение может быть использовано без проблем. Большинство сетевых протоколов поддержки единого времени небезопасны, поэтому такая возможность представляет собой серьезную проблему.

Kerberos также чувствителен к вскрытиям с угадыванием пароля. Злоумышленник может записать мандаты и затем попытаться их расшифровать. Не забудем, что средний пользователь редко выбирает хороший пароль. Если Мэллори добудет достаточно мандатов, у него появятся неплохие шансы раскрыть пароль.

Возможно самым опасным является вскрытие, использующее специальное программное обеспечение. Протоколы Kerberos подразумевают, что программному обеспечению можно доверять. Нет способа помешать Мэллори исподтишка заменить все клиентское программное обеспечение Kerberos такой версией, которая помимо выполнения протоколов Kerberos записывает пароли. Это является проблемой для любого криптографического программного пакета, работающего на небезопасном компьютере, но широко распространенное использование Kerberos в подобных средах делает его особенно привлекательной мишенью.

Ведутся работы над улучшением Kerberos, включая модернизацию управления ключами с помощью криптографии с открытыми ключами и интерфейса интеллектуальных карточек.