Протокол Деннинга — Сакко

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
Идентифкаторы Алисы (Alice), инициатора сессии
Идентифкатор Боба (Bob), стороны, с которой устанавливается сессия
Идентифкатор Трента (Trent), доверенной промежуточной стороны
Открытые ключи Алисы, Боба и Трента
Секретные ключи Алисы, Боба и Трента
Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента
Шифрование данных ключом Боба, либо совместным ключом Боба и Трента
Шифрование данных секретными ключами Алисы, Боба (цифровая подпись)
Порядковый номер сессии (для предотвращения атаки с повтором)
Случайный сеансовый ключ, который будет использоваться для симетричного шифрования данных
Шифрование данных временным сеансовым ключом
Метки времени, добавляемые в сообщения Алисой и Бобом соответственно
Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно
Заранее созданные пары открытых и закрытых ключей Алисы, Боба и Трента соответственно
Случайная сеансовая пара открытого и закрытого ключей, которая будет использоваться для ассиметричного шифрования
Подписывание данных с использованием закрытого ключа Алисы, Боба, промежуточной стороны (Trent) или закрытого ключа из случайной пары соответственно
Ассиметричное шифрование данных с использованием открытого ключа Алисы, Боба, промежуточной стороны (Trent) или открытого ключа из случайной пары соответственно

Протокол Деннинга — Сакко — протокол аутентификации и обмена ключами с открытым ключом. Как и в случае протокола DASS промежуточная сторона — Трент — поддерживает базу данных всех открытых ключей.

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

Описание протокола[править | править код]

Алиса отправляет Тренту сообщение со своим идентификатором и Боба:

Трент отправляет Алисе открытые ключи и Алисы, и Боба, вместе с идентификаторами, подписав их своим закрытым ключом:

Алиса отправляет Бобу сеансовый ключ вместе с меткой времени, подписав это своим ключом и зашифровав это открытым ключом Боба, вместе с обоими сообщениями от Трента:

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

Отсутствие в сообщении от Алисы идентификатора получателя (Боба) приводит к тому, что Боб может использовать принятые от Алисы данные для того, чтобы выдать себя за неё в новом сеансе с другой стороной. Однако это легко поправить, добавив в это сообщение идентификаторы Алисы и Боба, тем самым ограничив возможность использования этого сообщения данным сеансом.

Литература[править | править код]

  • Шнайер Б. Глава 3. Основные протоколы. Протокол Деннинга-Сакко // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 84-85. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • D. E. Denning, G. M. Sacco Timestamps in key distribution protocols (англ.) // Communications of the ACM. — New York, NY, USA: ACM, 1981. — Vol. 24, iss. 8. — P. 533—536. — ISSN 0001-0782. — DOI:10.1145/358722.358740.