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

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

История

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

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

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

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

  1. A l i c e { A , B } T r e n t {\displaystyle Alice\to \left\{A,B\right\}\to Trent}
  2. T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e {\displaystyle Trent\to \left\{B,K,T_{T},\left\{A,K,T_{T}\right\}_{K_{B}}\right\}_{K_{A}}\to Alice}
  3. A l i c e { A , K , T T } K B B o b {\displaystyle Alice\to \left\{A,K,T_{T}\right\}_{K_{B}}\to Bob}

Описание

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

A l i c e { A , B } T r e n t {\displaystyle Alice\to \left\{A,B\right\}\to Trent}

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

T r e n t { B , K , T T , { A , K , T T } K B } K A A l i c e {\displaystyle Trent\to \left\{B,K,T_{T},\left\{A,K,T_{T}\right\}_{K_{B}}\right\}_{K_{A}}\to Alice}

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

A l i c e { A , K , T T } K B B o b {\displaystyle Alice\to \left\{A,K,T_{T}\right\}_{K_{B}}\to Bob}

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

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

Атака на протокол

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

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

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

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

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

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

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

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

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

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

  1. A l i c e { A , B } T r e n t {\displaystyle Alice\to \left\{A,B\right\}\to Trent}
  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 {\displaystyle Trent\to \left\{S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Alice}
  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 {\displaystyle Alice\to \left\{E_{B}\left(S_{A}\left(K,T_{A}\right)\right),S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Bob}

Описание

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

A l i c e { A , B } T r e n t {\displaystyle Alice\to \left\{A,B\right\}\to Trent}

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

T r e n t { S T ( A , K A , T T ) , S T ( B , K B , T T ) } A l i c e {\displaystyle Trent\to \left\{S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Alice}

Алиса генерирует новый сессионный ключ K {\displaystyle K} и отправляет его Бобу вместе с меткой времени T A {\displaystyle 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 {\displaystyle Alice\to \left\{E_{B}\left(S_{A}\left(K,T_{A}\right)\right),S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Bob}

Боб проверяет подпись доверенного центра на сертификате S T ( A , K A , T T ) {\displaystyle S_{T}\left(A,K_{A},T_{T}\right)} , расшифровывает сессионный ключ K {\displaystyle K} и проверяет подпись Алисы.

Атака на протокол

Абади и Нидхем описали атаку на протокол , в ходе которой Боб, получив сообщение от Алисы, может выдать себя за неё в сеансе с другим пользователем. Отсутствие в сообщении от Алисы E K B ( S A ( K , T A ) ) {\displaystyle E_{K_{B}}\left(S_{A}\left(K,T_{A}\right)\right)} идентификатора Боба приводит к тому, что Боб может использовать принятые от Алисы данные для того, чтобы выдать себя за Алису в новом сеансе с третьей стороной (Кларой).

  • Сначала Алиса и Боб проводят стандартный сеанс протокола, выработав новый сессионный ключ K {\displaystyle K} :
1. A l i c e { A , B } T r e n t {\displaystyle Alice\to \left\{A,B\right\}\to Trent}
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 {\displaystyle Trent\to \left\{S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Alice}
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 {\displaystyle Alice\to \left\{E_{B}\left(S_{A}\left(K,T_{A}\right)\right),S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(B,K_{B},T_{T}\right)\right\}\to Bob}
  • После этого Боб инициирует новый сеанс с Кларой и действует в рамках протокола:
4. B o b { B , C } T r e n t {\displaystyle Bob\to \left\{B,C\right\}\to Trent}
5. T r e n t { S T ( B , K B , T T ) , S T ( C , K C , T T ) } B o b {\displaystyle Trent\to \left\{S_{T}\left(B,K_{B},T_{T}\right),S_{T}\left(C,K_{C},T_{T}\right)\right\}\to Bob}
  • На последнем шаге протокола Боб воспроизводит в сеансе с Кларой сообщения S A ( K , T A ) {\displaystyle S_{A}\left(K,T_{A}\right)} и S T ( A , K A , T T ) {\displaystyle S_{T}\left(A,K_{A},T_{T}\right)} , полученные от Алисы:
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 {\displaystyle Bob\to \left\{E_{C}\left(S_{A}\left(K,T_{A}\right)\right),S_{T}\left(A,K_{A},T_{T}\right),S_{T}\left(C,K_{C},T_{T}\right)\right\}\to Clara}

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

Примечания

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

Литература

  • 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 .

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