Présentation

Les navigateurs basés sur WebKit sous iOS et macOS peuvent être configurés pour acheminer tout le trafic web via des serveurs proxy. Cependant, nous avons découvert trois fonctionnalités de WebKit qui contournent la configuration du proxy et envoient le trafic directement à partir de l'appareil, révélant ainsi l'adresse IP réelle de l'utilisateur.

Contexte technique

Ces fuites sont dues à trois fonctionnalités spécifiques de WebKit : le préchargement DNS, les requêtes liées à WebAuthn et WebTransport. Le préchargement DNS résout les noms d'hôte via le chemin DNS normal de l'appareil, tandis que les requêtes liées à WebAuthn font appel au service d'authentification du système d'exploitation pour récupérer un fichier de validation, contournant ainsi le proxy. WebTransport, quant à lui, ouvre une connexion HTTP/3 directe et contourne le proxy, exposant également l'adresse IP réelle de l'appareil.

Implications et limites

Ces fuites affectent non seulement les navigateurs proxy sous iOS, mais également la fonctionnalité iCloud Private Relay d'Apple. Les VPN ne sont pas affectés, car ils encapsulent l'ensemble du trafic réseau de l'appareil au niveau du système. Nous avons signalé ces problèmes au projet Tor et aux développeurs de Onion Browser sous iOS.

Mitigations

Pour atténuer ces fuites, nous avons mis à jour notre navigateur Psylo pour bloquer les préchargements DNS et désactiver WebTransport et WebAuthn par défaut. Les utilisateurs peuvent réactiver ces fonctionnalités pour les sites qui les nécessitent, en utilisant des commutateurs spécifiques. Cette approche explicite permet aux utilisateurs de contrôler les compromis en matière de confidentialité.