Протокол Ньюмана — Стабблбайна

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Протокол Ньюмана-Стабблбайна

Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
[math]\displaystyle{ A }[/math]Идентификаторы Алисы (Alice), инициатора сессии
[math]\displaystyle{ B }[/math]Идентификатор Боба (Bob), стороны, с которой устанавливается сессия
[math]\displaystyle{ T }[/math]Идентификатор Трента (Trent), доверенной промежуточной стороны
[math]\displaystyle{ K_A, K_B, K_T }[/math]Открытые ключи Алисы, Боба и Трента
[math]\displaystyle{ K_A^{-1}, K_B^{-1}, K_T^{-1} }[/math]Секретные ключи Алисы, Боба и Трента
[math]\displaystyle{ E_A, \left\{...\right\}_{K_A} }[/math]Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента
[math]\displaystyle{ E_B, \left\{...\right\}_{K_B} }[/math]Шифрование данных ключом Боба, либо совместным ключом Боба и Трента
[math]\displaystyle{ \left\{...\right\}_{K_B^{-1}}, \left\{...\right\}_{K_A^{-1}} }[/math]Шифрование данных секретными ключами Алисы, Боба (цифровая подпись)
[math]\displaystyle{ I }[/math]Порядковый номер сессии (для предотвращения атаки с повтором)
[math]\displaystyle{ K }[/math]Случайный сеансовый ключ, который будет использоваться для симметричного шифрования данных
[math]\displaystyle{ E_K, \left\{...\right\}_{K} }[/math]Шифрование данных временным сеансовым ключом
[math]\displaystyle{ T_A, T_B }[/math]Метки времени, добавляемые в сообщения Алисой и Бобом соответственно
[math]\displaystyle{ R_A, R_B }[/math]Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно

Протокол Ньюмана — Стабблбайна — симметричный протокол аутентификации и обмена ключами с использованием доверенной стороны. Является усовершенствованной версией протокола Yahalom. Особенностью протокола является отсутствие необходимости синхронизации часов у сторон, а также возможность повторной аутентификации без использования промежуточной стороны.

История

Криптографический протокол Ньюмана-Стабблбайна для удостоверения подписи и обмена ключами был впервые опубликован в 1993 году. Протокол является модификацией протокола Yahalom и разработан в Массачусетском технологическом институте (MIT) Клифордом Ньюманом и Стюартом Стабблбаном.

Описание протокола

Взаимодействие участников в протоколе Ньюмана-Стабблбайна

Описание

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

Алиса отправляет Бобу сообщение, содержащее идентификатор Алисы и некоторое случайное число Алисы:
  1. [math]\displaystyle{ Alice \to \left\{ A, R_A \right\} \to Bob }[/math]
Боб объединяет идентификатор Алисы, ее случайное число и метку времени, шифрует сообщение общим с Трентом ключом и посылает его Тренту, добавив свой идентификатор и случайное число Боба:
2. [math]\displaystyle{ Bob \to \left\{ B, R_B, E_B \left( A, R_A, T_B \right) \right\} \to Trent }[/math]
Трент генерирует сеансовый ключ [math]\displaystyle{ K }[/math], а затем создает два сообщения. Первое включает идентификатор Боба, случайное число Алисы, случайный сеансовый ключ, метку времени и шифруется общим для Трента и Алисы ключом. Второе состоит из идентификатора Алисы, сеансового ключа, метки времени и шифруется общим для Трента и Боба ключом. Трент добавляет к ним случайное число Боба и отправляет Алисе:
3. [math]\displaystyle{ Trent \to \left\{ E_A \left( B, R_A, K, T_B \right), E_B \left( A, K, T_B \right), R_B \right\} \to Alice }[/math]
Алиса извлекает [math]\displaystyle{ K }[/math] и убеждается, что [math]\displaystyle{ R_A }[/math] совпадает с тем, что было послано на этапе 1. Алиса отправляет Бобу два сообщения. Первое - это второе сообщение от Трента, зашифрованное ключом Боба. Второе - это случайное число Боба, зашифрованное сеансовым ключом.
4. [math]\displaystyle{ Alice \to \left\{ E_B \left( A, K, T_B \right), E_K \left( R_B \right) \right\} \to Bob }[/math]
Боб расшифровывает сообщение своим ключом и убеждается, что значения [math]\displaystyle{ T_B }[/math] и [math]\displaystyle{ R_B }[/math] не изменились.
Если оба случайных числа и метка времени совпадают, то Алиса и Боб убеждаются в подлинности друг друга и получают секретный ключ. Нет необходимости синхронизировать часы, так как метка времени определяется только по часам Боба и только Боб проверяет созданную им метку времени.

