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 предоставляет возможность обмена ключами без вычислительных затрат, необходимых для обеспечения PFS [14]. Для этого на втором этапе вместо значений и , стороны посылают друг другу случайные числа и .
Третий этап тоже модифицируется. Аргументы функции меняются с и на и соответственно.
Данная модификация второго и третьего этапа позволяет сторонам убедиться в том, что ключ , полученный на первом этапе, известен обеим сторонам. [15].
Результатом выполнения протокола в данном режиме является сессионный ключ, вычисляемый как , где [16].
В данном режиме предполагается, что сторонам уже известен секретный ключ (например, ключ задан вручную), и они используют этот ключ для того, чтобы получить новый сессионный ключ [17]. В этом режиме первый этап можно пропустить и использовать секретный ключ вместо . В этом режиме обеспечивается perfect forward secrecy [18].
Сессионный ключ в данном режиме вычисляется так же, как в базовом [19].
Fast Re-Key — самый быстрый режим протокола SKEME [20]. Этот режим позволяет часто обновлять ключ без вычислительных затрат на асимметричное шифрование и на использование протокола Диффи — Хеллмана [21].
В этом режиме предполагается, что ключ известен сторонам с предыдущего раунда протокола. Первый этап пропускается, а второй и третий этап, а также вычисление сессионного ключа выполняются так же, как в режиме SKEME без PFS [22].
Примечания
Литература
- Krawczyk H. SKEME: A versatile secure key exchange mechanism for internet (англ.) // Network and Distributed System Security, 1996., Proceedings of the Symposium on IEEE. — 1996. — P. 114—127. — ISBN 0-8186-7222-6. — doi:10.1109/NDSS.1996.492418. (недоступная ссылка)
- Di Raimondo M., Gennaro R., Krawczyk H. Deniable authentication and key exchange (англ.) // Proceedings of the 13th ACM conference on Computer and communications security. — 2006. — P. 400—409. — ISBN 1-59593-518-5. — doi:10.1145/1180405.1180454.
- 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.
- Mao W., Paterson K.G. On the plausible deniability feature of Internet protocols (англ.). — Citeeer, 2002.
- Blanchet, B. Automatic proof of strong secrecy for security protocols (англ.) // Proceedings of the 2004 IEEE Symposium on Security and Privacy. — 2004. — P. 86-100. — ISBN 0-7695-2136-3. — doi:10.1109/SECPRI.2004.1301317. Архивировано 3 декабря 2013 года.


