Количество полезных Клубных сервисов растёт каждый месяц! Вот на прошлой неделе мы скооперировались с Бахти и задеплоили целый сервис видеозвонков для клубней — meet.vas3k.cloud
Там используется Jitsi Meet — это опенсорсный и приватный аналог гугломита, работающий прямо в браузере. Ниже я еще расскажу немного технических подробностей про шифрование, peer-to-peer и приватность.
Мы уже начали его тестировать в клубных чатах и в личных целях. Например, через него ребята из Geoguessr чата провели в нём турнир на 25+ человек, а ребята из Вастрик Флота созваниваются со своими командами и капитанами.
Сейчас мы наблюдаем за нагрузкой на сервер и прочими штуками, которые могут сломаться или быть нарочито кем-то сломаны. Но если живое тестирование пройдет хорошо, то мы оставим его для вас, как альтернативу популярным сервисам. Потому что оно всегда пригодится :)
Так что сохраняйте meet.vas3k.cloud в закладки и не стесняйтесь использовать, если надо. Можно как устраивать небольшие конференции, так и приватно звонить бабушке.
📞 Как пользоваться
- Идете на meet.vas3k.cloud и придумываете себе название комнаты (либо используете случайно предложенное). Если сайт не работает, то же самое можно сделать через телеграм-бота из прошлого поста.
- Название комнаты можно выбрать любое какое нравится. Можно даже засквотить красивое. Никакой регистрации нет, потому помните — другие люди могут тоже зайти в вашу комнату по названию. Если хотите дополнительной защиты — в настройках комнаты можно задать пароль.
- Копируете ссылку из браузера или через меню Share и присылаете ее всем тем, с кем хотите созвониться. Тут всё стандартно.
- Можно скачать приложение для iOS/Android, если через браузер вам не нравится.
- Первый пользователь в комнате автоматически становится её модератором.
В общем-то со стороны пользователя это всё.
🤝 Jitsi Meet — что это и как устроено
В 2013-м году немецкие чуваки решили написать свой опенсорсный, приватный и GDPR-ориентированный сервис для видеозвонков. Это была эпоха расцвета WebRTC, когда его стали поддерживать все браузеры, и это позволило впервые гонять видеопоток и данные по шифрованному тоннелю между двумя браузерами, прям как в старые добрые времена p2p-сетей.
Для работы WebRTC нужен «сигнальный сервер», который позволяет двум клиентам «найти» друг друга, согласовать качество соединения и ключи шифрования. Разработчики тогда выбрали протокол XMPP, тот самый Jabber, в качестве сигнального сервера. Немцы обожают Jabber почему-то :)
Дальше два клиента согласовывают шифрование между собой через специальные протоколы DTLS (Datagram TLS) + SRTP (Secure Real-time Transport Protocol), то есть по факту обмениваются ключами и делают как бы end-to-end шифрование между двумя клиентами.
Никто, даже сам сервер, не знает ваших ключей и не может ни прочитать, ни расшифровать ваш видеозвонок.
Jitsi Meet в случае конференции 1-на-1 использует именно такой вариант. В этом случае вполне можно назвать его честным p2p и e2e. По крайней мере они в блоге так напрямую заявляют.
⭐⭐⭐ Для звонков 1-на-1 весь видео-трафик между двумя участниками идёт по честному peer-to-peer, зашифрованный вашими одноразовыми ключами, и наш сервер не используется вообще (только для установления соединения).
Jitsi Meet стал довольно популярным среди европейских универсистетских кампусов, при желании можно даже нагуглить их инстансы, они так же открыты в интернет, как Вастрик Мит, и вы можете через них созвониться. Даже Matrix интегрировал Jitsi к себе в клиент Element для видеозвонков.
Однако, в случае больших видеоконференций, "настоящий" peer-to-peer подход грандиозно тормозит даже на мощных ПэКа. Браузерам становится очень тяжело декодить десяток зашифрованных лайв-стримов, а про телефоны мы уж вообще молчим.
Для решения этой проблемы все современные Zoom'ы и Meet'ы гоняют весь ваш видеотрафик через свои сервера и декодируют-перекодируют его как им захочется. Что, как вы понимаете, удобно, но НЕ ПРИВАТНО. Кто знает куда потом ваши звонки утекут или какой AI на них обучат.
Но раз уж возможности сделать всё без сервера в этом случае нет, Jitsi Meet использует немного другой подход — Jitsi Videobridge. Это опенсорсный роутер для видео-потоков юзеров внутри одной видео-комнаты. Как эдакий CDN.
Да, он терминейтит DTLS-SRTP хендшейк на нашем сервере, но не декодирует сами видеопотоки, а лишь перенаправляет их между пользователями конфетенции, шифруя его обратно их ключами. Он так же может иногда отключать потоки «молчащих» юзеров, чтобы экономить трафик в больших конференциях.
☝️☝️☝️ При 3+ и более человек в конфереции Jitsi использует свой Videobridge для роутинга видео между участниками. Он не декодирует сами видео-потоки, однако технически ваш трафик больше не peer-to-peer, а проксируется нашим сервером
Так что если вы прям супер-заморочены по приватности, то вы должны это знать — ваш трафик технически идет через CDN, и если наш сервер скомпрометируют, то в теории смогут подключиться к вашему видеозвонку.
Записей же звонков мы не храним, нам это нахер не надо, так что «взломать» можно только текущий звонок. Мы специально так открыто об этом рассказываем, чтобы вы были умненькие и понимали все нюансы.
Так же, надо признать, что у Jitsi Meet работает хуже по сравнению с платными сервисами типа Zoom и Google Meet. У него есть проблемы с большими конференциями и плохим интернетом — но такова уж плата за приватность!
🇰🇿 Сервер физически расположен в Казахстане. Здаровазаибал
В РФ мы хоститься не хотим, в Европе щас тоже свои нюансики с законами о шифровании + некоторые хостинг провайдеры забанены из РФ (а мы все-таки одним из юзкейсов ставили звонки бабушке), США и Сингапуры далеко, а в Сербии серверов нет :D
Потому мы пока выбрали Казахстан, но в случае чего сервер можно просто выбросить и в пару кликов переподнять где-то еще, если появятся варианты лучше. В этом и плюс ничего на нём не хранить, а только роутить!