Протокол Деннинг — Сакко
— общее название для симметричного и асимметричного
протоколов
распространения ключей с использованием доверенной стороны.
Содержание
История
В 1981 году сотрудники университета Пердью (
англ.
Purdue University) Дороти Деннинг (
англ.
Dorothy E. Denning) и Джованни Мария Сакко (
англ.
Giovanni Maria Sacco) представили атаку на
протокол Нидхема — Шрёдера
и предложили свою модификацию протокола, основанную на использовании временны́х меток
.
Протокол Деннинг — Сакко с симметричным ключом
При
симметричном шифровании
предполагается, что секретный ключ, принадлежащий клиенту, известен только ему и некоторой третьей доверенной стороне — серверу аутентификации. В ходе выполнения протокола клиенты (Алиса, Боб) получают от сервера аутентификации (Трент) новый секретный сессионный ключ для шифрования взаимных сообщений в текущем сеансе связи. Рассмотрим реализацию протокола Деннинг — Сакко с симметричным ключом
:
Описание
Первое сообщение от Алисы к Тренту содержит в себе идентификаторы участников предстоящего обмена — Алисы и Боба. Данное сообщение посылается открытым текстом:
Трент генерирует сессионный ключ
и отправляет Алисе зашифрованное сообщение, которое включает в себя идентификатор Боба, сессионный ключ, метку времени и пакет
, выполняющий роль сертификата Алисы:
Затем Алиса расшифровывает сообщение Трента и отправляет Бобу свой сертификат
:
По окончании протокола у Алисы и Боба есть общий сеансовый ключ
.
Алиса и Боб могут убедиться в том, что полученные ими сообщения валидные, с помощью проверки меток времени
.
Атака на протокол
В 1997 году Гэвин Лоу (
англ.
Gavin Lowe) представил атаку на протокол
:
Алиса и Боб завершают сеанс протокола, в результате чего у сторон вырабатывается сессионный ключ
:
1.
2.
3.
Далее злоумышленник повторяет последнее сообщение Алисы:
4.
Действия злоумышленника приводят к тому, что Боб решает, будто Алиса хочет установить с ним новое соединение.
Модификация протокола
В той же работе Лоу предложил модификацию протокола, в которой обеспечивается
аутентификация
Алисы перед Бобом
:
Сначала Алиса и Боб полностью повторяют сеанс протокола:
1.
2.
3.
Затем Боб генерирует случайное число, шифрует его на сессионном ключе
и отправляет Алисе:
4.
Алиса расшифровывает сообщение Боба, прибавляет к
единицу, шифрует полученный результат на сессионном ключе
и отправляет Бобу:
5.
После того как Боб расшифрует сообщение Алисы, он сможет проверить факт владения Алисы сессионным ключом
.
В рамках протокола Боб никак не подтверждает получение нового сессионного ключа
и возможность им оперировать. Сообщение от Алисы на 5-м проходе могло быть перехвачено или изменено злоумышленником. Но никакого ответа Алиса от Боба уже не ожидает и уверена, что протокол завершился успешно.
Протокол Деннинг — Сакко с открытым ключом
Асимметричный вариант
протокола Деннинг — Сакко. Сервер аутентификации владеет открытыми ключами всех клиентов. Рассмотрим реализацию протокола Деннинг — Сакко с открытым ключом
:
Описание
Первое сообщение от Алисы к Тренту содержит в себе идентификаторы участников предстоящего обмена — Алисы и Боба. Данное сообщение посылается открытым текстом:
В ответ Трент отправляет Алисе подписанные сертификаты открытых ключей Алисы и Боба. Дополнительно в каждый сертификат добавляются временные метки:
Алиса генерирует новый сессионный ключ
и отправляет его Бобу вместе с меткой времени
, подписав это своим ключом и зашифровав это открытым ключом Боба, вместе с обоими сообщениями, полученными от Трента:
Боб проверяет подпись доверенного центра на сертификате
, расшифровывает сессионный ключ
и проверяет подпись Алисы.
Атака на протокол
Абади и Нидхем описали атаку на протокол
, в ходе которой Боб, получив сообщение от Алисы, может выдать себя за неё в сеансе с другим пользователем. Отсутствие в сообщении от Алисы
идентификатора Боба приводит к тому, что Боб может использовать принятые от Алисы данные для того, чтобы выдать себя за Алису в новом сеансе с третьей стороной (Кларой).
Сначала Алиса и Боб проводят стандартный сеанс протокола, выработав новый сессионный ключ
:
1.
2.
3.
После этого Боб инициирует новый сеанс с Кларой и действует в рамках протокола:
4.
5.
На последнем шаге протокола Боб воспроизводит в сеансе с Кларой сообщения
и
, полученные от Алисы:
6.
Клара успешно проверяет подпись доверенного центра на сертификате
, расшифровывает сессионный ключ
и проверяет подпись Алисы. В результате Клара уверена, что установила сеанс связи с Алисой, поскольку все необходимые шаги протокола были проделаны верно и все сообщения оказались корректны.
Примечания
Давыдов А. Н.
(рус.)
// Безопасность информационных технологий : Труды научно-технической конференции / под ред. Волчихина В. И., Зефирова С. Л. — Пенза: Изд-во Пензенского научно-исследовательского электротехнического института, 2004. — Декабрь (
т. 5
). —
С. 99—104
.
19 августа 2019 года.
.
, p. 79.
↑
, The Denning-Sacco shared key protocol, pp. 4—5.
, p. 429.
.
Литература
Dorothy E. Denning, Giovanni Maria Sacco.
Timestamps in key distribution protocols
(англ.)
// Commun. ACM. — New York, NY, USA: ACM, 1981. —
Vol. 24
,
iss. Aug, 1981
,
no. 8
. —
P. 533—536
. —
ISSN
. —
doi
:
.
Gavin Lowe.
(англ.)
. — Department of Mathematics and Computer Science, 1997.
M. Abadi, R. Needham.
Prudent Engineering Practice for Cryptographic Protocols
(англ.)
// IEEE Transactions on software engineering. — 1996. — January (
vol. 22
,
no. 1
).
Шнайер Б.
Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. —
М.
: Триумф, 2002. — 816 с. —
3000 экз.
—
ISBN 5-89392-055-4
.
Венбо Мао.
Современная криптография: теория и практика = Modern Cryptography: Theory and Practice. — Издательский дом "Вильямс", 2005. —
ISBN 5-8459-0847-7
.