Это не официальный сайт wikipedia.org 01.01.2023

Протокол Деннинг — Сакко — Википедия

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

Протокол Деннинг — Сакко[1] — общее название для симметричного и асимметричного протоколов распространения ключей с использованием доверенной стороны.

Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
A Идентификаторы Алисы (Alice), инициатора сессии
B Идентификатор Боба (Bob), стороны, с которой устанавливается сессия
T Идентификатор Трента (Trent), доверенной промежуточной стороны
K A , K B , K T Открытые ключи Алисы, Боба и Трента
K A 1 , K B 1 , K T 1 Секретные ключи Алисы, Боба и Трента
E A , { . . . } K A Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента
E B , { . . . } K B Шифрование данных ключом Боба, либо совместным ключом Боба и Трента
{ . . . } K B 1 , { . . . } K A 1 Шифрование данных секретными ключами Алисы, Боба (цифровая подпись)
I Порядковый номер сессии (для предотвращения атаки с повтором)
K Случайный сеансовый ключ, который будет использоваться для симметричного шифрования данных
E K , { . . . } K Шифрование данных временным сеансовым ключом
T A , T B Метки времени, добавляемые в сообщения Алисой и Бобом соответственно
R A , R B Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно
K A , K B , K T Заранее созданные пары открытых и закрытых ключей Алисы, Боба и Трента соответственно
K p Случайная сеансовая пара открытого и закрытого ключей, которая будет использоваться для асимметричного шифрования
S A , S B , S T , S K p Подписывание данных с использованием закрытого ключа Алисы, Боба, промежуточной стороны (Trent) или закрытого ключа из случайной пары соответственно
E K A , E K B , E K T , E K p Асимметричное шифрование данных с использованием открытого ключа Алисы, Боба, промежуточной стороны (Trent) или открытого ключа из случайной пары соответственно

ИсторияПравить

В 1981 году сотрудники университета Пердью (англ. Purdue University) Дороти Деннинг (англ. Dorothy E. Denning) и Джованни Мария Сакко (англ. Giovanni Maria Sacco) представили атаку на протокол Нидхема — Шрёдера и предложили свою модификацию протокола, основанную на использовании временны́х меток[2].

Протокол Деннинг — Сакко с симметричным ключомПравить

 
Взаимодействие участников в протоколе Деннинг — Сакко с симметричным ключом

При симметричном шифровании предполагается, что секретный ключ, принадлежащий клиенту, известен только ему и некоторой третьей доверенной стороне — серверу аутентификации. В ходе выполнения протокола клиенты (Алиса, Боб) получают от сервера аутентификации (Трент) новый секретный сессионный ключ для шифрования взаимных сообщений в текущем сеансе связи. Рассмотрим реализацию протокола Деннинг — Сакко с симметричным ключом[3]:

  1. A l i c e { A , B } T r e n t  
  2. T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e  
  3. A l i c e { A , K , T T } K B B o b  

ОписаниеПравить

Первое сообщение от Алисы к Тренту содержит в себе идентификаторы участников предстоящего обмена — Алисы и Боба. Данное сообщение посылается открытым текстом:

A l i c e { A , B } T r e n t  

Трент генерирует сессионный ключ K   и отправляет Алисе зашифрованное сообщение, которое включает в себя идентификатор Боба, сессионный ключ, метку времени и пакет { A , K , T T } K B  , выполняющий роль сертификата Алисы:

T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e  

Затем Алиса расшифровывает сообщение Трента и отправляет Бобу свой сертификат { A , K , T T } K B  :

A l i c e { A , K , T T } K B B o b  

По окончании протокола у Алисы и Боба есть общий сеансовый ключ K  .

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

Атака на протоколПравить

В 1997 году Гэвин Лоу (англ. Gavin Lowe) представил атаку на протокол[4]:

  • Алиса и Боб завершают сеанс протокола, в результате чего у сторон вырабатывается сессионный ключ K  :
1. A l i c e { A , B } T r e n t  
2. T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e  
3. A l i c e { A , K , T T } K B B o b  
  • Далее злоумышленник повторяет последнее сообщение Алисы:
4. A t t a c k e r { A , K , T T } K B B o b  

Действия злоумышленника приводят к тому, что Боб решает, будто Алиса хочет установить с ним новое соединение.

Модификация протоколаПравить

В той же работе Лоу предложил модификацию протокола, в которой обеспечивается аутентификация Алисы перед Бобом[4]:

  • Сначала Алиса и Боб полностью повторяют сеанс протокола:
1. A l i c e { A , B } T r e n t  
2. T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e  
3. A l i c e { A , K , T T } K B B o b  
  • Затем Боб генерирует случайное число, шифрует его на сессионном ключе K   и отправляет Алисе:
