SKEME

SKEME — криптографический протокол распространения ключей, созданный в 1996 году Хьюго Кравчиком(англ. Hugo Krawczyk). Он позволяет двум сторонам получить общий секретный ключ, используя незащищённый канал связи.

Протокол SKEME послужил основой для протокола IKE [1], определённого в RFC 2409.

Основные свойства протокола

  • аутентификация собеседников — уверенность в том, кто является собеседником [2];
  • совершенная прямая секретность (PFS) — потеря секретных ключей не ведёт к компрометации прошлой переписки [3];
  • возможность отречения — третье лицо не сможет доказать, что сообщения написаны кем-либо другому адресату [4];
  • строгая секретность — злоумышленник не может детектировать изменение секретного ключа [5];
  • гибкость — четыре возможных режима работы позволяют достичь компромисса между производительностью и безопасностью [6].

Режимы и этапы

Обозначения

Для описания протокола используются следующие обозначения:

  • — шифрование сообщения с открытым ключом, принадлежащим стороне A;
  • — вычисление криптографической хеш-функции с аргументом ;
  • — псевдослучайная функция с ключом , результат вычисления которой нельзя предсказать без знания ключа;
  • — идентификаторы сторон A и B соответственно;
  • — генератор и модуль соответственно, используемые в протоколе Диффи — Хеллмана.

Базовый режим

Первый этап

Во время первого этапа стороны A и B получают эфемерный ключ , зная открытые ключи друг друга [7]. Для этого они обмениваются «половинками ключа», зашифрованными открытыми ключами друг друга, а затем комбинируют «половинки» при помощи хеш-функции.

Значения и должны быть выбраны случайным образом[8]. Если сторона A следует протоколу, то она может быть уверена в том, что эфемерный ключ неизвестен никому, кроме B. Аналогично, сторона B может быть уверена в том, что эфемерный ключ не знает никто, кроме A[9].

Второй этап

На втором этапе стороны используют протокол Диффи — Хеллмана[10]. Сторона А выбирает случайное число и вычисляет значение . Сторона B выбирает случайное число и вычисляет значение . После этого, стороны обмениваются вычисленными значениями.

Третий этап

На третьем этапе происходит аутентификация и , переданных во время второго этапа, с использованием эфемерного ключа , полученного на первом этапе.

Включение в первое сообщение позволяет стороне B убедиться в том, что значение на втором этапе было действительно передано стороной A[11]. Значение в этом же сообщении позволяет B защититься от атаки повторного воспроизведения[12].

Генерация сессионного ключа

Результатом выполнения протокола является сессионный ключ, вычисляемый как [13].

SKEME без PFS

Режим SKEME без PFS предоставляет возможность обмена ключами без вычислительных затрат, необходимых для обеспечения PFS [14]. Для этого на втором этапе вместо значений и , стороны посылают друг другу случайные числа и .

Третий этап тоже модифицируется. Аргументы функции меняются с и на и соответственно.

Данная модификация второго и третьего этапа позволяет сторонам убедиться в том, что ключ , полученный на первом этапе, известен обеим сторонам. [15].

Результатом выполнения протокола в данном режиме является сессионный ключ, вычисляемый как , где [16].

Pre-shared key и PFS

В данном режиме предполагается, что сторонам уже известен секретный ключ (например, ключ задан вручную), и они используют этот ключ для того, чтобы получить новый сессионный ключ [17]. В этом режиме первый этап можно пропустить и использовать секретный ключ вместо . В этом режиме обеспечивается perfect forward secrecy [18].

Сессионный ключ в данном режиме вычисляется так же, как в базовом [19].

Fast Re-Key

Fast Re-Key — самый быстрый режим протокола SKEME [20]. Этот режим позволяет часто обновлять ключ без вычислительных затрат на асимметричное шифрование и на использование протокола Диффи — Хеллмана [21].

В этом режиме предполагается, что ключ известен сторонам с предыдущего раунда протокола. Первый этап пропускается, а второй и третий этап, а также вычисление сессионного ключа выполняются так же, как в режиме SKEME без PFS [22].

Примечания

Литература

  • Boyd C., Mathuria A. Protocols for authentication and key establishment. — Springer, 2003. — 321 с. — ISBN 3-540-43107-1.
  • Bauer FL., Steinbruggen R. Security Protocols and their Properties (англ.) // Foundations of Secure Computation. — IOS Press, 2000. — Vol. 175. — P. 39-60. — ISBN 1-58603-015-9.

Ссылки