Проверка подлинности

Протокол обладает возможностью повторной аутентификации сторон без использования промежуточной стороны, но с использованием новых случайных чисел:

Алиса отправляет Бобу сообщение, присланное Трентом на этапе 3 и новое случайное число:

  1. [math]\displaystyle{ Alice \to \left\{ E_B \left( A, K, T_B \right), R'_A \right\} \to Bob }[/math]

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

2. [math]\displaystyle{ Bob \to \left\{ R'_B, E_K \left( R'_A\right) \right\} \to Alice }[/math]
Алиса отправляет Бобу его новое случайное число, зашифрованное сеансовым ключом:
3. [math]\displaystyle{ Alice \to \left\{ E_K \left( R'_B \right) \right\} \to Bob }[/math]

Использование новых случайных чисел [math]\displaystyle{ R'_A }[/math] и [math]\displaystyle{ R'_B }[/math] защищает от атаки с повторной передачей.

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

Атака на проверку подлинности

[math]\displaystyle{ I }[/math] (от англ. Intruder) - злоумышленник.

  1. [math]\displaystyle{ I(Alice) \to \left\{ E_B \left( A, K, T_B \right), R'_A \right\} \to Bob }[/math]
  2. [math]\displaystyle{ Bob \to \left\{ R'_B, E_K \left( R'_A\right) \right\} \to I(Alice) }[/math]
  3. [math]\displaystyle{ I(Alice) \to \left\{ E_B \left( A, K, T_B \right), R'_B \right\} \to Bob }[/math]
  4. [math]\displaystyle{ Bob \to \left\{ R'_B, E_K \left( R'_B\right) \right\} \to I(Alice) }[/math]
  5. [math]\displaystyle{ I(Alice) \to \left\{ E_K \left( R'_B \right) \right\} \to Bob }[/math]

Атака на основе открытых текстов

  1. [math]\displaystyle{ I(Bob) \to \left\{ B, R_B, E_B \left( A, K_0, T_B \right) \right\} \to Trent }[/math]
  2. [math]\displaystyle{ Trent \to \left\{ E_A \left( B, R_A, K_1, T_B \right), E_B \left( A, K_1, T_B \right), R_B \right\} \to I(Alice) }[/math]
  3. [math]\displaystyle{ I(Bob) \to \left\{ B, R_B, E_B \left( A, K_1, T_B \right) \right\} \to Trent }[/math]
  4. [math]\displaystyle{ Trent \to \left\{ E_A \left( B, R_A, K_2, T_B \right), E_B \left( A, K_2, T_B \right), R_B \right\} \to I(Alice) }[/math] и т.д.

В этой атаке злоумышленник может получить столько шифров [math]\displaystyle{ E_B \left( A, K_i, T_B \right) }[/math], сколько необходимо для начала атаки на основе открытых текстов.

Литература

  • Шнайер Б. Протокол Ньюмана-Стабблбайна // Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — С. 82. — 816 с. — 3000 экз. — ISBN 5-89392-055-4.
  • A. Kehne, J. Schönwälder, H. Langendörfer. A nonce-based protocol for multiple authentications (англ.) // ACM SIGOPS Operating Systems Review. — 1992. — Vol. 26, iss. 4. — P. 84 - 89. — ISSN 0163-5980.
  • B. Clifford Neuman, Stuart G. Stubblebine. A note on the use of timestamps as nonces (англ.) // ACM SIGOPS Operating Systems Review. — New York, NY, USA: ACM, 1993. — Vol. 2, iss. 27. — P. 10—14. — ISSN 0163-5980.