Meek et le domain fronting : le pont Tor qui se cache dans un CDN
Chaque type de pont dans Tor Browser est un exercice de déguisement, mais meek emprunte la voie la plus ambitieuse : il ne remodèle pas le trafic Tor, il le transporte simplement dans le corps de requêtes HTTPS ordinaires destinées à un grand réseau de diffusion de contenu. La technique sous-jacente, le domain fronting, était autrefois disponible chez tous les grands fournisseurs de cloud. Une décennie après ses débuts, elle survit essentiellement chez un seul, et le déploiement meek-azure est le dernier de cette famille de ponts encore présent dans le menu.
Comment le domain fronting cache une connexion Tor
La faiblesse que le domain fronting exploite, c'est qu'une poignée de main TLS offre au censeur une étiquette commode : le champ Server Name Indication nomme le site visité. L'étude de 2015 de David Fifield et de ses collègues, qui a fait entrer la technique dans le contournement de la censure, décrit comment le fronting brise ce lien. Un domaine apparaît à l'extérieur d'une requête HTTPS, dans la requête DNS et la poignée de main TLS, tandis qu'un autre domaine apparaît à l'intérieur, dans l'en-tête Host de HTTP. Le censeur ne voit que la façade. L'en-tête Host est invisible pour le censeur mais visible pour le CDN qui reçoit la requête ; il la lit et transmet la connexion à la véritable destination. Bloquer ce trafic reviendrait à bloquer un site web ordinaire et très fréquenté avec tous ses utilisateurs légitimes. meek transforme cette idée en pont. Le client enveloppe des morceaux de trafic Tor dans des requêtes POST HTTP et les pousse à travers un CDN à fronting vers un pont exécutant meek-server, où un identifiant de session réassemble le flux ; quand rien n'est en attente, le client continue d'envoyer des sondes vides pour que la connexion ne se taise pas. Dans la conception d'origine, ces requêtes étaient même pilotées via un vrai moteur de navigateur, c'est pourquoi l'étude pouvait dire du trafic obtenu qu'il ressemble à un navigateur, parce qu'il en est un.2018 : les portes se ferment
Tout le reposait sur la tolérance des fournisseurs de cloud envers le décalage entre les deux couches, et en 2018 ils ont cessé. Selon le récit de Signal, Google a donné un préavis de 30 jours mettant fin au domain fronting après que Signal eut utilisé le fronting d'App Engine pour joindre des utilisateurs en Iran, que la lecture même de Google de la loi américaine sur les sanctions avait déjà coupés. Quelques semaines plus tard, le 27 avril 2018, Amazon écrivait à Signal pour l'avertir qu'il n'avait pas l'autorisation d'utiliser le domaine Souq.com comme façade, menaçait de suspendre son compte CloudFront et introduisait les Enhanced Domain Protections qui ont mis fin au fronting sur tout le CDN. Le Tor Project rapportait le même mois que les deux entreprises tiraient la prise et que meek était devenu inutilisable via leurs réseaux ; Access Now dénombrait environ une douzaine d'outils de droits humains touchés, Signal et Telegram compris. La conclusion de Signal était sèche : le domain fronting comme technique de contournement de la censure était devenu largement non viable, et son observation finale expliquait pourquoi ces coupures n'ont rien coûté aux censeurs."...n'avaient rien à faire sinon attendre." - Signal, mai 2018
Pourquoi meek-azure a survécu
Un fournisseur n'a pas rejoint la retraite. Le Tor Project notait à l'époque que le cloud Azure de Microsoft autorisait toujours le domain fronting, et l'étude de 2015 avait déjà observé une raison structurelle : le CDN d'Azure ne transmet les requêtes qu'aux domaines affiliés à Azure, tandis que CloudFront d'Amazon transmettait à peu près partout. Le déploiement Azure de meek se situe entièrement dans ce périmètre, avec son point de terminaison hébergé sur le CDN d'Azure derrière un domaine frontal contrôlé par Microsoft, de sorte que la requête ne passe jamais entre des entreprises sans lien entre elles. Une fois que Google et Amazon ont cessé de permettre au nom visible et à la destination réelle de diverger, cette tolérance interne a suffi. Le Tor Project avertissait dès le départ qu'il n'avait reçu aucun préavis des autres coupures et que la politique d'Azure pouvait changer elle aussi, une réserve qui accompagne meek-azure depuis.Le prix de l'anonymat en pleine vue
Les propriétés qui rendent meek difficile à bloquer le rendent aussi lent et coûteux. Le saut CDN supplémentaire et la conception pilotée par les requêtes ont réduit les vitesses de téléchargement mesurées d'un facteur deux à trois environ dans l'étude de 2015, et les recommandations actuelles du support de Tor sont encore plus franches : meek souffre d'une limitation de bande passante, l'option sera donc assez lente. L'argent est l'autre contrainte. Quelqu'un paie les frais de sortie du CDN pour chaque octet qu'un pont meek déplace, et la facture du déploiement initial s'élevait à 565 dollars sur Azure, 3 292 sur Google App Engine et 3 793 sur CloudFront au cours de l'étude. Les chercheurs ont également averti qu'un adversaire pouvait gonfler cette facture à volonté, le problème de déni de service financier démontré lorsque le Great Cannon a infligé des dizaines de milliers de dollars de frais de bande passante à l'hébergement cloud de ses cibles.Quand meek est le bon choix
Pour la plupart des utilisateurs censurés, meek est un recours, pas un premier choix. Les conseils actuels de Tor pour la Chine recommandent d'abord WebTunnel et citent meek et Snowflake en secours en cas d'échec. Les options courantes font chacune un compromis différent :- obfs4 brouille le trafic, il est rapide et gratuit, mais chaque pont est un serveur individuel dont l'adresse peut fuiter ou être balayée.
- Snowflake emprunte des relais éphémères à des volontaires, facile à déployer à grande échelle mais de vitesse variable.
- WebTunnel fait ressembler Tor à une connexion HTTPS ordinaire vers un serveur web sans exiger la coopération d'un géant du CDN.
- meek se cache derrière l'un des domaines les plus fréquentés du web et survit aux listes blanches les plus strictes, à basse vitesse.










