Технічний опис 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 роках ми додали підтримку тунелювання всього пристрою, яке спрямовує трафік усіх програм Android через Psiphon. У нас є режим усього пристрою через iptables (для рутованих пристроїв Android 2.2+); а також режим усього пристрою, який використовує VpnService від Android із tun2socks (для будь-якого пристрою Android 4+). Додатково додані функції включають вибір регіону виходу та створення ланцюжків проксі.
- У нас є клієнт для iOS, який зараз проходить альфа-тестування. Ця програма має вбудований браузер.
- Наш механізм зворотного зв'язку у додатку надсилає нам повідомлення та необов'язкові діагностичні дані від користувачів. Ця система допомогла нам усунути багато проблем із платформами та блокуваннями.
- Зміни в алгоритмах виявлення: наші алгоритми виявлення вдосконалюються в межах безперервного процесу оптимізації нашої мережі. Основні зміни включають спільне використання серверів виявлення різними каналами поширення, а також додавання часу доби як виміру.
- Оптимізація алгоритмів підключення: тепер під час підключення наші клієнти запускають з'єднання з багатьма серверами одночасно й залишають «найкраще» з'єднання. Це допомагає балансувати навантаження, а також скорочує час очікування користувача, оскільки окремі заблоковані сервери не зупиняють процес встановлення з'єднання.
- Автоматичне оновлення клієнта було вдосконалено з використанням інкрементного завантаження та позасмугових сайтів завантаження (з автентифікацією за допомогою цифрових підписів). Завдяки цим змінам зросла ймовірність того, що новий клієнт може бути розповсюджений під час блокувань.