Рубрика «WebRTC»

Почти каждый мессенджер пишет «мы не можем прочитать ваши сообщения», но проверить это обычно нельзя. В мессенджере, который я разрабатываю (Umbera), я пошёл от обратного: опубликовал криптографическое ядро — ту часть кода, которая определяет, что может узнать сервер, — и написал тесты, которые воспроизводят схему и проверяют её свойства одной командой.

Ниже — гибридная постквантовая печать сообщения (X25519 + ML-KEM-1024), почему взлом одного из алгоритмов ничего не даёт, какие метаданные сервер всё-таки видит, как защитить DTLS-SRTP от подмены отпечатков при установке звонка, и как проверить каждое утверждение самому.

Коротко

Мы с друзьями несколько лет сидели в Discord: вечером голосовая комната, кто-то стримит игру, кто-то просто фоном что-то делает. Потом захотелось своего. Без чужих правил, без подписок, без того, что в один день тебе скажут подтвердить возраст селфи (Discord, кстати, с 23 сентября именно это и раскатывает).

Готовые варианты я смотрел, но везде что-то не сходилось: то сервер нужен потяжелее, то голос и чат живут в разных программах, то установка рассчитана на человека, который сам админит серверы. А мне нужно было, чтобы всё было в одном окне, как в Discord, и чтобы сервер мог поднять любой из компании.

Читать полностью »

В какой-то момент я решил написать свой мессенджер. Не потому, что мне не хватало ещё одного, а потому, что три вещи в существующих не лечатся настройками: у них есть центр, который можно выключить; они требуют номер телефона; и их видно на проводе, даже когда всё зашифровано. Так появился Призрак — федеративный мессенджер со сквозным шифрованием, у которого трафик, включая звонки, выглядит как поход на сайт по HTTPS, и со встроенным VPN в два прыжка.

Читать полностью »

Всем привет. Меня зовут Алексей, пишу тут впервые. Работаю в небольшом рекламном агентстве, в основном backend и всякое смежное. По вечерам реверс‑инжиниринг, чисто для удовольствия. Стек у меня был максимально предсказуемый. PHP, немного JS с TS, Python. Скучно. Захотелось нового, и я полез в Go.

Читать полностью »

Идея написать собственный мессенджер появилась не от хорошей жизни. У нас была конкретная прикладная потребность: получить полностью независимый инструмент связи, который не завязан на сторонние облачные сервисы, нормально поднимается на скромных серверах и адекватно ведет себя при перебоях со связью.

Читать полностью »

Как я случайно создал голосовой чат, который невозможно прослушать - 1

Сразу разочарую любителей громких фраз: я не делал «защищённый мессенджер», я не думал ни про слежку, ни про прослушку, ни про приватность вообще.

Читать полностью »

Я работаю с Rust уже несколько лет. В основном - бэкенд, микросервисы, много асинхронного кода и многопототочных задач. А ещё я давно хотел разобраться в WebRTC. Не на уровне "вот туториал, скопируй и запусти", а чтобы реально понимать, что происходит с пакетами, как они передаются, как маршрутизируются.

В итоге я решил написать свой SFU.

Не для продакшена. Не чтобы конкурировать с LiveKit или Jitsi. Просто чтобы посмотреть, как оно работает изнутри. И написать его на Rust - потому что это мой основной инструмент, и мне было интересно, насколько он подходит для такого рода задач.

Читать полностью »

Последние полгода я работаю над VibeMuvik — кино-соцсетью с рецензиями, дебатами и синхронным просмотром фильмов. Одна из тех штук, которые «ну вроде несложно», пока не начинаешь копать.

Эта статья — про неожиданные находки. Не про «как я выбрал стек» (скучно) и не про «туториал по WebRTC» (и без меня есть). Это пять ситуаций, в которых я споткнулся, обнаружил что-то интересное, и подумал «об этом стоит рассказать — другим пригодится».

Поехали.


1. Одна строчка в robots.txt, которая съедает crawl-бюджет Google

Свежий кейс. Смотрю логи сервера — Googlebot тысячу раз за суткиЧитать полностью »

Привет!

Я — обычный, среднестатистический (с натягом) житель глубинки — электрик. Не хотел никого взрывать, переводить чьи-то деньги на безопасный счёт и заниматься прочими непотребными и преступными штуками. Но именно из-за вот этих вот преступных штук (со слов«компетентных») мне отрубили возможность разговаривать по видео привычным для меня способом.

Неприятное чувство, когда лес рубят другие, а в тебя щепки летят. И ладно, если бы лес рубили, так… травку косят, а летят брёвна.

Читать полностью »

Сделал себе VPN, который:

— работает через VLESS Reality, неотличимый от обычного HTTPS

— пробивает белые списки мобильных операторов через relay на Yandex Cloud

— имеет готовый код для аварийного канала через WebRTC и Яндекс.Телемост (пока не понадобился) — автоматически переключается между 4 уровнями защиты

— пропускает российские сайты (Яндекс, Госуслуги, банки) напрямую, без VPN

Весь код, конфиги, скрипты деплоя — всё написал Claude Code. Я только описал проблему и дал ему почитать несколько статей с Хабра про блокировки. Ну и бил его кнутом, пока всё не заработает.

Расскажу, как это устроено и как повторить.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js