Proxy
Un proxy est un composant logiciel informatique qui joue le rôle d'intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges.
Dans le cadre plus précis des réseaux informatiques, un proxy est alors un programme servant d'intermédiaire pour accéder à un autre réseau, généralement internet. Par extension, on appelle aussi proxy un matériel comme un serveur mis en place pour assurer le fonctionnement de tels services.
Patron de conception en programmation
- -Le concept de proxy (patron de conception) peut être utilisé dans n'importe quel programme informatique.
Si deux personnes qui ne parlent pas la même langue veulent communiquer, elles ont besoin d'un interprète. En informatique, deux entités utilisant des technologies différentes peuvent communiquer entre elles grâce à un intermédiaire qui interprète leurs échanges.
Proxy réseau
Dans l'environnement plus particulier des réseaux, un serveur proxy (serveur mandataire en français) est une fonction informatique client-serveur qui a pour fonction de relayer des requêtes entre une fonction cliente et une fonction serveur (couches 5 à 7 du modèle OSI).
Les serveurs proxys sont notamment utilisés pour assurer les fonctions suivantes :
- accélération de la navigation : mémoire cache, compression de données, filtrage des publicités ou des contenus lourds (java, flash) ;
- la journalisation des requêtes (logging) ;
- la sécurité du réseau local ;
- le filtrage et l'anonymat.
Accès internet
Les fournisseurs d'accès à internet (FAI) peuvent proposer des proxys pour la connexion de leurs abonnés. Il faut pour cela que l'abonné paramètre correctement son système (via un logiciel d'installation fourni par le FAI).
Mais il est également possible que le fournisseur d'accès utilise un proxy transparent (sans configuration par l'utilisateur). Ce proxy permet par exemple au fournisseur d'accès de connaître les habitudes de navigation de leurs abonnés ou de réduire le nombre d'accès effectifs aux sites distants.
Dans le cadre de la sécurité
L'utilité des serveurs proxys est importante, notamment dans le cadre de la sécurisation des systèmes d'information.
Par exemple, il est presque systématique en entreprise ou dans les établissements scolaires que l'accès internet se fasse à travers un serveur proxy. L'internaute ne voit pas la différence, sauf quand il tente de naviguer sur un site interdit, auquel cas il pourra recevoir un message d'erreur : un tel proxy est appelé proxy filtrant. Il se peut aussi qu'une boite de dialogue s'ouvre et demande un identifiant et un mot de passe avant de pouvoir surfer sur internet.
À l'inverse, un proxy peut aussi servir à contourner les filtrages. Supposons le cas d'un pays qui bloque l'accès à certains sites considérés comme "subversifs", mais qui effectue ce filtrage uniquement en se basant sur l'adresse du site que l'on souhaite visiter. Dans ce cas, en utilisant un proxy comme intermédiaire (situé dans un autre pays donc non affecté par le filtrage), on peut s'affranchir du filtrage (sauf bien sûr si l'adresse du proxy est elle-même interdite).
Le principe fonctionne également dans l'autre sens. Supposons qu'un site web n'accepte que les internautes d'un certain pays (exemple concret : un site de campagne présidentielle américain qui n'accepte que les connexions venant des États-Unis). Dans ce cas, en passant par un proxy situé aux États-Unis, un internaute français pourra visiter le site.
Un troisième rôle du proxy est de compliquer la remontée vers l'internaute (anonymisation). Dans l'exemple précédent, on a trompé le site américain qui n'était pas capable de remonter jusqu'à l'internaute à travers le proxy. Certaines techniques avancées permettent de remonter à travers le proxy. Dans ce cas, un internaute pourra utiliser de nombreux proxys en chaîne et stopper la connexion avant que ceux qui le traquent ne soient remontés jusqu'à lui.
Proxy web
Normalement, l'utilisation d'un proxy complet se fait en configurant son navigateur ou son ordinateur. Mais il existe une catégorie de proxy beaucoup plus simple d'utilisation : les proxys web. Il s'agit d'un simple site web dont la page offre un champ permettant de taper l'adresse du site que l'on souhaite visiter. Une fois saisie, la page demandée est affichée à l'intérieur de la première page. Mais l'adresse qui apparaît dans la barre d'adresse est toujours celle du proxy.
- Ce type de proxy est moins puissant qu'un proxy normal. En effet, les pages utilisant des techniques avancées pour se mettre à jour elles-mêmes (AJAX) ne "savent" pas qu'elles passent par un proxy, et donc tentent d'atteindre leurs serveurs directement. Si ce serveur était interdit, alors la requête échoue. Par exemple, le proxy web glype ne permet pas de consulter des sites comme Facebook ou YouTube. La plupart des proxys web ne permettent pas non plus d'utiliser des sites sécurisés utilisant HTTPS, comme les banques par exemple.
De nombreux proxys web sont disponibles gratuitement sur internet, principalement pour permettre à des internautes de contourner les protections de leurs lieux de surf (entreprise, école, comme expliqué précédemment). La plupart se financent en affichant de la publicité en plus de la page demandée. Mais certains peuvent aussi essayer de capturer les mots de passe ou toute autre information sensible (numéro de carte bancaire) ou même rediriger l'internaute vers un faux site. Il faut donc être extrêmement prudent avant d'utiliser un proxy gratuit sur internet.
Quelques serveurs proxys logiciels
- Pour HTTP
- Squid : serveur open source le plus utilisé.
- Gatejs : serveur et proxy HTTP open source avec comme objectif la performance, la simplification et la factorisation des codes informatique.
- Privoxy : serveur open source dont l'objectif est la protection des informations personnelles des utilisateurs. Le nom Privoxy vient de la contraction de Privacy et Proxy'.
- FreeProxy (en) : serveur permettant une navigation anonyme et sécurisée sur le Web.
- JanusVM : serveur permettant une navigation anonyme et sécurisée sur le Web.
- JonDonym (auparavant nommé JAP pour Java Anon Proxy) : logiciel populaire et open source pour connecter aux chaînes des anonymiseurs.
- Ghost navigator : navigateur web pré-configuré pour se connecter à plusieurs serveurs proxys répartis dans plusieurs pays.
- TcpCatcher : serveur proxy TCP et HTTP gratuit à but éducatif.
- Microsoft Forefront Threat Management Gateway (en) : logiciel proposant un proxy et un pare-feu.
- Varnish : serveur proxy simple et efficace.
Programmés en PHP :
- Proxys mis en œuvre sur un serveur web, par exemple PHProxy[1] ou Glype[2].
- Pour SSH
- SSH Proxy : serveur proxy pour le protocole SSH open source.
- Pour IMAP
- ImapProxy : serveur proxy open source pour le protocole IMAP.
- Pour SMTP
- SMAP : serveur proxy pour le protocole SMTP.
- Multi-protocoles
- DeleGate (networking) (en) : serveur proxy multiplateforme multi-usage mandaté au niveau applicatif ou au niveau session.
Historique
Historiquement, la première référence au concept de proxy remonte à Shapiro, International Conference on Distributed Computing Systems (en) 1986[3].
Références
- ↑ http://sourceforge.net/projects/poxy/
- ↑ http://www.glype.com
- ↑ Marc Shapiro. Structure and encapsulation in distributed systems: the Proxy Principle. International Conference on Distributed Computing Systems (en) (ICDCS), pages 198--204, Cambridge, Mass. (États-Unis), mai 1986.
Annexes
Voir aussi
- Reverse proxy
- Proxy ARP
- ORB
- RPC
- Passerelle (informatique)
- Vie privée et informatique
- Tor (réseau)
- Portail des réseaux informatiques
- Portail de la sécurité informatique