Криптографические обозначения, используемые в протоколах проверки подлинности и обмена ключами
Идентификаторы Алисы (Alice), инициатора сессии
Идентификатор Боба (Bob), стороны, с которой устанавливается сессия
Идентификатор Трента (Trent), доверенной промежуточной стороны
Открытые ключи Алисы, Боба и Трента
Секретные ключи Алисы, Боба и Трента
Шифрование данных ключом Алисы, либо совместным ключом Алисы и Трента
Шифрование данных ключом Боба, либо совместным ключом Боба и Трента
Шифрование данных секретными ключами Алисы, Боба (цифровая подпись)
Порядковый номер сессии (для предотвращения атаки с повтором)
Случайный сеансовый ключ, который будет использоваться для симметричного шифрования данных
Шифрование данных временным сеансовым ключом
Метки времени, добавляемые в сообщения Алисой и Бобом соответственно
Случайные числа (nonce), которые были выбраны Алисой и Бобом соответственно
Wide-Mouth Frog (досл. с англ. «лягушка с широкой глоткой») — возможно, самый простой протокол для симметричного обмена ключами с использованием доверенного сервера. (Алиса) и (Боб) разделяют секретный ключ с (Трентом). В данном протоколе ключи используются только для их распределения, а не для шифрования сообщений[1].
Для начала сеанса передачи сообщений Алиса шифрует конкатенацию метки времени, идентификатора Боба и сгенерированного случайного сеансового ключа. В качестве ключа шифрования используется ключ, который известен Алисе и Тренту — промежуточному доверенному серверу. После этого Алиса передаёт своё имя (в открытом виде) и зашифрованные данные Тренту.
Трент расшифровывает совместным с Алисой ключом пакет, выбирает оттуда сгенерированный Алисой случайный сеансовый ключ и составляет конкатенацию из новой метки времени, идентификатора Алисы и сеансового ключа, после чего шифрует её общим с Бобом ключом и передаёт ему.
После этого Боб расшифровывает пакет данных общим с Трентом ключом и может использовать сгенерированный Алисой случайный сеансовый ключ для передачи данных.
где I(Alice) и I(Bob) — злоумышленник имитирующий Алису и Боба соответственно.
Изъян протокола заключается в том, что Трент обновляет свою временную метку , от временной метки Алисы . То есть пока Трент не держит список всех рабочих ключей и меток, злоумышленник может поддерживать ключи рабочими, используя Трента в качестве предсказателя.
Практический результат данного недостатка будет зависеть от приложения. Например, если пользователи используют смарт-карту с данным протоколом, который в открытом виде отправляет сеансовый ключ в программный модуль шифрования (англ.software bulk encryption routine), то ключи могут быть открыты для данной атаки. Злоумышленник может наблюдать как Алиса и Боб проводят сеансы и поддерживать ключи рабочими, пока не появится возможность выкрасть смарт-карту[5].
Атака 1997 года
В 1997 году Гэвин Лоу предложил ещё один вариант атаки на данный протокол, основанный на том, что злоумышленник заставляет думать Боба, что Алиса установила два сеанса обмена, в то время как Алиса устанавливает один сеанс. Атака включает два чередующихся прохода протокола, которые мы назовём и , обозначим, например, второе сообщение сеанса \alpha как Тогда атака выглядит следующим образом:
,
где I(Trent) злоумышленник имитирующий Трента.
Сеанс представляет нормальный ход обмена ключами, когда Алиса устанавливает сеанс с Бобом, используя ключ . Тогда в сообщении , злоумышленник имитирует Трента, и повторяет сообщение ; после чего Боб считает, что Алиса пытается начать второй сеанс.
Кроме того, злоумышленник может воспроизвести для Трента сообщение , как сообщение следующего сеанса. Это приведёт к получению Бобом второго сообщение, с таким же результатом как и ранее.
Данная модификация была предложена Гэвином Лоу, для устранения уязвимости для атаки 1997 года. Выглядит она следующим образом:
Эти изменения позволят избежать атак 1997 года: Боб будет генерировать два разных одноразовых номера, по одному для каждого сеанса, и ожидать в качестве ответа сообщение 4. В то же время Алиса будет возвращать только одно такое сообщение, и злоумышленник не сможет сгенерировать другого.
К сожалению, данная модификация убирает самую привлекательную черту протокола Wide-Mouthed Frog — простоту[3].
Особенности
Требуется глобальный счётчик.
Трент имеет доступ ко всем ключам.
Значение сеансового ключа полностью определяется Алисой, то есть она должна быть достаточно компетентной для генерации хороших ключей.
Может дублировать сообщения, во время действия временной метки.
Алиса не знает существует ли Боб.
Протокол динамичный, что обычно нежелательно, так как это требует большей функциональности от Трента. Например, Трент должен справляться с ситуацией, когда Боб недоступен.
Pranav Vyas, Dr. Bhushan TrivediAn Analysis Of Session Key Exchange Protocols // International Journal of Engineering Research and Applications Vol. 2, Issue 4, June-July 2012, pp.658-663