Техническое описание Psiphon
03.12.2014 - 3 мин чтения
Обновлено: 04.06.2021
Представляем вам обновление, призванное ответить на два недавних вопроса: простыми словами, что такое Psiphon и чем он отличается от VPN-сервиса; и что изменилось с момента последнего обновления документа с техническим описанием архитектуры.
Psiphon 3 — это централизованно управляемая, географически распределенная сеть из тысяч прокси-серверов. Большая часть нашей инфраструктуры размещена у облачных провайдеров. Psiphon 3 использует архитектуру «one hop» с надежным шифрованием канала связи между клиентами и серверами. Мы предлагаем клиенты для самых популярных платформ: Windows, Android и iOS (на стадии альфа-тестирования).
Psiphon — это проект с открытым исходным кодом. Наш сервис предлагает строгую политику конфиденциальности; здесь нет учетных записей пользователей, а сетевые адреса пользователей не сохраняются в журналах.
Psiphon отличается от стандартных VPN-сервисов несколькими ключевыми особенностями:
- Мы применяем стратегии распределения подмножеств серверов среди пользователей, стремясь предоставить каждому пользователю несколько доступных ему серверов и при этом не раскрывать всю сеть одному пользователю. Для достижения этой цели размер нашей сети — и, в частности, разнообразие наших сетевых адресов — зависит не просто от объема трафика.
- Мы используем обфускацию протокола для обхода блокировок DPI.
Технический документ Psiphon об архитектуре системы устарел, и ниже представлен очень краткий обзор основных технических изменений, реализованных нами с момента запуска проекта в 2011 году.
- Мы добавили протокол обфусцированного SSH для защиты от снятия отпечатков системами DPI. Этот протокол, выглядящий абсолютно случайно, развернут с уникальным ключом обфускации для каждого сервера Psiphon.
- Мы добавили опциональный HTTP-префикс к нашему протоколу, чтобы противодействовать «белым спискам» HTTP-трафика на базе DPI. Этого простого префикса достаточно для систем DPI на основе регулярных выражений (nDPI и l7-filter), чтобы классифицировать трафик Psiphon как HTTP; и этого было достаточно, чтобы обойти реального противника на момент внедрения.
- Мы добавили удаленные списки серверов в дополнение к концепциям встроенных серверов и серверов обнаружения. В то время как обнаружение происходит только при подключении к существующему серверу, удаленные списки серверов могут быть загружены, даже если все серверы заблокированы. Удаленные списки серверов распространяются через S3 и доступны по адресу https://s3.amazonaws.com без отличительного имени бакета в URL. Таким образом, противнику трудно заблокировать наши удаленные списки серверов, не заблокировав весь S3 или не реализовав анализ трафика HTTPS.
- Электронная почта теперь является основным механизмом распространения клиентов. У нас есть автоответчик, который отправляет ссылки и вложения для кастомных спонсорских/канальных клиентов Psiphon в зависимости от того, на какой адрес электронной почты пишет пользователь.
- Мы выпустили клиент для Android в 2012 году. Первая версия содержала встроенный браузер на базе WebView от Android. В 2012/2013 годах мы добавили поддержку туннелирования всего устройства, которая пропускает через Psiphon весь трафик приложений Android. У нас есть режим туннелирования всего устройства через iptables (для рутованных устройств с Android 2.2+); и режим туннелирования всего устройства, использующий VpnService Android с tun2socks (для любых устройств с Android 4+). Дополнительно были добавлены такие функции, как выбор региона выхода и создание цепочек прокси.
- В настоящее время у нас есть клиент для iOS, проходящий альфа-тестирование. В это приложение встроен браузер.
- Наш встроенный в приложение механизм обратной связи отправляет нам сообщения и диагностические данные (по желанию пользователя). Эта система помогла нам устранить множество проблем с платформами и блокировками.
- Изменения в алгоритмах обнаружения: наши алгоритмы обнаружения постоянно развиваются в рамках непрерывного процесса оптимизации сети. Основные изменения включают совместное использование серверов обнаружения между каналами распространения, а также учет времени суток в качестве дополнительного параметра.
- Оптимизация алгоритмов подключения: теперь при подключении наши клиенты одновременно устанавливают соединения со множеством серверов и сохраняют «наилучшее» соединение. Это способствует балансировке нагрузки, а также сокращает время ожидания пользователей, поскольку отдельные заблокированные серверы не прерывают процесс подключения.
- Автообновление клиентов было улучшено за счет использования инкрементной загрузки и внешних сайтов для скачивания (с проверкой подлинности с помощью цифровых подписей). Эти изменения повысили вероятность успешного распространения новой версии клиента во время блокировок.