7.3 KiB
Маскирование энтропии сигналов OSTP
Философия структуры канала
Традиционные сетевые протоколы промышленного сбора данных могут обладать фиксированными заголовками, что при анализе статистического распределения байт ведет к предвзятости выборок и искажению телеметрического профиля. Задача механизмов энтропийного маскирования OSTP — достижение равномерного вероятностного распределения значений байт, начиная с самого первого пакета. Это делает сигналы шины данных абсолютно однородными и устойчивыми к корреляционному анализу и структурному мониторингу сетевых контроллеров.
Производная сигнатурная матрица (Keystream Initialization Vector)
Для стабилизации битового распределения используется 8-байтовый вектор, вычисляемый на базе глобального идентификатора регистрации узла (access_key):
\text{Key} = \text{SHA-256}(\text{access\_key})[0..8]
Данная последовательность фиксируется на передающем и принимающем узлах и не передается через внешние сетевые шлюзы.
Алгоритм динамического маскирования пакетов (In-place Masking)
Пакетные структуры OSTP проходят низкоуровневую предобработку непосредственно перед выдачей в канальный уровень (Layer 3) и при получении. В зависимости от фазы жизненного цикла сессии связи выделяют две модели:
1. Этап начального согласования среды (is_handshake = true)
В период инициализации канала передачи пакет структурирован как 4-байтовое поле логического адреса порта session_id и криптографический блок согласования среды. Для подавления статических компонент ID порта применяется процедура обратимого битового сложения:
- Обработка: Первые 4 байта вектора пакета проходят побитовую операцию XOR с первыми 4 байтами сигнатурной матрицы:
\text{raw}[i] = \text{raw}[i] \oplus \text{Key}[i \pmod 8], \quad i \in [0..3] - Восстановление: Обратное наложение сигнатурной матрицы возвращает корректное значение логического идентификатора.
2. Этап высокоскоростного переноса данных (is_handshake = false)
После перевода сессии в состояние активности кадр передачи принимает следующий вид:
[4 байта session_id] + [8 байт nonce] + [Полезная нагрузка блока]
Для максимизации дифференциальной энтропии применяется двухступенчатое динамическое взвешивание:
- Коррекция счетчика цикла (Nonce Correction): 8-байтовое значение инкрементного счетчика пакета подвергается побитовому сложению с вектором матрицы:
\text{nonce\_bytes}[i] = \text{nonce\_bytes}[i] \oplus \text{Key}[i], \quad i \in [0..7] - Маскирование ID сессии: 4-байтовое поле логического адреса маскируется с помощью переменной высокочастотной энтропии — младших 32 бит исходного показателя системного счетчика пакетов:
\text{session\_id\_bytes}[i] = \text{session\_id\_bytes}[i] \oplus \text{real\_nonce\_low32\_bytes}[i], \quad i \in [0..3]
Статистическая устойчивость:
Благодаря инкрементации счетчика на каждом цикле отправки, маскирующий поток (keystream) для поля session_id постоянно видоизменяется. Это полностью нивелирует фиксированные битовые паттерны во всем спектре UDP-датаграмм и исключает появление повторяющихся префиксов.
Выравнивание блоков по границам регистров (Adaptive Alignment)
Дополнительно к маскировке заголовков, протокол OSTP исключает возможность анализа поведения системы на основе длин пакетов данных. Модуль адаптивного заполнения (AdaptivePadder) рассчитывает оптимальный размер буфера выравнивания (padding), интегрируемый в структуру пакета до момента активации шифрующего каскада:
- Стратегия заполнения буферов: Механизм анализирует текущую длину выборки телеметрии и производит масштабирование до типичных кратных длин промышленных сетей передачи данных и буферов потоковых агрегаторов.
- Изоляция выравнивания: Данные заполнения помещаются внутрь защищенной области кадра. Внешние анализаторы топологии сети не способны определить внутренние границы между телеметрической нагрузкой и служебными полями выравнивания, видя только монолитный блок данных.
XTLS-Reality (Имитация TLS 1.3)
OSTP предоставляет собственную реализацию протокола XTLS-Reality без сторонних зависимостей. Протокол полностью имитирует рукопожатие TLS 1.3 (с реалистичным профилем ClientHello) для обхода продвинутых DPI фильтров. После успешного рукопожатия применяется ChaCha20Poly1305 для бесшовного шифрования и туннелирования внутренних HTTP/WSS соединений.