SKEME
SKEME — криптографический протокол распространения ключей, созданный в 1996 году Хьюго Кравчиком(Шаблон:Lang-en). Он позволяет двум сторонам получить общий секретный ключ, используя незащищённый канал связи.
Протокол SKEME послужил основой для протокола IKE Шаблон:Sfn, определённого в RFC 2409.
Основные свойства протокола
- аутентификация собеседников — уверенность в том, кто является собеседником Шаблон:Sfn;
- perfect forward secrecy (PFS) — потеря секретных ключей не ведёт к компрометации прошлой переписки Шаблон:Sfn;
- возможность отречения — третье лицо не сможет доказать, что сообщения написаны кем-либо другому адресату Шаблон:Sfn;
- strong secrecy — злоумышленник не может детектировать изменение секретного ключа Шаблон:Sfn;
- гибкость — четыре возможных режима работы позволяют достичь компромисса между производительностью и безопасностью Шаблон:Sfn.
Режимы и этапы
Обозначения
Для описания протокола используются следующие обозначения:
- — шифрование сообщения с открытым ключом, принадлежащим стороне A;
- — вычисление криптографической хеш-функции с аргументом ;
- — псевдослучайная функция с ключом , результат вычисления которой нельзя предсказать без знания ключа;
- — идентификаторы сторон A и B соответственно;
- — генератор и модуль соответственно, используемые в протоколе Диффи — Хеллмана.
Базовый режим
Первый этап
Во время первого этапа стороны A и B получают эфемерный ключ , зная открытые ключи друг друга Шаблон:Sfn. Для этого они обмениваются «половинками ключа», зашифрованными открытыми ключами друг друга, а затем комбинируют «половинки» при помощи хеш-функции.
Значения и должны быть выбраны случайным образомШаблон:Sfn. Если сторона A следует протоколу, то она может быть уверена в том, что эфемерный ключ неизвестен никому, кроме B. Аналогично, сторона B может быть уверена в том, что эфемерный ключ не знает никто, кроме AШаблон:Sfn.
Второй этап
На втором этапе стороны используют протокол Диффи — ХеллманаШаблон:Sfn. Сторона А выбирает случайное число и вычисляет значение . Сторона B выбирает случайное число и вычисляет значение . После этого, стороны обмениваются вычисленными значениями.
Третий этап
На третьем этапе происходит аутентификация и , переданных во время второго этапа, с использованием эфемерного ключа , полученного на первом этапе.
Включение в первое сообщение позволяет стороне B убедиться в том, что значение на втором этапе было действительно передано стороной AШаблон:Sfn. Значение в этом же сообщении позволяет B защититься от атаки повторного воспроизведенияШаблон:Sfn.
Генерация сессионного ключа
Результатом выполнения протокола является сессионный ключ, вычисляемый как Шаблон:Sfn.
SKEME без PFS
Режим SKEME без PFS предоставляет возможность обмена ключами без вычислительных затрат, необходимых для обеспечения PFS Шаблон:Sfn. Для этого на втором этапе вместо значений и , стороны посылают друг другу случайные числа и .
Третий этап тоже модифицируется. Аргументы функции меняются с и на и соответственно.
Данная модификация второго и третьего этапа позволяет сторонам убедиться в том, что ключ , полученный на первом этапе, известен обеим сторонам. Шаблон:Sfn.
Результатом выполнения протокола в данном режиме является сессионный ключ, вычисляемый как , где Шаблон:Sfn.
Pre-shared key и PFS
В данном режиме предполагается, что сторонам уже известен секретный ключ (например, ключ задан вручную), и они используют этот ключ для того, чтобы получить новый сессионный ключ Шаблон:Sfn. В этом режиме первый этап можно пропустить и использовать секретный ключ вместо . В этом режиме обеспечивается perfect forward secrecy Шаблон:Sfn.
Сессионный ключ в данном режиме вычисляется так же, как в базовом Шаблон:Sfn.
Fast Re-Key
Fast Re-Key — самый быстрый режим протокола SKEME Шаблон:Sfn. Этот режим позволяет часто обновлять ключ без вычислительных затрат на асимметричное шифрование и на использование протокола Диффи — Хеллмана Шаблон:Sfn.
В этом режиме предполагается, что ключ известен сторонам с предыдущего раунда протокола. Первый этап пропускается, а второй и третий этап, а также вычисление сессионного ключа выполняются так же, как в режиме SKEME без PFS Шаблон:Sfn.