Wide-Mouth Frog

Материал из testwiki
Версия от 18:22, 14 апреля 2022; imported>Basicat537 (growthexperiments-addlink-summary-summary:1|0|1)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
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), которые были выбраны Алисой и Бобом соответственно

Wide-Mouth Frog (досл. с англ. «лягушка с широкой глоткой») — возможно, самый простой протокол для симметричного обмена ключами с использованием доверенного сервера. A (Алиса) и B (Боб) разделяют секретный ключ с T (Трентом). В данном протоколе ключи используются только для их распределения, а не для шифрования сообщенийШаблон:Sfn.

История

Автором протокола считается Шаблон:Не переведено 2, впервые он был опубликован в «Michael Burrows, Martin Abadi, and Roger Needham. A logic of authentication»Шаблон:Sfn в 1989 году. В 1997 Шаблон:Не переведено 2 в своей работе «A Family of Attacks upon Authentication Protocols»Шаблон:Sfn предложил Шаблон:Не переведено 2, исправляющий некоторые уязвимости.

Протокол Wide-Mouthed FrogШаблон:Sfn

Схема взаимодействия участников протокола Wide-Mouth Frog

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

Alice{A,EA(TA,B,K)}Trent

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

Trent{EB(TT,A,K)}Bob

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

Атаки на протокол Wide-Mouthed Frog

Атака 1995 года

В 1995 году Росс Андерсон и Роджер Нидхем предложили следующий алгоритм атаки на протокол:

  1. Alice{A,EA(TA,B,K)}Trent
  2. Trent{EB(TT,A,K)}Bob
  3. I(Bob){B,EB(TT,A,K)}Trent
  4. Trent{EA(T'T,B,K)}Alice
  5. I(Alice){A,EA(T'T,B,K)}Trent
  6. Trent{EB(T'T,A,K)}Bob,

где I(Alice) и I(Bob) — злоумышленник имитирующий Алису и Боба соответственно.

Изъян протокола заключается в том, что Трент обновляет свою временную метку TT, от временной метки Алисы TA. То есть пока Трент не держит список всех рабочих ключей и меток, злоумышленник может поддерживать ключи рабочими, используя Трента в качестве предсказателя.

Практический результат данного недостатка будет зависеть от приложения. Например, если пользователи используют смарт-карту с данным протоколом, который в открытом виде отправляет сеансовый ключ в Шаблон:Не переведено 2, то ключи могут быть открыты для данной атаки. Злоумышленник может наблюдать как Алиса и Боб проводят сеансы и поддерживать ключи рабочими, пока не появится возможность выкрасть смарт-картуШаблон:Sfn.

Атака 1997 года

В 1997 году Гэвин Лоу предложил ещё один вариант атаки на данный протокол, основанный на том, что злоумышленник заставляет думать Боба, что Алиса установила два сеанса обмена, в то время как Алиса устанавливает один сеанс. Атака включает два чередующихся прохода протокола, которые мы назовём α и β, обозначим, например, второе сообщение сеанса \alpha как α.2. Тогда атака выглядит следующим образом:

  1. Message α.1. Alice{A,EA(TA,B,K)}Trent
  2. Message α.2. Trent{B,EB(TT,A,K)}Bob
  3. Message β.2. I(Trent){B,EB(TT,A,K)}Bob,

где I(Trent) злоумышленник имитирующий Трента.

Сеанс α представляет нормальный ход обмена ключами, когда Алиса устанавливает сеанс с Бобом, используя ключ K. Тогда в сообщении β.2, злоумышленник имитирует Трента, и повторяет сообщение α.2; после чего Боб считает, что Алиса пытается начать второй сеанс.

Кроме того, злоумышленник может воспроизвести для Трента сообщение α.1, как сообщение следующего сеанса. Это приведёт к получению Бобом второго сообщение, с таким же результатом как и ранее.

Данную уязвимость исправляет Шаблон:Не переведено 2Шаблон:Sfn.

Модифицированный Wide-Mouthed Frog протокол

Данная модификация была предложена Гэвином Лоу, для устранения уязвимости для атаки 1997 года. Выглядит она следующим образом:

Схема взаимодейcтвия участников модифицированного протокола Wide-Mouth Frog
  1. Alice{A,EA(TA,B,K)}Trent
  2. Trent{EB(TT,A,K)}Bob
  3. Bob{RB}KAlice
  4. Alice{RB+1}KBob

Эти изменения позволят избежать атак 1997 года: Боб будет генерировать два разных одноразовых номера, по одному для каждого сеанса, и ожидать в качестве ответа сообщение 4. В то же время Алиса будет возвращать только одно такое сообщение, и злоумышленник не сможет сгенерировать другого.

К сожалению, данная модификация убирает самую привлекательную черту протокола Wide-Mouthed Frog — простотуШаблон:Sfn.

Особенности

  • Требуется глобальный счётчик.
  • Трент имеет доступ ко всем ключам.
  • Значение сеансового ключа K полностью определяется Алисой, то есть она должна быть достаточно компетентной для генерации хороших ключей.
  • Может дублировать сообщения, во время действия временной метки.
  • Алиса не знает существует ли Боб.
  • Протокол динамичный, что обычно нежелательно, так как это требует большей функциональности от Трента. Например, Трент должен справляться с ситуацией, когда Боб недоступен.

Примечания

Шаблон:Примечания

Литература

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