Что: 32c3d6a2cce4611f01eddb0e19712e97c61b6e71
Когда: 2024-04-28 11:33:58+03:00
Темы: 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-бит блок сгенерировать уже для шифрования. Дороговато выглядит.
Сгенерирован: SGBlog 0.34.0