Una descrizione tecnica di Psiphon
03/12/2014 - 4 min di lettura
Aggiornato: 04/06/2021
Ecco un aggiornamento per rispondere a due domande recenti: in parole semplici, che cos'è Psiphon e in cosa si differenzia da un servizio VPN; e cosa è cambiato dall'ultimo aggiornamento del documento di progettazione tecnica.
Psiphon 3 è una rete gestita centralmente e geograficamente diversificata di migliaia di server proxy. La maggior parte della nostra infrastruttura è ospitata presso provider cloud. Psiphon 3 ha un'architettura "one hop" con crittografia sicura del collegamento tra client e server. Offriamo client per le piattaforme più diffuse: Windows, Android e iOS (in versione alpha).
Psiphon è open source. Il nostro servizio offre una solida informativa sulla privacy; non esistono account utente e gli indirizzi di rete degli utenti non vengono registrati.
Psiphon si differenzia dai normali servizi VPN per alcuni aspetti fondamentali:
- Applichiamo strategie volte a distribuire sottoinsiemi di server agli utenti con l'obiettivo di fornire a ciascun utente una manciata di server raggiungibili, senza tuttavia rivelare l'intera rete a un singolo utente. Per raggiungere questo obiettivo, le dimensioni della nostra rete -- e in particolare la diversità dei nostri indirizzi di rete -- non dipendono semplicemente dal nostro carico di traffico.
- Utilizziamo l'offuscamento del protocollo per aggirare il blocco basato su DPI.
Il documento di progettazione tecnica di Psiphon è obsoleto e quanto segue è un riassunto molto breve delle principali modifiche tecniche che abbiamo implementato dal lancio del progetto nel 2011.
- Abbiamo aggiunto il protocollo SSH offuscato per mitigare il fingerprinting DPI. Questo protocollo dall'aspetto completamente casuale viene distribuito con una chiave di offuscamento univoca per ciascun server Psiphon.
- Abbiamo aggiunto un prefisso HTTP opzionale al nostro protocollo per mitigare il whitelisting del traffico HTTP basato su DPI. Questo semplice prefisso è sufficiente affinché il DPI basato su regex (nDPI e l7-filter) classifichi il traffico di Psiphon come HTTP; ed è stato sufficiente per sconfiggere un avversario reale al momento dell'implementazione.
- Abbiamo aggiunto elenchi remoti di server per integrare i concetti di server integrati e di discovery. Mentre il discovery avviene solo quando si è connessi a un server esistente, gli elenchi remoti di server possono essere scaricati anche quando tutti i server sono bloccati. Gli elenchi remoti di server sono distribuiti su S3 e accessibili tramite https://s3.amazonaws.com senza un nome bucket identificativo nell'URL. In questo modo, per un avversario è difficile bloccare i nostri elenchi remoti di server senza bloccare l'intero S3 o implementare l'analisi del traffico HTTPS.
- L'email è ormai un meccanismo primario di propagazione dei client. Abbiamo un risponditore automatico che restituisce link e allegati a client Psiphon personalizzati per sponsor/canale a seconda dell'indirizzo email a cui gli utenti scrivono.
- Nel 2012 abbiamo rilasciato un client Android. La prima versione includeva un browser integrato basato su WebView di Android. Nel 2012/2013 abbiamo aggiunto il supporto per il tunneling dell'intero dispositivo, che incanala tutte le app Android attraverso Psiphon. Abbiamo una modalità per l'intero dispositivo con iptables (per dispositivi con Android 2.2+ e root); e una modalità per l'intero dispositivo che utilizza VpnService di Android con tun2socks (per qualsiasi dispositivo con Android 4+). Tra le funzionalità aggiuntive introdotte figurano la selezione della regione di uscita e il concatenamento dei proxy.
- Abbiamo un client iOS attualmente in fase di alpha test. Questa app include un browser integrato.
- Il nostro meccanismo di feedback in-app ci invia messaggi e diagnostica facoltativa dagli utenti. Questo sistema ci ha aiutato a eseguire il debug di molti problemi della piattaforma e problemi di blocco.
- Modifiche agli algoritmi di discovery: i nostri algoritmi di discovery si evolvono nell'ambito di un processo continuo di ottimizzazione della nostra rete. Le modifiche principali includono la condivisione dei server di discovery tra i canali di propagazione e l'aggiunta della fascia oraria come dimensione.
- Ottimizzazioni degli algoritmi di connessione: ora i nostri client avviano connessioni verso più server contemporaneamente durante il collegamento e mantengono la connessione "migliore". Ciò contribuisce al bilanciamento del carico oltre a ridurre i tempi di attesa dell'utente, poiché i singoli server bloccati non bloccano la sequenza di connessione.
- L'aggiornamento automatico del client è stato potenziato per utilizzare il download incrementale e siti di download fuori banda (autenticati con firme digitali). Queste modifiche hanno reso più probabile la corretta distribuzione di un nuovo client durante i periodi di blocco.