Тэхнічнае апісанне Psiphon
3.12.2014 - 3 хв чытання
Абноўлена: 4.6.2021
Вось абнаўленне, якое адказвае на два нядаўнія пытанні: простымі словамі, што такое Psiphon і чым ён адрозніваецца ад сэрвісу VPN; і што змянілася з часу апошняга абнаўлення дакумента аб тэхнічным дызайне.
Psiphon 3 — гэта цэнтралізавана кіраваная, геаграфічна разнастайная сетка з тысяч проксі-сервераў. Большая частка нашай інфраструктуры размешчана ў хмарных правайдараў. Psiphon 3 мае архітэктуру "аднаго пераходу" з бяспечным шыфраваннем злучэння паміж кліентамі і серверамі. Мы прапануем кліенты для самых папулярных платформаў: 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 годзе. Першая версія ўключала ўбудаваны браўзер на аснове Android WebView. У 2012/2013 гадах мы дадалі падтрымку тунэлявання для ўсёй прылады, якое тунэлюе ўсе праграмы Android праз Psiphon. У нас ёсць рэжым iptables для ўсёй прылады (для прылад з Android 2.2+ і root-доступам); а таксама рэжым для ўсёй прылады з выкарыстаннем Android VpnService разам з tun2socks (для любых прылад з Android 4+). Сярод іншых дададзеных функцый — выбар рэгіёна выхаду і стварэнне ланцужкоў проксі.
- Цяпер у нас ёсць кліент для iOS на стадыі альфа-тэсціравання. У гэтай праграме ёсць убудаваны браўзер.
- Наш механізм зваротнай сувязі ў праграме адпраўляе нам паведамленні і неабавязковыя дыягнастычныя звесткі ад карыстальнікаў. Гэтая сістэма дапамагла нам выправіць шматлікія праблемы з платформамі і блакіроўкамі.
- Змены ў алгарытмах выяўлення: нашы алгарытмы выяўлення развіваюцца ў межах бесперапыннага працэсу аптымізацыі нашай сеткі. Сярод асноўных змен — сумеснае выкарыстанне сервераў выяўлення паміж рознымі каналамі распаўсюджвання, а таксама ўлік часу сутак як дадатковага параметру.
- Аптымізацыі алгарытмаў падключэння: цяпер пры падключэнні нашы кліенты запускаюць злучэнні адразу з многімі серверамі і выбіраюць "найлепшае" злучэнне. Гэта дапамагае балансаваць нагрузку, а таксама змяншае час чакання карыстальніка, бо асобныя заблакіраваныя серверы не спыняюць працэс падключэння.
- Аўтаматычнае абнаўленне кліента было палепшана шляхам выкарыстання інкрэментнай спампоўкі і выкарыстання пазасеткавых сайтаў для спампоўкі (аўтэнтыфікаваных з дапамогай лічбавых подпісаў). Гэтыя змены павялічылі верагоднасць распаўсюджвання новага кліента падчас блакіравання.