4. B o b { R B } K A l i c e  
  • Алиса расшифровывает сообщение Боба, прибавляет к R B   единицу, шифрует полученный результат на сессионном ключе K   и отправляет Бобу:
5. A l i c e { R B + 1 } K B o b  
После того как Боб расшифрует сообщение Алисы, он сможет проверить факт владения Алисы сессионным ключом K  .

В рамках протокола Боб никак не подтверждает получение нового сессионного ключа K   и возможность им оперировать. Сообщение от Алисы на 5-м проходе могло быть перехвачено или изменено злоумышленником. Но никакого ответа Алиса от Боба уже не ожидает и уверена, что протокол завершился успешно.

Протокол Деннинг — Сакко с открытым ключомПравить

 
Взаимодействие участников в протоколе Деннинг — Сакко с открытым ключом

Асимметричный вариант протокола Деннинг — Сакко. Сервер аутентификации владеет открытыми ключами всех клиентов. Рассмотрим реализацию протокола Деннинг — Сакко с открытым ключом[5]:

  1. A l i c e { A , B } T r e n t  
  2. T r e n t { S T ( A , K A , T T ) , S T ( B , K B , T T ) } A l i c e  
  3. A l i c e { E B ( S A ( K , T A ) ) , S T ( A , K A , T T ) , S T ( B , K B , T T ) } B o b  

ОписаниеПравить

Первое сообщение от Алисы к Тренту содержит в себе идентификаторы участников предстоящего обмена — Алисы и Боба. Данное сообщение посылается открытым текстом:

A l i c e { A , B } T r e n t  

В ответ Трент отправляет Алисе подписанные сертификаты открытых ключей Алисы и Боба. Дополнительно в каждый сертификат добавляются временные метки:

T r e n t { S T ( A , K A , T T ) , S T ( B , K B , T T ) } A l i c e  

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

A l i c e { E B ( S A ( K , T A ) ) , S T ( A , K A , T T ) , S T ( B , K B , T T ) } B o b  

Боб проверяет подпись доверенного центра на сертификате S T ( A , K A , T T )  , расшифровывает сессионный ключ K   и проверяет подпись Алисы.

Атака на протоколПравить

Абади и Нидхем описали атаку на протокол[6], в ходе которой Боб, получив сообщение от Алисы, может выдать себя за неё в сеансе с другим пользователем. Отсутствие в сообщении от Алисы E K B ( S A ( K , T A ) )   идентификатора Боба приводит к тому, что Боб может использовать принятые от Алисы данные для того, чтобы выдать себя за Алису в новом сеансе с третьей стороной (Кларой).

  • Сначала Алиса и Боб проводят стандартный сеанс протокола, выработав новый сессионный ключ K  :
1. A l i c e { A , B } T r e n t  
2. T r e n t { S T ( A , K A , T T ) , S T ( B , K B , T T ) } A l i c e  
3. A l i c e { E B ( S A ( K , T A ) ) , S T ( A , K A , T T ) , S T ( B , K B , T T ) } B o b  
  • После этого Боб инициирует новый сеанс с Кларой и действует в рамках протокола:
4. B o b { B , C } T r e n t  
5. T r e n t { S T ( B , K B , T T ) , S T ( C , K C , T T ) } B o b  
  • На последнем шаге протокола Боб воспроизводит в сеансе с Кларой сообщения S A ( K , T A )   и S T ( A , K A , T T )  , полученные от Алисы:
6. B o b { E C ( S A ( K , T A ) ) , S T ( A , K A , T T ) , S T ( C , K C , T T ) } C l a r a  

Клара успешно проверяет подпись доверенного центра на сертификате S T ( A , K A , T T )  , расшифровывает сессионный ключ K   и проверяет подпись Алисы. В результате Клара уверена, что установила сеанс связи с Алисой, поскольку все необходимые шаги протокола были проделаны верно и все сообщения оказались корректны.

ПримечанияПравить

  1. Давыдов А. Н. Атаки на протоколы установления ключа (рус.) // Безопасность информационных технологий : Труды научно-технической конференции / под ред. Волчихина В. И., Зефирова С. Л. — Пенза: Изд-во Пензенского научно-исследовательского электротехнического института, 2004. — Декабрь (т. 5). — С. 99—104. Архивировано 19 августа 2019 года.
  2. Denning, Sacco, 1981.
  3. Мао, 2005, p. 79.
  4. 1 2 Lowe, 1997, The Denning-Sacco shared key protocol, pp. 4—5.
  5. Мао, 2005, p. 429.
  6. Abadi, Needham, 1996.

ЛитератураПравить

  • 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 0001-0782. — doi:10.1145/358722.358740.
  • Gavin Lowe. A family of attacks upon authentication protocols (англ.). — 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.