Открыть сервис

SKEME

SKEME — это протокол установления сеансовых ключей (key agreement protocol), разработанный в 1990-х годах и предназначенный для обеспечения конфиденциальности, аутентичности и целостности при обмене ключами между двумя сторонами в незащищённой сети. Протокол относится к классу аутентифицированных протоколов обмена ключами с использованием методов асимметричной криптографии и симметричного шифрования. SKEME был предложен как часть более широкой архитектуры для построения защищённых виртуальных частных сетей (VPN) и впоследствии лёг в основу стандарта Internet Key Exchange (IKE), используемого в протоколе IPsec.

История и контекст создания

Протокол SKEME был разработан в середине 1990-х годов группой исследователей, включая Хьюго Кравчика (Hugo Krawczyk), который внёс значительный вклад в развитие криптографических протоколов. Основной целью создания SKEME было устранение недостатков, присущих более ранним протоколам обмена ключами, таким как протокол Диффи — Хеллмана (DH) в его базовой версии, который не обеспечивал аутентификации сторон и был уязвим для атак «человек посередине» (MITM).

В 1998 году протокол SKEME был интегрирован в состав Internet Key Exchange (IKE), который стал частью стандарта IPsec (RFC 2409). IKE объединил элементы трёх протоколов: SKEME, Oakley (протокол, разработанный Х. Орманом) и ISAKMP (Internet Security Association and Key Management Protocol). Впоследствии, в версии IKEv2 (RFC 4306, 2005 год), механизмы, заимствованные из SKEME, были переработаны, но сохранили ключевые принципы.

Принцип работы

SKEME основан на комбинации асимметричной криптографии (для аутентификации и обмена долговременными ключами) и симметричной криптографии (для защиты сеансовых данных). Протокол предполагает, что у каждой стороны есть пара долговременных асимметричных ключей (открытый и закрытый), а также возможность обмениваться сертификатами или предварительно распределёнными секретами.

Основные этапы

  1. Инициализация. Стороны (Алиса и Боб) обмениваются идентификаторами и, при необходимости, сертификатами открытых ключей.
  2. Генерация эфемерных ключей. Каждая сторона генерирует временные (эфемерные) ключи для сеанса, используя алгоритм Диффи — Хеллмана. Это позволяет получить общий секрет, который не может быть раскрыт даже при компрометации долговременных ключей в будущем (свойство Perfect Forward Secrecy, PFS).
  3. Аутентификация. Стороны подписывают свои эфемерные значения с помощью долговременных закрытых ключей или используют симметричный ключ, полученный из предварительно распределённого секрета. Это предотвращает подмену ключей.
  4. Выработка сеансового ключа. Из общего секрета DH и дополнительных материалов (например, nonce — случайных чисел) вычисляется сеансовый ключ для симметричного шифрования.

Режимы работы

SKEME поддерживает несколько режимов, которые различаются по степени защиты и производительности:

  • Основной режим (Main Mode). Включает полный обмен эфемерными ключами DH и аутентификацию. Обеспечивает PFS, но требует большего количества раундов (обычно 6 сообщений).
  • Агрессивный режим (Aggressive Mode). Сокращает число раундов до 3–4 за счёт передачи эфемерных ключей и аутентификационных данных в одном сообщении. Не обеспечивает PFS, так как ключи DH могут быть скомпрометированы.
  • Режим быстрого обновления (Quick Mode). Используется для обновления сеансовых ключей в рамках уже установленного защищённого соединения без повторной аутентификации.

Криптографические свойства

SKEME обладает рядом свойств, которые делают его пригодным для использования в сетевых протоколах:

  • Аутентификация ключей. Обе стороны могут быть уверены, что полученный сеансовый ключ принадлежит именно легитимному партнёру.
  • Совершенная прямая секретность (PFS). Компрометация долговременных ключей не позволяет расшифровать ранее перехваченные сеансы, если использовался основной режим.
  • Стойкость к атакам повторного воспроизведения (replay attacks). Использование nonce и временных меток предотвращает повторное использование старых сообщений.
  • Стойкость к атакам на основе знания ключа (key-compromise impersonation). Даже если злоумышленник узнаёт закрытый ключ одной стороны, он не может выдать себя за другую сторону без знания её ключа.

Применение

Основное применение SKEME — в составе протокола IKE, который является обязательным компонентом IPsec. IPsec используется для защиты трафика на сетевом уровне (L3) в VPN-соединениях, в том числе в корпоративных сетях, для удалённого доступа и для защиты каналов связи между дата-центрами.

Кроме того, элементы SKEME были адаптированы для других протоколов, например, для TLS (Transport Layer Security) в части аутентифицированного обмена ключами, хотя TLS использует собственную схему на основе протокола Диффи — Хеллмана с подписью.

Критика и ограничения

Несмотря на широкое распространение, SKEME и его реализация в IKE имеют ряд недостатков:

  • Сложность реализации. Протокол требует тщательной обработки состояний и большого количества криптографических операций, что может приводить к ошибкам в программном коде.
  • Уязвимость к атакам на основе времени. В некоторых реализациях IKEv1 были обнаружены уязвимости, связанные с непостоянным временем выполнения операций, что позволяло злоумышленникам восстанавливать ключи.
  • Избыточность для некоторых сценариев. Для простых приложений, где не требуется PFS, SKEME может быть излишне ресурсоёмким.

В IKEv2 многие из этих проблем были решены за счёт упрощения структуры протокола и использования более современных криптографических примитивов.

Влияние на стандарты

SKEME стал одним из трёх протоколов, на основе которых был разработан IKE (RFC 2409). Впоследствии IKE был стандартизирован как часть IPsec (RFC 4301, 4306). Несмотря на то, что в IKEv2 прямые отсылки к SKEME отсутствуют, его идеи — аутентифицированный обмен DH с использованием долговременных ключей и nonce — остаются фундаментальными для современных протоколов защиты сетевого трафика.

Источники

  • Krawczyk, H. (1996). «SKEME: A Versatile Secure Key Exchange Mechanism for Internet». Proceedings of the Internet Society Symposium on Network and Distributed System Security.
  • RFC 2409: «The Internet Key Exchange (IKE)» (1998).
  • RFC 4306: «Internet Key Exchange (IKEv2) Protocol» (2005).
  • Menezes, A., van Oorschot, P., Vanstone, S. (1996). «Handbook of Applied Cryptography». CRC Press.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →