Wide-Mouth Frog

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

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

История

Автором протокола считается Майкл Бэрроуз (англ. Michael Burrows), впервые он был опубликован в «Michael Burrows, Martin Abadi, and Roger Needham. A logic of authentication»[2] в 1989 году. В 1997 Гэвин Лоу (англ. Gavin Lowe (computer scientist)) в своей работе «A Family of Attacks upon Authentication Protocols»[3] предложил модифицированный Wide-Mouthed Frog протокол (англ. Lowe modified Wide-Mouthed frog protocol), исправляющий некоторые уязвимости.

Протокол Wide-Mouthed Frog[4]

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

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

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

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

T r e n t { E B ( T T , A , K ) } B o b {\displaystyle Trent\to \left\{E_{B}\left(T_{T},A,K\right)\right\}\to Bob}

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

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

Атака 1995 года

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

  1. A l i c e { A , E A ( T A , B , K ) } T r e n t {\displaystyle Alice\to \left\{A,E_{A}\left(T_{A},B,K\right)\right\}\to Trent}
  2. T r e n t { E B ( T T , A , K ) } B o b {\displaystyle Trent\to \left\{E_{B}\left(T_{T},A,K\right)\right\}\to Bob}
  3. I ( B o b ) { B , E B ( T T , A , K ) } T r e n t {\displaystyle I(Bob)\to \left\{B,E_{B}\left(T_{T},A,K\right)\right\}\to Trent}
  4. T r e n t { E A ( T T , B , K ) } A l i c e {\displaystyle Trent\to \left\{E_{A}\left(T'_{T},B,K\right)\right\}\to Alice}
  5. I ( A l i c e ) { A , E A ( T T , B , K ) } T r e n t {\displaystyle I(Alice)\to \left\{A,E_{A}\left(T'_{T},B,K\right)\right\}\to Trent}
  6. T r e n t { E B ( T T , A , K ) } B o b {\displaystyle Trent\to \left\{E_{B}\left(T''_{T},A,K\right)\right\}\to Bob} ,

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

Изъян протокола заключается в том, что Трент обновляет свою временную метку T T {\displaystyle T_{T}} , от временной метки Алисы T A {\displaystyle T_{A}} . То есть пока Трент не держит список всех рабочих ключей и меток, злоумышленник может поддерживать ключи рабочими, используя Трента в качестве предсказателя.

Практический результат данного недостатка будет зависеть от приложения. Например, если пользователи используют смарт-карту с данным протоколом, который в открытом виде отправляет сеансовый ключ в программный модуль шифрования (англ. software bulk encryption routine), то ключи могут быть открыты для данной атаки. Злоумышленник может наблюдать как Алиса и Боб проводят сеансы и поддерживать ключи рабочими, пока не появится возможность выкрасть смарт-карту[5].

Атака 1997 года

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

  1. M e s s a g e {\displaystyle Message} α .1 . {\displaystyle \alpha .1.} A l i c e { A , E A ( T A , B , K ) } T r e n t {\displaystyle Alice\to \left\{A,E_{A}\left(T_{A},B,K\right)\right\}\to Trent}
  2. M e s s a g e {\displaystyle Message} α .2 . {\displaystyle \alpha .2.} T r e n t { B , E B ( T T , A , K ) } B o b {\displaystyle Trent\to \left\{B,E_{B}\left(T_{T},A,K\right)\right\}\to Bob}
  3. M e s s a g e {\displaystyle Message} β .2 . {\displaystyle \beta .2.} I ( T r e n t ) { B , E B ( T T , A , K ) } B o b {\displaystyle I(Trent)\to \left\{B,E_{B}\left(T_{T},A,K\right)\right\}\to Bob} ,

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

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

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

Данную уязвимость исправляет модифицированный Wide-Mouthed Frog протокол (англ. Lowe modified Wide-Mouthed frog protocol)[3].

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

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

Схема взаимодейcтвия участников модифицированного протокола Wide-Mouth Frog
  1. A l i c e { A , E A ( T A , B , K ) } T r e n t {\displaystyle Alice\to \left\{A,E_{A}\left(T_{A},B,K\right)\right\}\to Trent}
  2. T r e n t { E B ( T T , A , K ) } B o b {\displaystyle Trent\to \left\{E_{B}\left(T_{T},A,K\right)\right\}\to Bob}
  3. B o b { R B } K A l i c e {\displaystyle Bob\to \left\{R_{B}\right\}_{K}\to Alice}
  4. A l i c e { R B + 1 } K B o b {\displaystyle Alice\to \left\{R_{B}+1\right\}_{K}\to Bob}

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

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

Особенности

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

Примечания

Литература

  • Брюс Шнайер. Протокол Wide-Mouth Frog // / Прикладная криптография. — 2002. — ISBN 5-89392-055-4.
  • M. Burrows, M. Abadi, R. Needham A Logic of Authentication // Research Report 39, Digital Equipment Corp. Systems Research Center — Feb. 1989
  • M. Burrows, M. Abadi, R. Needham A Logic of Authentication // ACM Transactions on Computer Systems, — v. 8 — n. 1 — Feb. 1990 — pp. 18—36
  • Gavin Lowe A Family of Attacks upon Authentication Protocols // Department of Mathematics and Computer Science, Technical Report 1997/5, University of Leicester Jan. 1997
  • Pranav Vyas, Dr. Bhushan Trivedi An Analysis Of Session Key Exchange Protocols // International Journal of Engineering Research and Applications Vol. 2, Issue 4, June-July 2012, pp.658-663
  • Ji Ma, Mehmet A. Orgun and Abdul Sattar Analysis of Authentication Protocols in Agent-Based Systems Using Labeled Tableaux // IEEE TRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICS—PART B: CYBERNETICS, VOL. 39, NO. 4, AUGUST 2009
  • Security Protocol Open Repository
  • Ross Anderson and Roger Needham Programming Satan’s Computer // Cambridge University Computer Laboratory Pembroke Street, Cambridge, England CB2 3QG
Перейти к шаблону «Протоколы аутентификации и обмена ключами»
С симметричными алгоритмами
С симметричными и
асимметричными алгоритмами
Протоколы и сервисы, используемые в интернете