mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
e2dd09a729
Фейковый DTLS wire-формат (0202b9b) был fingerprintable по содержимому: фиксированный content_type=0x17, нет handshake-записей, размеры пакетов кластеризовались в 6 фиксированных корзин padding. Throughput на shaped TURN-путях совпадал с wrap-off. Новый wire-формат неотличим от случайного после первого байта: [1B header | (prefix_len-1)B random | 12B nonce | AEAD ct | 16B tag] где prefix_len = 1 + (header & 0x07). Байт 0 распределён равномерно по 0..255, длина префикса закодирована в младших 3 битах. Nonce = 4B sessionID || 8B counter (BE). MSB sessionID кодирует направление (0 клиент, 1 сервер), чтобы клиент и сервер не коллизировали под одним ключом. counter стартует со случайного uint64 против reuse nonce между перезапусками процесса. AAD = nonce; случайный префикс — неаутентифицированный шум. Padding по фиксированным корзинам убран полностью. Усиление в 2-4x мелких ACK/keepalive-пакетов было вероятной причиной регрессии throughput. Overhead: 29..36 B на пакет (против 31..47 в DTLS-мимикрии, 12 в pre-AEAD XOR). Целостность обеспечивает Poly1305.