Yahalom
— симметричный протокол распределения ключей с доверенным сервером. Протокол Yahalom можно рассматривать как улучшенную версию протокола
Wide-Mouth Frog
. Данный протокол «перекладывает» генерацию нового сессионного ключа на сторону доверенного центра, а также использует случайные числа для защиты от атак повтором
.
Содержание
Описание
При
симметричном шифровании
, предполагается, что секретный ключ, который принадлежит клиенту, известен только ему и некоторой третьей доверенной стороне — серверу аутентификации. В процессе сеанса протокола клиенты Алиса и Боб получают от сервера аутентификации Трента новый секретный сессионный ключ для шифрования взаимных сообщений в текущем сеансе связи. Реализация протокола
:
Первым сообщение Алиса инициирует сеанс, пересылая Бобу свой идентификатор
и некоторое случайное число
:
Получив сообщение от Алисы, Боб объединяет идентификатор Алисы
, случайное число Алисы
и своё случайное число
и шифрует созданное сообщение общим с Трентом ключом. После добавления к этому сообщению своего идентификатора
Боб отправляет полученное сообщение Тренту:
Трент расшифровывает сообщение сообщение Боба и создаёт два сообщения. Первое сообщение включает в себя идентификатор Боба
, сгенерированный Трентом сессионный ключ
, случайное число Алисы
и случайное число Боба
. Данное сообщение шифруется общим с Алисой ключом. Первое сообщение имеет вид:
Второе сообщение шифруется общим ключом для Трента и Боба и включает в себя идентификатор Алисы
и сгенерированный Трентом сессионный ключ
. Второе сообщение имеет вид:
Трент пересылает Алисе оба созданные сообщения:
Алиса получает два сообщения от Трента и расшифровывает первое из них. Расшифровав сообщение, Алиса извлекает сессионный ключ
и убеждается, что случайное число переданное Трентом
совпадает со случайном числом переданным Бобу на первом этапе . После этого Алиса отправляет два сообщения Бобу. Первое сообщение является полученное от Трента сообщением, зашифрованным общим ключом для Трента и Боба. Данное сообщение состоит из идентификатора Алисы
и сессионного ключа
:
Второе сообщение является зашифрованным с помощью сгенерированного Трентом сессионного ключа случайное число Боба
:
Оба сообщения Алиса отправляет Бобу:
Боб расшифровывает первое сообщение и извлекает сессионный ключ
. С помощью извлечённого сессионного ключа Боб расшифровывает второе сообщение и получает случайное число
. Боб сверяет полученное от Алисы число со случайным числом отправленным на втором этапе. После описанных действий стороны могут использовать новый сессионный ключ
}.
Протокол Yahalom помимо генерации сессионного ключа обеспечивает аутентификацию сторон:
Аутентификация Алисы перед Бобом происходит на четвёртом этапе
, когда Боб может проверить возможность Алисы зашифровать известные только ей и Тренту случайное число
на ключе
.
Аутентификация Боба перед Алисой происходи на третьем этапе
, когда Трент показывает Алисе, что он получил случайное число
именно от Боба (поскольку в сообщении присутствует идентификатор Боба
)
.
В результате протокола Yahalom Алиса и Боб убеждены, что общаются друг с другом, а не с неизвестной третьей стороной. В отличие от протокола
Wide-Mouth Frog
стороны имеют возможность убедиться, что промежуточный сервер генерирует общий секретный ключ именно для них двоих, а не для какой-то третьей стороны (хотя от полной
компрометации
доверенной стороны этот протокол не защищает)
.
Уязвимости протокола
Протокол Yahalom имеет ряд уязвимостей, которыми могут воспользоваться злоумышленники.
В рамках протокола Боб никак не продемонстрировал, что он успешно получил новый сессионный ключ
и может им пользоваться. Сообщение от Алисы на четвёртом этапе
могло быть перехвачено или изменено злоумышленниками. Но никакого ответа Алиса от Боба уже не ожидает и уверена, что протокол завершился успешно.
На третьем этапе
Трент не включает случайное число
в сообщение
, что позволяет Алисе заставить Боба принять старый сессионный ключ
. При этом протокол будет выглядеть следующем образом:
Трент генерирует новый сессионный ключ
Алиса использует старый сессионный ключ
и отправляет сообщение
из старого сеанса протокола
Модификация протокола
В статье 1989 году Берроуз (англ. Michael Burrows), Абади (англ. Martin Abadi), Нидхэм (англ. Roger Needham) предложили свой вариант протокола Yahalom:
В данном варианте протокола нет необходимости использовать несертифицированный ключ, поскольку своевременность последнего сообщения гарантируется случайным числом
. Исчезает необходимость шифрования случайного числа Боба
на втором этапе
и в первом сообщении третьего этапа
. В результате получается тот же результат, но с меньшим количеством шифрования
.
Примечания
↑
.
↑
.
.
.
Литература
Владимиров С.М. и др.
(рус.)
(6 сентября 2013).
Шнайер Б.
Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — Триумф, 2002. — 816 с. —
ISBN 5-89392-055-4
.
Lawrence.
Relations Between Secrets: Two Formal Analyses of the Yahalom Protocol
(англ.)
// Journal of Computer Security. — Computer Laboratory, University of Cambridge, Pembroke Street, Cambridge CB2 3QG, UK., 2001. —
Vol. 9
,
iss. 1 July 2001
,
no. 3
. —
P. 197—216
. —
doi
:
.
M. Burrows, M. Abadi, R. Needham.
(англ.)
. — Digital Equipment Corp. Systems Research Center, 1989.