Полный курс лекций 2009-го года (1130357), страница 82
Текст из файла (страница 82)
Протокол аутентификации должен быть устроен так, что даже если злоумышленник перехватитсообщения между А и В, то ни А, ни В не спутают друг друга со злоумышленником.7.1.5.1. Аутентификация на основе закрытого разделяемого ключаОсновная идея первого протокола аутентификации, так называемого «протокола ответ по вызову»,состоит в том, что одна сторона посылает некоторое число (вызов), другая сторона, получив это число,преобразует его по определенному алгоритму и отправляет обратно. Посмотрев на результатпреобразования и зная исходное число, инициатор может судить, правильно сделано преобразование илинет. Алгоритм преобразования является общим секретом взаимодействующих сторон.
Будем предполагать,что стороны А и В имеют общий секретный ключ KАВ. Этот секретный ключ взаимодействующие стороныкак-то установили заранее, например, по телефону. Описанная выше процедура показана на рисунке 712.Рисунок 7-12. Двусторонняя аутентификация с запросом и подтверждениемНа этом рисунке:А,В - идентификаторы взаимодействующих сторонRi - вызов, где индекс указывает, кто его послалКj - ключ, индекс которого указывает на его владельцаНа рисунке 7-13 дана схема, где сокращено количество передач между сторонами по сравнению срисунком 7-12.Рисунок 7-13. Сокращенная двусторонняя аутентификация с запросом иподтверждениемРисунок 7-14 показывает «дыру» в схеме 7-13 и то, как злоумышленник может этой дыройвоспользоваться.
Это так называемая атака отражением. Идея этой атаки состоит в том, чтобы «заставить»сторону В дать некоторое число RВ (см. шаг 2). А затем, на шаге 3, подсунуть стороне В это же число каксвой вызов. На этот вызов сторона В, согласно протоколу, ответит преобразованным KАВ(RВ). В результатезлоумышленник получит и RВ, и KАВ(RВ).Рисунок 7-14. Атака отражениемЕсть несколько общих правилподлинности или просто подлинности):построенияпротоколоваутентификации(протоколпроверки1.Инициатор должен доказать, кто он есть, прежде чем вы пошлете ему какую-либо важную информацию.2.Инициатор и отвечающий должны использовать разные ключи.3.Инициатор и отвечающий должны использовать начальные вызовы из разных непересекающихсямножеств.В схеме на рисунке 7-13 все эти три правила нарушены.7.1.5.2.
Установка разделяемого ключаДо сих пор мы предполагали, что А и В имеют общий секретный ключ. Рассмотрим теперь, как онимогут его установить. Например, они могут воспользоваться телефоном. Однако, как В убедится, что емузвонит именно А, а не злоумышленник? Можно договориться о личной встрече, куда принести паспорт ипрочее, удостоверяющее личность. Однако есть протокол, который позволяет двум незнакомым людямустановить общий ключ даже при условии, что за ними следит злоумышленник.Это протокол обмена ключом Диффи-Хеллмана. Его схема показана на рисунке 7-15.
Прежде всего,А и В должны договориться об использовании двух больших простых чисел n и g, удовлетворяющихопределенным условиям. Эти числа могут быть общеизвестны. Затем, А выбирает большое число, скажемx, и хранит его в секрете. То же самое делает В. Его число – y.Рисунок 7-15. Обмен ключом Диффи-ХеллманаА шлет В сообщение (n, g, gx mod n), В шлет в ответ (gy mod n).
Теперь А выполняет операцию (gymod n)x, В - (gx mod n)y. Удивительно, но теперь оба имеют общий ключ - gxy mod n! Например, если n = 47,g = 3, x = 8, y = 10, то А шлет В сообщение (47, 3, 28), поскольку 38 mod 47 = 28. В шлет А (17). Авычисляет 178 mod 47 = 4, B вычисляет 2810 mod 47 = 4. Ключ установлен - 4!Злоумышленник следит за всем этим. Единственно, что мешает ему вычислить x и y, – это то, что неизвестно алгоритма с приемлемой сложностью для вычисления логарифма от модуля для простых чисел.Однако и у этого алгоритма есть слабое место.
Рисунок 7-16 показывает его. Такой прием называетсячужой в середине.Рисунок 7-16. Взлом «чужой в середине»7.1.5.3. Проверка подлинности через центр раздачи ключейДоговориться с незнакомцем об общем секрете можно, но вряд ли это следует делать сразу. Кромеэтого, общение с n людьми потребует хранения n ключей, что для общительных или популярных личностейможет быть проблемой.Другое решение можно получить, введя надежный центр раздачи ключей (KDC). Его использованиеиллюстрирует рисунок 7-17.Рисунок 7-17.
Проверка подлинности через центр раздачи ключейИдея этого протокола состоит в следующем. А выбирает ключ сессии KS. Используя свой ключ KA, Aшлет в центр KDC запрос на соединение с В. Центр KDC знает В и его ключ KB. С помощью этого ключаKDC сообщает В ключ сессии KS и информацию о тех, кто хочет с ним соединиться.Однако решение с центром KDC имеет изъян.
Пусть злоумышленник как-то убедил А связаться с В ископировал весь обмен сообщениями. Позже он может воспроизвести этот обмен за А и заставить Вдействовать так, как если бы с В говорил А! Этот способ атаки называется атака подменой.Против такой атаки есть несколько средств. Одно из них – временные метки. Это решение, однако,требует синхронизации часов. Поскольку в сети всегда есть расхождение в показаниях часов, то надобудет задать определенный интервал, в течение которого допустимо считать сообщение верным.Злоумышленник может использовать прием атаки подменой в течение этого интервала.Другое решение - использование разовых меток.
Однако при этом каждая из сторон должна помнитьвсе разовые метки, использованные ранее. Это обременительно. Кроме этого, если список использованныхразовых меток будет утерян по каким-либо причинам, то весь метод перестанет работать. Можнокомбинировать решения разовых меток и временных меток.Более тонкое решение установления подлинности дает многосторонний протокол «вызов-ответ».Хорошо известным примером такого протокола является протокол Нидхема-Шредера, вариант которогопоказан на рисунке 7-18. Вначале А сообщает KDC, что он хочет взаимодействовать с В. KDC сообщаетключ сессии, разовую метку RA, шифруя сообщение ключом А. Разовая метка защищает А от подмены.Теперь, имея ключ сессии, А начинает обмен сообщениями с В.
RA2 и RB – разовые метки, защищающие А иВ от подмен.Рисунок 7-18. Протокол аутентификации Нидхема-ШредераХотя этот протокол в целом надежен, но и при его использовании есть небольшая опасность. Еслизлоумышленник раздобудет все-таки старый ключ сессии, то он сможет подменить сообщение 3 старым иубедить В, что это А! На рисунке 7-19 приведена схема исправленного протокола, который предложилиОтвей и Риис. В этой модификации KDC следит, чтобы R было одним и тем же в обеих частях сообщения 2.Рисунок 7-19. Протокол аутентификации Отвея и Рииса7.1.5.4.
Установление подлинности протоколом «Цербер»Протокол установления подлинности «Цербер» используется многими действующими системами. Онпредставляет собой вариант протокола Нидхема-Шредера и был разработан в MIT для безопасного доступав сеть (предотвращения несанкционированного использования ресурсов сети). В нем используетсяпредположение, что все часы в сети хорошо синхронизованы.Протокол «Цербер» предполагает использование кроме рабочей станции А еще трех серверов:§Сервер установления подлинности (СП) – проверяет пользователей на этапе login.§Сервер выдачи квитанций (СВБ) – идентификация квитанции.§Сервер В – тот кто должен выполнить работу, необходимую А.СП аналогичен KDC и знает секретный пароль для каждого пользователя.
СВБ выдает квитанции,которые подтверждают подлинность заказчиков работ.На рисунке 7-20 показана работа протокола Цербер. Сначала пользователь садится за рабочуюстанцию и шлет открыто свое имя серверу СП. СП отвечает ключом сессии и квитанцией – <KS, KTGS(A,KS)>. Все это зашифровано секретным ключом А. Когда сообщение 2 пришло на рабочую станцию, у Азапрашивают пароль, чтобы по нему установить KA для расшифровки сообщения 2. Парольперезаписывается с временной меткой, чтобы предотвратить его захват злоумышленником. Выполнивlogin, пользователь может сообщить станции, что ему нужен сервер В.
Рабочая станция обращается к СВБза квитанцией для использования сервера В. Ключевым элементом этого запроса является KTGS(A, KS),зашифрованное секретным ключом СВБ. В ответ СВБ шлет ключ для работы А и В - KAB.Рисунок 7-20. Работа протокола «Цербер»Теперь А может обращаться непосредственно к В с этим ключом. Это взаимодействие сопровождаетсявременными метками, чтобы защититься от подмены. Если позднее А понадобится работать с сервером С,то А должен будет повторить сообщение 3, но указать там сервер С.Поскольку сеть может быть очень большой, то нельзя требовать, чтобы все использовали один и тотже СП.