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

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

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

аутентификация собеседников — уверенность в том, кто является собеседником ; perfect forward secrecy (PFS) — потеря секретных ключей не ведёт к компрометации прошлой переписки ; возможность отречения — третье лицо не сможет доказать, что сообщения написаны кем-либо другому адресату ; strong secrecy — злоумышленник не может детектировать изменение секретного ключа ; гибкость — четыре возможных режима работы позволяют достичь компромисса между производительностью и безопасностью .

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

Обозначения

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

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

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

Первый этап

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

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

Второй этап

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

Третий этап

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

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

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

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

SKEME без PFS

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

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

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

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

Pre-shared key и PFS

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

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

Fast Re-Key

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

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

Примечания

Литература

Ссылки

Категория:Сетевые протоколы Категория:Шифры