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 опасно: получится несовместимый собственный протокол.
План испытания¶
- Выбрать один конкретный набор параметров кривой из стандарта.
- Использовать публичные тестовые ключи и UKM из RFC 7836.
- Сопоставить промежуточные значения на двух независимых реализациях.
- Сверить точный KDF-контекст, длины и метки.
- Проверить отрицательные случаи: неверная точка, некорректный UKM, несовпадение параметров.
- Только затем интегрировать VKO в CMS RecipientInfo или сетевой профиль.
Сетевые протоколы и CMS¶
В CMS VKO часто связан с транспортом CEK к получателю. В IKEv2 ключевой обмен входит в протокол с собственными требованиями к предложениям и смене SA. В TLS 1.3 key schedule тоже задаётся профилем протокола. Поэтому результат теста VKO нельзя напрямую объявить успешной проверкой ГОСТ-CMS или ГОСТ-TLS.