Перейти к содержанию

VKO, KDF и UKM: от согласованного секрета до рабочих ключей

Канонический источник: Канонические определения: VKO, KDF, KDF_TREE и PRF. Здесь остаются сценарии интеграции, схемы и диагностические примеры.

Понятийная карта ключевого обмена на ГОСТ Р 34.10-2012 и типичные проблемы совместимости.

Документация ПО — НАЙС.ОС CLOUD. Это самостоятельная учебно-справочная статья. Команды приведены для изучения и диагностики; операции с ключами, дисками и действующими сервисами выполняют только после резервного копирования и проверки назначения.

Что именно происходит при согласовании ключа

Для обмена между двумя участниками часто используется пара ключей на эллиптической кривой и механизм VKO. Его результат не следует путать с готовым ключом для произвольного шифра: профиль может требовать дальнейшую функцию выработки ключа KDF, разделение ключевого материала и специальные параметры контекста. В RFC 7836 описаны VKO, HMAC-Стрибог и схемы KDF; конкретный протокол (CMS, IKEv2, TLS) определяет, как их связать.

Роли величин

Обозначение Роль Важная проверка
Закрытый ключ участника Секретный скаляр Не покидает хранилище
Открытый ключ участника Публичная точка Проверить допустимость точки и кривой
VKO Выработка совместного материала Совпадение профиля у обеих сторон
UKM Необходимый для профиля параметр выработки/обёртки Размер, уникальность и способ передачи
KDF Вывод ключей определённой длины Метки, контекст, счётчик, длина результата
KEK Защита ключа содержимого Не использовать для произвольных целей
CEK Шифрование конкретного содержимого Жизненный цикл и ограничение использования

Почему нельзя использовать «просто хэш VKO»

Даже если библиотека возвращает 256 бит, протокол может требовать строго определённые входы для PRF/KDF, определённый порядок байтов и явную метку применения ключа. Несовпадение одного поля приводит к разным рабочим ключам на двух сторонах. Пытаться исправить это повторными преобразованиями байтов без доказательства соответствия RFC опасно: получится несовместимый собственный протокол.

План испытания

  1. Выбрать один конкретный набор параметров кривой из стандарта.
  2. Использовать публичные тестовые ключи и UKM из RFC 7836.
  3. Сопоставить промежуточные значения на двух независимых реализациях.
  4. Сверить точный KDF-контекст, длины и метки.
  5. Проверить отрицательные случаи: неверная точка, некорректный UKM, несовпадение параметров.
  6. Только затем интегрировать VKO в CMS RecipientInfo или сетевой профиль.

Сетевые протоколы и CMS

В CMS VKO часто связан с транспортом CEK к получателю. В IKEv2 ключевой обмен входит в протокол с собственными требованиями к предложениям и смене SA. В TLS 1.3 key schedule тоже задаётся профилем протокола. Поэтому результат теста VKO нельзя напрямую объявить успешной проверкой ГОСТ-CMS или ГОСТ-TLS.

Первоисточники и дополнительное чтение

  • RFC 7836 — HMAC, PRF, KDF, VKO и параметры кривых.
  • RFC 5652 — базовая структура CMS и типы содержимого.
  • RFC 9385 — ГОСТ-алгоритмы для IKEv2.
  • RFC 9367 — ГОСТ в TLS 1.3.