[О блоге] [наверх] [пред] [2024-04-28 11:33:58+03:00] [32c3d6a2cce4611f01eddb0e19712e97c61b6e71]
Темы: [crypto][go][multimedia]

Миллионы пакетов через VoRS

Мой VoIP клиент/сервер (4a521b9d638a8d23487ff6c36ac3be97c8c464b3,
48584050c661df42c76a1026b3aebe16da078b52,
2cccf7ddd72756431263b6c3e96dfd710f2931ee) уже десятки часов успешно
проработал. С момента его создания чуть ли не каждый день проводили
сессии парного программирования/администрирования, и это чуть ли не на
целый день. У меня FreeBSD клиент, сервер VoRS на FreeBSD VPS-ке поднят,
у коллег Ubuntu. Всё работало замечательно. И за одну сессию по
полмиллиона пакетов от меня проходило.

Я беспокоился за то, что Opus же ведь stateful кодек, а у нас бывали
большие потери пакетов. Вот недавно аж по несколько сотен за минуту --
кто-то сильно Интернет шатал. И я думал что мало ли, может там какие
ошибки будут накапливаться или ещё чего подобное или там отсутствие echo
cancellation или вообще хоть какой-либо обработки аудио будет мешать. Но
нет, всё без нареканий с нашей стороны.

В его v2 версии я заменил Poly1305, который и так уже был урезан до
64-бит, на SipHash24. Последний всё же является криптографически сильным
MAC-ом, поэтому на безопасность это не должно негативно влиять. SipHash
заточен под аутентификацию коротких сообщений, которыми 20мс Opus кадры
и являются. И SipHash24 быстрее более чем на порядок, ведь ключ для
Poly1305 генерируется из 512-бит (размер блока ChaCha20, где 256-бит
к тому же отбрасываются за ненадобностью) выхлопа ChaCha20, чтобы после
этого ещё один 512-бит блок сгенерировать уже для шифрования. Дороговато
выглядит.

    [оставить комментарий]