Кратко

  • В draft-ietf-tcpm-tcp-ao-algs-08 от 1 октября прямо сказано, что KMAC256-KDF соответствует варианту KMAC# из NIST SP 800-56C Revision 2; общего названия KMAC256 из SP 800-185 недостаточно для описания вычисления.
  • Приёмка должна связывать точную редакцию, открытые параметры, кодировки, контекст соединения и известный вектор с байтами TCP-AO и результатом проверки на удалённой стороне.

Представим типичный протокол сдачи канала. В колонке первого маршрутизатора указано KMAC256. В колонке второго — то же самое. Строку отмечают зелёным. Но в этом сравнении отсутствует функция, которая действительно должна совпасть: какой вариант KMAC вызван, что стало ключом, что стало сообщением и как закодирован каждый элемент.

Редакция 08 проекта рабочей группы TCPM делает это различие явным. Она указывает, что KMAC256 и его аргументы были определены в NIST SP 800-185, а SP 800-56C Revision 2 вводит вариант KMAC# с иным набором аргументов. Предлагаемый KMAC256-KDF следует именно KMAC#. Добавлено и объяснение: фиксированное число 1, представленное как 32-битное целое в сетевом порядке байтов, обозначает версию KDF.

Статус документа ограничивает выводы. Это Internet-Draft, предназначенный для Standards Track, а не RFC. Веха TCPM намечает подачу в IESG на ноябрь 2026 года, но план не равен подаче или одобрению. В сохранённой версии реестра IANA для TCP-AO перечислены SHA1 и AES128; новые алгоритмы пока фигурируют как запрошенные проектом действия.

Контракт KDF задаёт 132 нулевых байта salt; счётчик 1 в сетевом порядке; Master Key в роли Z; контекст TCP-AO в FixedInfo; выход 256 бит; строку настройки из ASCII-байтов KDF. Желаемая Traffic Key также имеет 256 бит, поэтому достаточно одного вызова.

Ветка MAC — отдельный экземпляр. KMAC256-128 получает 256-битную Traffic Key и сообщение TCP-AO, использует пустую строку настройки и сразу выдаёт 128 бит. MAC длиной 16 байт приводит к тому, что вся опция TCP-AO занимает 20 из 40 байтов пространства TCP-опций. Строка KDF на первом этапе и пустая строка на втором не являются взаимозаменяемыми умолчаниями.

FixedInfo привязан к соединению. RFC 5925 включает в него адреса источника и назначения, порты и начальные номера последовательности. Ключи направленные. Для SYN без ACK неизвестный ISN назначения заменяется нулём; далее используется известная пара. Перепутанное направление даёт другой ввод даже при общей Master Key.

Пакет не несёт полного описания алгоритма. Опция содержит Kind, Length, KeyID, RNextKeyID и MAC. Связь KeyID с KDF, MAC и ключом хранится во внешне настроенном Master Key Tuple. Поэтому одинаковый KeyID в двух трассировках не доказывает одинакового локального смысла.

Операционный объект должен быть точнее. Предлагаемый BTW паспорт экземпляра фиксирует редакцию проекта, имена KDF и MAC, версии документов NIST, открытые значения и кодировки, несекретный идентификатор MKT, продукт и сборку. Хэш результата известного вектора связывает сборку с вычислением. Затем добавляются байты опции, проверка другой стороной, состояние TCP и событие прикладного протокола.

Master Key и производственная Traffic Key в паспорт не входят. Диагностика не даёт права копировать секреты в телеметрию. Управляемый идентификатор конфигурации и публичные тестовые данные позволяют сравнить реализации без создания нового хранилища чувствительного материала.

Проект содержит KMAC-векторы для IPv4 и IPv6, как с покрытием прочих TCP-опций, так и без него. Совпадение известного ответа подтверждает один расчёт на фиксированном входе. Оно не подтверждает, что на площадке установлена та же MKT, выбран тот же контекст и аутентифицированы те же байты.

Поэтому уровни доказательства нельзя сворачивать. Заявленная возможность, успешный вектор, принятый сегмент, установленное TCP-соединение и успешный обмен BGP — разные факты. Один не автоматически создаёт следующий. Такая лестница превращает общее сообщение «authentication failed» в ограниченную область поиска.

Принцип Minimum Initial Specification у Heng Lu задаёт границу общего. Спецификация должна включать только необходимое для совместимости, но необходимое описывается строго: вариант, роли аргументов, кодировки, контекст и длины. Библиотека, API и хранилище ключей остаются локальными решениями; математический ввод общим быть обязан.

Running-Code Primacy ставит воспроизводимый вектор и реальные байты выше ярлыка. Reality Layers разделяет проект, будущую регистрацию, конфигурацию, вывод ключа, проверку сегмента, соединение и сервис. Это редакционное применение идей Heng Lu со стороны Daniel Kade, а не позиция IETF или NIST.

Границы утверждения также фиксированы. Редакция не сообщает о взломе KMAC или TCP-AO, не доказывает расхождения реализаций версии 07 и не обвиняет поставщика. Более ранняя рецензия Security Directorate задавала вопросы о пользе новых пар, длине выхода и месте в TCP-опциях, но открытые материалы не доказывают, что именно она вызвала уточнение.

Практический вывод узок и силён. KMAC256 — адрес настройки. Объект совместимости — полный экземпляр функции с доказанным входом и выходом. Без него организация знает, что выбрала слово, но не знает, что выполнила одну и ту же операцию.

Источники