
Свой VPN на Rust: как я спорил с сетью, TLS и самим собой
Bombila_Xa4 10 минут назад Свой VPN на Rust: как я спорил с сетью, TLS и самим собой Сложный 24 мин 36 Rust * Программирование * Информационная безопасность * Open source * Сетевые технологии * Кейс Из песочницы...
Anthropic — What company has the best second artificial intelligence model at the end of June?
Значимый прорыв формирует отрасль ИИ: Bombila_Xa4 10 минут назад Свой VPN на Rust: как я спорил с сетью, TLS и самим собой Сложный 24 мин 36 Rust * Программирование * Информационная безопасность * Open source * Сетевые технологии * Кейс Из песочницы Технический разбор: архитектура, криптография, транспортные режимы и десяток шишекЕсли совсем коротко: я написал свой VPN на Rust — побайтово-корректный TLS 1. 3 с заёмом чужого сертификата, гибридное постквантовое рукопожатие, пять режимов маскировки и под 700 Мбит/с на скачивание. Ниже — как это устроено изнутри и десяток шишек, на которых я учился.
Но начать хочется издалека. Сначала — небольшое признание. Сети я люблю с детства, и до сих пор ICMP echo reply — обычный ответ на ping — где-то в глубине души вызывает почти детский восторг: пакет ушёл, пакет вернулся, и сразу становится чуть спокойнее.
Технические детали
Любовь эта родилась в начале двухтысячных, когда мы лазили по чердакам микрорайона и тянули свою сеть — тогда домашнего интернета ещё не было вовсе. Свитчи покупали на свои кровные, самые дешёвые из возможных, — и после каждой грозы несколько сегментов гарантированно «отлетало» (гроза была нашим бесплатным стресс-тестом). А сеть, между прочим, выросла совсем не маленькая — за две сотни машин.
И это было что-то поистине магическое: сидя по своим квартирам, мы болтали в общем чате, качали что-то с файлопомойки и играли в CS. Зарубы порой заканчивались стычками за гаражами, но это уже совсем другая история. С тех пор любовь к сетям никуда не делась — она, по сути, и привела меня сюда.
Началось всё с прозаичной задачи. Связать распределенные сервера в разных точках земного шара в одну приватную сеть управления. Я перепробовал готовые решения и каждый раз упирался в одно и то же.
Отраслевые последствия
В разных локациях стабильно работало разное: где-то жил один протокол, где-то другой, а где-то выручал только прокси с натянутым поверх TUN через сторонний костыль. В итоге вся сеть держалась на мешанине разных решений — стопке подпорок, которую совсем не хотелось тащить дальше, и это сильно удручало. И в какой-то момент сработал знакомый многим самообман: «да я сам напишу, там же ничего сложного» — так и было принято решение собрать продукт, который закрывал бы мои собственные потребности целиком — и даже больше.
Сложного там оказалось предостаточно. И началось всё скромно — с той самой задачи: чтобы серверы видели друг друга, и не более того. Как только это заработало, захотелось дотянуть туннель до телефона, потом до рабочего ноутбука, а в какой-то момент я поймал себя на том, что собираю уже не «связку для парка серверов», а полноценный VPN под все платформы.
Так у проекта и появились нативные клиенты под Android, Windows и macOS. Теперь это рабочий кросс-платформенный туннель на Rust-ядре. Проект называется Qeli, исходники открыты.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





