Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #58, СЕНТЯБРЬ 2005 г.

Сделай это безопасным!

Alek Silverstone

Спецвыпуск: Хакер, номер #058, стр. 058-072-4


Итак, в этом случае Василий не знает сеансового ключа, однако он по-прежнему может искажать передаваемые сообщения (рисунок "Атака на протокол 5").

После обмена сеансовым ключом Андрей и Банк адекватно воспринимают сообщения друг друга. Едва ли Василий сможет получить в результате искажения что-то осмысленное, но подорвать доверие Андрея к Банку он вполне сможет.

Проблема решается введением зависимости передаваемых сообщений от общей для Андрея и Банка секретной информации, для чего служит код аутентификации сообщения (Message Authentication Code, MAC), вычисляемый как значение хэш-функции от стыковки передаваемого сообщения и секретного ключа:

MAC:=Хэшировать(сообщение+сеансовый_ключ)

Протокол, который реализует все вышесказанное, известен под названием SSL v3 (точнее, его вариант для случая, когда один из участников не имеет сертификата), он достаточно прост и показан на рисунке.

Теперь Андрей и Банк имеют возможность обнаруживать действия Василия, который, не зная сеансового ключа, не может вычислить правильное значение хэш-функции. Критерием является результат сравнения дешифрованного MAC'а и MAC'а, вычисленного от принятого дешифрованного сообщения и сеансового ключа.

Описанный здесь протокол служит для защиты Андрея от Банка и для обороны обеих сторон от Василия. Понятно, что нет никакой гарантии, что Андрей окажется лучше Пупкина :). Для защиты Банка все его клиенты должны иметь свои сертификаты. Соответственно, меняется и протокол: в него добавляется передача сертификата Андрея и его проверка. Я не говорил об этом с самого начала лишь ради упрощения разбора протокола.

Протокол Kerberos

Рассмотрим еще один криптопротокол - Kerberos. Он служит для проверки подлинности в TCP/IP-сетях с доверенной третьей стороной. Служба Kerberos, работающая в Сети, действует как доверенный посредник и обеспечивает проверку подлинности сетевых объектов. Протокол был разработан в Массачусетском технологическом университете (MIT, web.mit.edu/kerberos/www), и в настоящее время его пятая версия является стандартом (RFC-1510). Kerberos получил широкое распространение: он входит во многие дистрибутивы Linux, а Microsoft сделала этот протокол (с незначительными изменениями, описанными в RFC-3244) основным протоколом аутентификации начиная с Windows 2000. Отличительной особенностью данного протокола является то, что в нем не используются двухключевые алгоритмы. В этом разделе под сочетанием "секретный ключ" я понимаю постоянный симметричный ключ, чтобы в статье можно было отличить его от сеансового симметричного ключа.

Объектами сетевого взаимодействия в модели Kerberos являются клиенты и серверы, причем первыми могут быть как пользователи, так и независимые программы. В базе данных центральной службы системы, которую чаще всего и называют Цербером, хранятся данные всех клиентов и их секретные ключи. Для пользователей ключ является хэш-функцией от введенного пароля. Также Цербер хранит секретные ключи всех Служб выделения мандатов (Ticket-Granting Service, TGS). TGS, в свою очередь, хранит секретные ключи обслуживаемых ею серверов в Сети.

Назад на стр. 058-072-3  Содержание  Вперед на стр. 058-072-5