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 .
Примечания
Литература
Ссылки
Категория:Сетевые протоколы Категория:Шифры