Proxys transparents
Un proxy transparent transmet les requêtes par son serveur, mais révèle au site l’adresse IP d’origine de l’utilisateur. Il peut le faire en ajoutant cette adresse à un en-tête HTTP, un champ qui transporte des informations avec la requête. Se connecter depuis une IP différente ne masque donc pas nécessairement votre propre adresse.
Le terme appartient à l’ancienne classification des niveaux d’anonymat des proxys. Le comportement élite, ou à haut niveau d’anonymat, est devenu la norme pour les proxys commerciaux modernes : le service ne transmet pas l’IP d’origine du client et n’ajoute pas d’en-têtes annonçant l’utilisation d’un proxy. La catégorie transparent sert surtout à comprendre les descriptions anciennes et les libellés des listes publiques de proxys.
Comment le site découvre-t-il votre IP ?
Supposons que votre IP publique soit 198.51.100.24 et que le proxy atteigne le site depuis 203.0.113.80. Le proxy ouvre la connexion au site ; celui-ci voit donc l’adresse du proxy comme source de la connexion.
Lorsqu’il transmet une requête HTTP non chiffrée, le proxy peut toutefois ajouter X-Forwarded-For: 198.51.100.24. Le site reçoit alors deux adresses : l’IP du proxy par la connexion et votre IP dans un champ de la requête.
Une page de vérification d’IP peut afficher uniquement l’adresse de connexion. Vous verriez l’IP du proxy alors que votre propre adresse est elle aussi parvenue au site. Pour vérifier cette divulgation, comparez la valeur transmise à l’IP publique que vous utilisez pour vous connecter au proxy : la seule présence de X-Forwarded-For ne prouve pas qu’il contient votre véritable adresse. Un site n’est pas obligé de faire confiance à un en-tête fourni par un tiers, mais lorsque sa valeur est votre IP, l’information est déjà arrivée.
Pourquoi conserver l’adresse d’origine ?
Les proxys effectuent aussi des tâches qui ne nécessitent pas d’anonymat. Dans le réseau d’un organisme, un proxy peut restreindre l’accès aux sites, filtrer les requêtes ou conserver les réponses qui autorisent la mise en cache afin de les servir à nouveau sans les récupérer auprès du serveur d’origine.
Lorsqu’une requête traverse plusieurs systèmes appartenant au même organisme, le système suivant peut avoir besoin de savoir quel client l’a envoyée. Transmettre l’adresse d’origine aide à comptabiliser les requêtes et à appliquer les règles d’accès. C’est un choix délibéré d’infrastructure. Il ne convient pas à un client qui achète un proxy pour masquer son IP aux sites externes.
Un autre sens du mot « transparent »
Dans la documentation réseau, un proxy transparent peut aussi désigner un proxy vers lequel le trafic est routé automatiquement. L’utilisateur ne saisit pas d’adresse de proxy dans le navigateur ; les équipements réseau définissent le trajet. Un administrateur peut utiliser cette organisation pour diriger les appareils vers un système de filtrage partagé.
Ici, le mot décrit la manière dont la connexion est organisée. Dans la classification de l’anonymat, il décrit la divulgation d’une IP à un site. Ce sont deux propriétés indépendantes : configurer manuellement un proxy ne garantit pas que l’adresse reste masquée, et une redirection automatique ne signifie pas à elle seule qu’elle est transmise dans les en-têtes HTTP.
Qu’est-ce qui change avec HTTPS ?
L’exemple X-Forwarded-For s’applique à une requête que le proxy peut lire. Pour une connexion HTTPS normale via un proxy HTTP, l’application ouvre un tunnel avec CONNECT. La requête vers le site, y compris ses en-têtes, circule ensuite dans une connexion TLS chiffrée. Un proxy qui se contente de relayer ces octets chiffrés ne peut pas y insérer votre IP.
Une passerelle d’entreprise qui déchiffre HTTPS fonctionne autrement : l’appareil de l’utilisateur doit faire confiance à ses certificats pour que l’inspection s’effectue sans erreur de certificat. Un résultat transparent obtenu par un test HTTP en clair ne peut donc pas être automatiquement appliqué à HTTPS transporté dans un tunnel.
