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

Материал из testwiki
Перейти к навигации Перейти к поиску

Шаблон:Нет сносок

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

Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
AИдентификаторы Алисы (Alice), инициатора сессии
BИдентификатор Боба (Bob), стороны, с которой устанавливается сессия
TИдентификатор Трента (Trent), доверенной промежуточной стороны
KA,KB,KTОткрытые ключи Алисы, Боба и Трента
KA1,KB1,KT1Секретные ключи Алисы, Боба и Трента
EA,{...}KAШифрование данных ключом Алисы, либо совместным ключом Алисы и Трента
EB,{...}KBШифрование данных ключом Боба, либо совместным ключом Боба и Трента
{...}KB1,{...}KA1Шифрование данных секретными ключами Алисы, Боба (цифровая подпись)
IПорядковый номер сессии (для предотвращения атаки с повтором)
KСлучайный сеансовый ключ, который будет использоваться для симметричного шифрования данных
EK,{...}KШифрование данных временным сеансовым ключом
TA,TBМетки времени, добавляемые в сообщения Алисой и Бобом соответственно
RA,RBСлучайные числа (nonce), которые были выбраны Алисой и Бобом соответственно

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

История

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

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

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

Описание

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

Алиса отправляет Бобу сообщение, содержащее идентификатор Алисы и некоторое случайное число Алисы:
  1. Alice{A,RA}Bob
Боб объединяет идентификатор Алисы, ее случайное число и метку времени, шифрует сообщение общим с Трентом ключом и посылает его Тренту, добавив свой идентификатор и случайное число Боба:
2. Bob{B,RB,EB(A,RA,TB)}Trent
Трент генерирует сеансовый ключ K, а затем создает два сообщения. Первое включает идентификатор Боба, случайное число Алисы, случайный сеансовый ключ, метку времени и шифруется общим для Трента и Алисы ключом. Второе состоит из идентификатора Алисы, сеансового ключа, метки времени и шифруется общим для Трента и Боба ключом. Трент добавляет к ним случайное число Боба и отправляет Алисе:
3. Trent{EA(B,RA,K,TB),EB(A,K,TB),RB}Alice
Алиса извлекает K и убеждается, что RA совпадает с тем, что было послано на этапе 1. Алиса отправляет Бобу два сообщения. Первое - это второе сообщение от Трента, зашифрованное ключом Боба. Второе - это случайное число Боба, зашифрованное сеансовым ключом.
4. Alice{EB(A,K,TB),EK(RB)}Bob
Боб расшифровывает сообщение своим ключом и убеждается, что значения TB и RB не изменились.
Если оба случайных числа и метка времени совпадают, то Алиса и Боб убеждаются в подлинности друг друга и получают секретный ключ. Нет необходимости синхронизировать часы, так как метка времени определяется только по часам Боба и только Боб проверяет созданную им метку времени.

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

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

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

  1. Alice{EB(A,K,TB),R'A}Bob

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

2. Bob{R'B,EK(R'A)}Alice
Алиса отправляет Бобу его новое случайное число, зашифрованное сеансовым ключом:
3. Alice{EK(R'B)}Bob

Использование новых случайных чисел R'A и R'B защищает от атаки с повторной передачей.

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

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

I (от англ. Intruder) - злоумышленник.

  1. I(Alice){EB(A,K,TB),R'A}Bob
  2. Bob{R'B,EK(R'A)}I(Alice)
  3. I(Alice){EB(A,K,TB),R'B}Bob
  4. Bob{R'B,EK(R'B)}I(Alice)
  5. I(Alice){EK(R'B)}Bob

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

  1. I(Bob){B,RB,EB(A,K0,TB)}Trent
  2. Trent{EA(B,RA,K1,TB),EB(A,K1,TB),RB}I(Alice)
  3. I(Bob){B,RB,EB(A,K1,TB)}Trent
  4. Trent{EA(B,RA,K2,TB),EB(A,K2,TB),RB}I(Alice) и т.д.

В этой атаке злоумышленник может получить столько шифров EB(A,Ki,TB), сколько необходимо для начала атаки на основе открытых текстов.

Литература

Шаблон:Протоколы аутентификации и обмена ключами