Une description technique de Psiphon
03/12/2014 - 4 min de lecture
Mis à jour : 04/06/2021
Voici une mise à jour pour répondre à deux questions récentes : en termes simples, qu'est-ce que Psiphon et en quoi diffère-t-il d'un service VPN ; et qu'est-ce qui a changé depuis la dernière mise à jour du document de conception technique.
Psiphon 3 est un réseau géré de manière centralisée et géographiquement diversifié de milliers de serveurs proxy. La majeure partie de notre infrastructure est hébergée chez des fournisseurs cloud. Psiphon 3 repose sur une architecture à « saut unique » avec chiffrement sécurisé des liaisons entre les clients et les serveurs. Nous proposons des clients pour les plateformes les plus populaires : Windows, Android et iOS (en version alpha).
Psiphon est open source. Notre service propose une solide politique de confidentialité ; il n'y a aucun compte d'utilisateur et les adresses réseau des utilisateurs ne sont pas enregistrées.
Psiphon diffère des services VPN classiques sur plusieurs points essentiels :
- Nous déployons des stratégies pour distribuer des sous-ensembles de serveurs aux utilisateurs, dans le but de fournir à chaque utilisateur une poignée de serveurs accessibles sans pour autant révéler l'ensemble du réseau à un seul utilisateur. Pour atteindre cet objectif, la taille de notre réseau — et en particulier la diversité de nos adresses réseau — ne dépend pas simplement de notre volume de trafic.
- Nous utilisons l'offuscation de protocole pour contourner le blocage par DPI.
Le document de conception technique de Psiphon est obsolète et ce qui suit est un très bref résumé des changements techniques majeurs que nous avons mis en œuvre depuis le lancement du projet en 2011.
- Nous avons ajouté le protocole SSH offusqué pour atténuer la prise d'empreinte par DPI. Ce protocole à l'apparence entièrement aléatoire est déployé avec une clé d'offuscation unique par serveur Psiphon.
- Nous avons ajouté un préfixe HTTP facultatif à notre protocole pour atténuer la mise sur liste blanche du trafic HTTP basée sur le DPI. Ce simple préfixe suffit pour que le DPI basé sur des expressions régulières (nDPI et l7-filter) classifie le trafic Psiphon comme du HTTP ; et cela a suffi à mettre en échec un adversaire réel au moment où nous l'avons déployé.
- Nous avons ajouté des listes de serveurs distants pour compléter les concepts de serveurs intégrés et de découverte. Alors que la découverte n'a lieu que lors de la connexion à un serveur existant, les listes de serveurs distants peuvent être téléchargées même lorsque tous les serveurs sont bloqués. Les listes de serveurs distants sont distribuées sur S3 et accessibles via https://s3.amazonaws.com sans nom de bucket distinctif dans l'URL. De cette manière, il est difficile pour un adversaire de bloquer nos listes de serveurs distants sans bloquer l'ensemble de S3 ou mettre en place une analyse du trafic HTTPS.
- L'e-mail est désormais un mécanisme majeur de propagation des clients. Nous disposons d'un répondeur automatique qui renvoie des liens et des pièces jointes vers des clients Psiphon personnalisés selon le sponsor/canal, en fonction de l'adresse e-mail à laquelle les utilisateurs écrivent.
- Nous avons lancé un client Android en 2012. La première version incluait un navigateur intégré basé sur la WebView d'Android. En 2012/2013, nous avons ajouté la prise en charge de la tunnellisation de l'appareil complet, qui achemine toutes les applications Android via Psiphon. Nous disposons d'un mode tout appareil basé sur iptables (pour les appareils Android 2.2+ rootés) ; et d'un mode tout appareil qui utilise le VpnService d'Android avec tun2socks (pour tout appareil Android 4+). Parmi les fonctionnalités supplémentaires ajoutées, citons la sélection de la région de sortie et le chaînage de proxys.
- Nous avons désormais un client iOS en phase de test alpha. Cette application comporte un navigateur intégré.
- Notre mécanisme de retour d'information intégré à l'application nous transmet des messages ainsi que des diagnostics facultatifs de la part des utilisateurs. Ce système nous a aidés à résoudre de nombreux problèmes de plateforme et de blocage.
- Modifications apportées aux algorithmes de découverte : nos algorithmes de découverte évoluent dans le cadre d'un processus continu d'optimisation de notre réseau. Les changements majeurs incluent le partage des serveurs de découverte entre les canaux de propagation, ainsi que l'ajout de l'heure de la journée comme dimension.
- Optimisations des algorithmes de connexion : nos clients établissent désormais des connexions vers plusieurs serveurs à la fois lors de la connexion, et conservent la « meilleure » connexion. Cela facilite l'équilibrage de charge tout en réduisant le temps d'attente pour l'utilisateur, car le blocage individuel de serveurs n'interrompt pas la séquence de connexion.
- La mise à jour automatique des clients a été améliorée pour utiliser le téléchargement incrémentiel et des sites de téléchargement hors bande (authentifiés par des signatures numériques). Ces modifications augmentent la probabilité qu'un nouveau client puisse être distribué lors d'une période de blocage.