mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
729557d00d
Wire-формат noise-AEAD (1b7cb4c) был реализован верно, но перестал доставлять трафик через VK TURN после auth: ChannelData payload, не похожий по форме на SRTP/DTLS, похоже, дропается VK TURN после недавнего изменения на стороне сервера. Новый wire-формат мимикрирует под SRTP (RFC 3550 / RFC 7714 AEAD-профиль): [12B RTP header | 12B nonce | AEAD ciphertext | 16B tag] RTP header: byte 0: 0x80 V=2, P=0, X=0, CC=0 byte 1: 0x6F M=0, PT=111 (opus, частый VK voice PT) byte 2-3: seq16 BE монотонный, init random byte 4-7: ts32 BE монотонный +960 на пакет (20ms @ 48kHz) byte 8-11: SSRC случайный на conn, MSB кодирует направление Nonce = 4B sessionID (MSB=направление) || 8B counter (init random). AAD = первые 24 байта, так что любое искажение RTP-заголовка ломает Open. Overhead 40 B/пакет против 36 у noise-AEAD и 12 у исходного XOR. Если VK TURN форвардит SRTP-образный трафик по быстрому пути, повышенный overhead окупается отсутствием медленного shaping. Тесты: round-trip, прогрессия RTP-полей, бит направления, искажение AAD.