Tekninen kuvaus Psiphonista
3.12.2014 - 2 min lukuaika
Päivitetty: 4.6.2021
Tässä on päivitys kahteen viimeaikaiseen kysymykseen: yksinkertaisesti sanottuna, mikä Psiphon on ja miten se eroaa VPN-palvelusta; ja mitä on muuttunut sen jälkeen, kun tekninen suunnitteluasiakirja on viimeksi päivitetty.
Psiphon 3 on keskitetysti hallittu, maantieteellisesti hajautettu tuhansien välityspalvelimien verkosto. Suurin osa infrastruktuuristamme sijaitsee pilvipalveluntarjoajilla. Psiphon 3 perustuu "one hop" -arkkitehtuuriin, jossa on suojattu linkkisalaus asiakasohjelmien ja palvelimien välillä. Tarjoamme asiakasohjelmia suosituimmille alustoille: Windows, Android ja iOS (alfavaiheessa).
Psiphon on avointa lähdekoodia. Palvelumme noudattaa vahvaa tietosuojakäytäntöä; käyttäjätilejä ei ole, eikä käyttäjien verkko-osoitteita kirjata lokiin.
Psiphon eroaa tavallisista VPN-palveluista muutamalla keskeisellä tavalla:
- Käytämme strategioita palvelinten osajoukkojen jakamiseksi käyttäjille pyrkien tarjoamaan kullekin käyttäjälle kourallisen saavutettavissa olevia palvelimia paljastamatta kuitenkaan koko verkkoa yhdelle käyttäjälle. Tämän tavoitteen saavuttamiseksi verkkomme koko -- ja erityisesti verkko-osoitteidemme moninaisuus -- ei määräydy pelkästään liikennekuormamme perusteella.
- Käytämme protokollan häivyttämistä DPI-estojen kiertämiseen.
Psiphonin tekninen suunnitteluasiakirja on vanhentunut, ja seuraavassa on hyvin lyhyt yhteenveto merkittävimmistä teknisistä muutoksista, joita olemme toteuttaneet projektin käynnistymisen jälkeen vuonna 2011.
- Otimme käyttöön häivytetyn SSH-protokollan DPI-sormenjälkitunnistuksen lieventämiseksi. Tämä täysin satunnaiselta näyttävä protokolla otetaan käyttöön yksilöllisellä häivytysavaimella Psiphon-palvelinta kohden.
- Lisäsimme protokollaamme valinnaisen HTTP-etuliitteen lieventääksemme HTTP-liikenteen DPI-pohjaista sallittujen luetteloon lisäämistä. Tämä yksinkertainen etuliite riittää regex-pohjaiselle DPI:lle (nDPI ja l7-filter) luokittelemaan Psiphon-liikenteen HTTP:ksi, ja se riitti torjumaan todellisen vastustajan silloin, kun otimme sen käyttöön.
- Lisäsimme etäpalvelinluettelot täydentämään upotettujen ja löytöpalvelimien käsitteitä. Vaikka löytäminen tapahtuu vain, kun yhteys olemassa olevaan palvelimeen on muodostettu, etäpalvelinluettelot voidaan ladata, vaikka kaikki palvelimet olisi estetty. Etäpalvelinluetteloita jaetaan S3:ssa ja niitä käytetään osoitteesta https://s3.amazonaws.com ilman URL-osoitteessa olevaa erottavaa bucketin nimeä. Tällä tavoin vastustajan on vaikea estää etäpalvelinluettelojamme estämättä koko S3:a tai ottamatta käyttöön HTTPS-liikenneanalyysia.
- Sähköposti on nyt merkittävä asiakasohjelmien jakelumekanismi. Meillä on automaattivastaaja, joka palauttaa linkkejä ja liitteitä räätälöityihin sponsori-/kanavakohtaisiin Psiphon-asiakasohjelmiin sen mukaan, mihin sähköpostiosoitteeseen käyttäjät viestin lähettävät.
- Julkaisimme Android-asiakasohjelman vuonna 2012. Ensimmäinen versio sisälsi upotetun selaimen, joka perustui Androidin WebView-komponenttiin. Vuosina 2012/2013 lisäsimme tuen koko laitteen tunneloinnille, joka tunneloi kaikki Android-sovellukset Psiphonin kautta. Meillä on iptables-pohjainen koko laitteen tila (rootatuille Android 2.2+ -laitteille) sekä koko laitteen tila, joka käyttää Androidin VpnServiceä yhdessä tun2socksin kanssa (kaikilla Android 4+ -laitteilla). Muita lisättyjä ominaisuuksia ovat poistumisalueen valinta ja välityspalvelinten ketjutus.
- Meillä on iOS-asiakasohjelma nyt alfatestauksessa. Tässä sovelluksessa on upotettu selain.
- Sovelluksen sisäinen palautemekanismimme lähettää meille viestejä ja valinnaisia diagnostiikkatietoja käyttäjiltä. Tämä järjestelmä on auttanut meitä selvittämään monia alustaongelmia ja esto-ongelmia.
- Muutokset löytöalgoritmeihin: löytöalgoritmimme kehittyvät osana jatkuvaa verkkomme optimointiprosessia. Suurimpia muutoksia ovat löytöpalvelimien jakaminen eri jakelukanavien välillä sekä vuorokaudenajan lisääminen yhdeksi ulottuvuudeksi.
- Optimoinnit yhteysalgoritmeihin: asiakasohjelmamme muodostavat nyt yhteyttä avattaessa yhteyden useisiin palvelimiin samanaikaisesti ja säilyttävät "parhaan" yhteyden. Tämä auttaa kuormantasausta sekä lyhentää käyttäjän odotusaikaa, koska yksittäiset estetut palvelimet eivät pysäytä yhteysprosessia.
- Asiakasohjelman automaattista päivitystä parannettiin hyödyntämään inkrementaalisia latauksia ja käyttämään kaistan ulkopuolisia (out-of-band) lataussivustoja (jotka todennetaan digitaalisilla allekirjoituksilla). Nämä muutokset lisäsivät todennäköisyyttä sille, että uusi asiakasohjelma voidaan toimittaa myös estojen aikana.