Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОтветыЗащитаИнформации (белый список) не точные....doc
Скачиваний:
20
Добавлен:
20.04.2019
Размер:
1.28 Mб
Скачать

18. Аутентификация с применением hmac. Диффи-Хелмана.

Итак, новый протокол аутентификации показан на рис. 8.32 (Bird и др., 1993). Тут мы видим тот же самый НМАС, который мы уже обсуждали при изучении IPsec. Для начала Алиса посылает Бобу отметку времени RA в виде сообщения 1. Боб при ответе выбирает собственную отметку времени, RB, и высылает ее вместе с НМАС. НМАС формирует структуру данных, состоящую из временных отметок Алисы и Боба, их идентификаторов, а также общего закрытого ключа КАЪ. Затем вся эта структура с помощью хэш-функции (например, SHA-1) помещается в НМАС. После приема сообщения 2 Алиса становится счастливым обладателем RA (это значение выбрано ею же), RB, полученного в виде открытого текста, двух идентификаторов и закрытого ключа КАВ, известного и так. Имея все эти данные, она может вычислить НМАС самостоятельно. Если он согласуется с НМАС, содержащимся в сообщении, она убеждается, что говорит с Бобом, поскольку Труди не знает КАВ и, следовательно, не может угадать НМАС, который следует отослать. В ответе Алисы Бобу содержится НМАС, состоящий из двух временных отметок.

Рис. 8.32. Аутентификация с применением НМАС

Вопрос: может ли Труди как-нибудь взломать такой протокол? Нет, потому что она не может заставить ни одну из сторон шифровать выбранное ею самой значение или применять к нему хэш-функцию, как это было в ситуации на рис. 8.30. Оба НМАС включают в себя значения, выбранные отправителем. Труди не способна их контролировать каким-либо образом.

Использование НМАС — это далеко не единственное, что можно сделать. Альтернативная схема, которая применяется довольно часто, заключается в шифровании элементов данных последовательно с помощью сцепления блоков шифра.

Установка общего ключа:

протокол обмена ключами Диффи—Хеллмана

Итак, мы предположили, что у Алисы и Боба есть общий секретный ключ. Предположим теперь, что у них его нет (поскольку до сих пор не разработана универсальная инфраструктура PKI создания подписей и распространения сертификатов). Как им получить такой ключ? Алиса может позвонить Бобу и передать ему ключ по телефону, но он, возможно, спросит: «Как вы докажете, что вы — Алиса, а не злоумышленник?» Они могут попытаться организовать встречу, на которую каждый придет с паспортом, водительскими правами и тремя кредитными картами, но, будучи занятыми людьми, они, возможно, не смогут найти устраивающую обоих дату встречи в течение нескольких месяцев. К счастью, существует способ для совершенно незнакомых людей установить общий секретный ключ средь бела дня, даже если злоумышленник старательно записывает каждое сообщение.

Алгоритм Диффи-Хеллмана. Наиболее распространенный алгоритм вычисления ключа парной связи из своего секретного ключа и чужого открытого ключа.

Протокол, позволяющий не встречавшимся ранее людям устанавливать общий секретный ключ, называется протоколом обмена ключами Диффи—Хеллмана (Diffie и Hellman, 1976) и работает следующим образом. Алиса и Боб договариваются о двух больших простых числах, п и g, где (п - 1)/2 также является простым числом, кроме того, на число g накладываются некоторые дополнительные условия. Эти числа могут быть открытыми, поэтому каждый из них может просто выбрать пи g и открыто сообщить о них другому. Затем Алиса выбирает большое (например, 512-разрядное) число х и держит его в секрете. Аналогично, Боб выбирает большое секретное число у.

Алиса начинает протокол обмена ключами с того, что посылает Бобу сообщение, содержащее (п, g, g* mod п), как показано на рис. 8.33. Боб отвечает Алисе сообщением, содержащим g mod п. Теперь Алиса берет число, присланное ей Бобом, и возводит его в степень х, получая (g1* mod п)х. Боб выполняет подобные вычисления и получает (g* mod п)у. В соответствии с законами арифметики оба вычисления должны быть равны gу mod п. Таким образом, у Алисы и Боба есть общий секретный ключ g1» mod п.

Конечно, злоумышленник видел оба сообщения. Ему известны значения пи g из первого сообщения. Если бы ему удалось вычислить значения х и у, ему бы удалось получить секретный ключ. Беда в том, что, зная gх mod пи п, найти значение х очень трудно. На сегодняшний день неизвестен алгоритм вычисления дискретного логарифма модуля очень большого простого числа.

Рис. 8.33. Обмен ключами Диффи—Хеллмана

Для примера возьмем (совершенно нереальные) значения п = А7 и g = 3. Алиса выбирает значение х = 8, а Боб выбирает г/ = 10. Оба эти числа хранятся в секрете. Сообщение Алисы Бобу содержит числа (47, 3, 28), так как З8 mod 47 = 28. Боб отвечает Алисе числом 17. Алиса вычисляет 17s mod 47 и получает 4. Боб вычисляет 2810 mod 47 и получает также 4. Таким образом, независимо друг от друга Алиса и Боб определили, что значение секретного ключа равно 4. Злоумышленнику придется решить уравнение 3* mod 47 = 28, что можно сделать путем полного перебора для таких небольших чисел, но только не для чисел длиной в несколько сотен бит.

Несмотря на всю элегантность алгоритма Диффи—Хеллмана, имеется одна проблема: когда Боб получит три числа (47, 3, 28), как он сможет удостовериться в том, что они посланы Алисой, а не злоумышленником? Способа узнать это не существует. К сожалению, злоумышленник может воспользоваться этим, чтобы обмануть Алису и Боба, как показано на рис. 8.34. Здесь, пока Алиса с Бобом выбирают значения х и у, злоумышленник выбирает свое случайное число 2. Алиса посылает Бобу сообщение 1. Злоумышленник перехватывает его и отправляет вместо него Бобу сообщение 2, используя правильные значения п и g (которые посылались открытым текстом), но со своим значением 2 вместо х. Он также посылает обратно Алисе сообщение 3. Позднее Боб отправляет Алисе сообщение 4, которое злоумышленник снова перехватывает и хранит у себя.

Теперь все занимаются вычислением остатков от деления. Алиса вычисляет значение секретного ключа: g" mod п. Те же самые вычисления производит злоумышленник (для общения с Алисой). Боб вычисляет g^ mod п, что также делает и злоумышленник (для общения с Бобом). Каждое сообщение, посылаемое Алисой в шифрованном сеансе, перехватывается злоумышленником, сохраняется, изменяется, если это нужно, и отправляется (по желанию злоумышленника) Бобу. То же самое происходит и в обратном направлении. Злоумышленник видит все сообщения и может изменять их по своему усмотрению, в то время как Алиса и Боб полагают, что у них имеется защищенный канал для связи друг с другом. Подобные действия злоумышленника называются атакой типа «пожарная цепочка», поскольку слегка напоминают старинных пожарных, передававших друг другу по цепочке ведра с водой. Еще одно название этой атаки — «человек посередине».

Рис. 8.34. Атака типа «пожарная цепочка»