Proxy

Da Wikipedia, l'enciclopedia libera.
(Reindirizzamento da Proxy server)

In informatica e telecomunicazioni, un proxy (che significa intermediario) è un programma che si interpone tra un client ed un server facendo da tramite o interfaccia tra i due host, ovvero inoltrando le richieste e le risposte dall'uno all'altro. Il client si collega al proxy invece che al server, e gli invia delle richieste. Il proxy a sua volta si collega al server e inoltra la richiesta del client, riceve la risposta e la inoltra al client.

A differenza di bridge e router, che lavorano ad un livello ISO/OSI più basso (in quanto sfruttano i NAT), i proxy nella maggior parte dei casi lavorano a livello applicativo; di conseguenza, un programma proxy gestisce un numero limitato di protocolli applicativi.[1]

Altri usi del termine Proxy[modifica | modifica sorgente]

Protocollo SOCKS[modifica | modifica sorgente]

Il protocollo SOCKS realizza invece una forma di proxy a livello di trasporto, che inoltra semplicemente le connessioni TCP e UDP tra client e server, senza analizzare i protocolli applicativi. Esistono due tipi di protocolli Socks:

  1. Socks 4: permette di lavorare solo con i protocolli TCP, come HTTP (web browsing), accesso NNTP newsgroup, IRC;
  2. Socks 5: è più avanzato del precedente, permettendo di rendere anonimi anche i protocolli UDP (per esempio ICQ).

Proxy ARP[modifica | modifica sorgente]

Il proxy ARP è una funzionalità che può essere adottata su alcuni router per realizzare configurazioni particolari.

Proxy SIP[modifica | modifica sorgente]

Il proxy SIP è un componente di un'architettura di comunicazione VoIP o multimediale, che viene usato come punto di contatto per terminali che devono comunicare tra loro, e in alcuni casi come vero e proprio proxy tra i terminali.[2]

Proxy HTTP[modifica | modifica sorgente]

Un caso in cui viene spesso usato un proxy è la navigazione web (denominato proxy HTTP dal nome del protocollo usato).[3]

Per utilizzare un proxy è possibile configurare il client in modo che si colleghi al proxy invece che al server, oppure definire un proxy trasparente; in questo caso, a seconda della configurazione, alcune connessioni (ad esempio quelle HTTP) vengono automaticamente indirizzate al proxy senza che sia necessario configurare un client (l'impostazione quindi rimane attiva anche cambiando client).

Un proxy può essere usato per una o più delle seguenti ragioni:

  • connettività: per permettere ad una rete privata di accedere all'esterno è possibile configurare un computer in modo che faccia da proxy tra gli altri computer e Internet, in modo da mantenere un unico computer connesso all'esterno, ma permettere a tutti di accedere. In questa situazione, solitamente il proxy viene usato anche come firewall.
  • caching: un proxy può immagazzinare per un certo tempo i risultati delle richieste di un utente, e se un altro utente effettua le stesse richieste può rispondere senza dover consultare il server originale. Collocando il proxy in una posizione "vicina" agli utenti, questo permette un miglioramento delle prestazioni ed una riduzione del consumo di ampiezza di banda.
  • monitoraggio: un proxy può permettere di tenere traccia di tutte le operazioni effettuate (ad esempio, tutte le pagine web visitate), consentendo statistiche ed osservazioni dell'utilizzo della rete che possono anche violare la privacy degli utenti.
  • controllo: un proxy può applicare regole definite dall'amministratore di sistema per determinare quali richieste inoltrare e quali rifiutare, oppure limitare l'Ampiezza di banda utilizzata dai client, oppure filtrare le pagine Web in transito, ad esempio bloccando quelle il cui contenuto è ritenuto offensivo in base a determinate regole o contrarie alle policy aziendali.
  • privacy: un proxy può garantire un maggiore livello di privacy mascherando il vero indirizzo IP del client in modo che il server non venga a conoscenza di chi ha effettuato la richiesta.

Quando la configurazione della rete consente di collegarsi ad internet solamente attraverso un proxy, non sono ovviamente utilizzabili molti tipi di applicazioni basate su protocolli non supportati dal proxy, ad esempio:

  • Giochi on-line
  • webcam: la ricezione e l'invio di immagini tramite webcam con programmi di messaggistica istantanea
  • browser che non supportano la configurazione di un proxy. Questo caso è frequente su dispositivi particolari come console per videogiochi o telefoni cellulari.
  • servizi VoIP
  • applicazioni di file sharing

Talune di queste applicazioni sono state modificate per poter far passare il proprio traffico incapsulato in HTTP e quindi per poterlo veicolare in un proxy.

Proxy HTTP e anonimato[modifica | modifica sorgente]

I server esterni a cui si collega il client quando si utilizza un proxy vedranno generalmente l'indirizzo IP del proxy (e non quello del client). Se l'uso di un proxy garantisce una relativa privacy del client (il server esterno, o chi analizzi il traffico diretto ad esso, non potrà infatti conoscere l'indirizzo IP del client), può impedire la connessione a quei siti che utilizzino l'indirizzo IP del client per scopi di autenticazione o di riconoscimento delle sessioni (come ad esempio nei collegamenti agli sportelli bancari on-line).

Il protocollo HTTP prevede però che un proxy possa inserire nelle richieste che inoltra al server degli header standardizzati, che permettono di riconoscere che la richiesta è stata inoltrata da un proxy, e possono contenere anche l'indirizzo IP del client, che in questo modo può essere noto ad un server opportunamente configurato. Quando viene usata questa funzionalità, il server web "si fida" dell'indirizzo del client inviatogli dal proxy, e non può in alcun modo verificare questa informazione. L'amministratore di un server proxy può decidere se inviare o meno questi header determinando quindi il livello di anonimato del proxy.

I proxy HTTP, a seconda dell'anonimato che riescono a fornire, possono essere suddivisi in:

  • NOA (non anonymous proxy) proxy non anonimi (o "trasparenti"): Modificano alcuni header trasmessi dal browser e ne aggiungono altri, mostrano anche l'indirizzo IP reale del richiedente. Sono molto facili da riconoscere da parte del server web.
  • ANM (anonymous proxy server) proxy anonimi: non trasmettono l'IP del richiedente, ma modificano o aggiungono alcuni header. Sono pertanto facilmente riconoscibili.
  • HIA (high anonymous proxy) proxy altamente anonimi (o "élite"): non trasmettono l'IP del richiedente e non modificano gli header della richiesta. Sono difficili da riconoscere attraverso i normali controlli.
  • Proxy distorcenti: trasmettono un IP casuale, diverso da quello del richiedente e modificano o aggiungono alcuni header. Solitamente vengono scambiati per proxy Anonimi, ma offrono una protezione maggiore, in quanto il server web vede le richieste di un utente provenienti da indirizzi IP diversi.

Esistono programmi che, basandosi sulla tecnologia peer to peer forniscono funzionalità di proxy "anonimizzante" (un proxy che non inoltra al server l'indirizzo IP del client).

Il protocollo HTTP è stateless, ovvero una richiesta non lascia alcuno stato nel server. Tuttavia, per realizzare applicazioni web complesse, sono stati sviluppati meccanismi a livello superiore come i cookies per costruire "sessioni". Questi meccanismi possono permettere al server web di ottenere informazioni sul client nonostante gli sforzi fatti dal proxy per difenderne l'anonimato, in particolare possono permettere di riconoscere un utente di un server web anche se questi si collega da reti totalmente diverse.

Per vedere se il proxy server consente una navigazione anonima, ossia se non rivela l'IP del client a nessun altro server della rete, è bene effettuare un "Who-is". Il server del sito per il Who-is deve restituire l'IP del proxy server; se invece, rende visibile un IP diverso, presumibilmente si tratta di quello del client, e il test è fallito.

Proxy CGI[modifica | modifica sorgente]

Un proxy CGI consiste in un sito web attraverso il quale è possibile navigare in rete. Per utilizzare un proxy CGI occorre collegarsi ad un apposito sito web che permette, dopo aver digitato nell'apposito campo l'indirizzo web che si vuole visitare, di collegarsi ad esso in modo anonimo. Su Internet è possibile trovare liste di siti CGI.

  • Vantaggi:
  1. permette all'utente di scegliere quali dati inviare al server (cookies, tipo di browser, ecc.) nascondendo l'IP;
  2. permette ad un utente di rete (che non abbia i diritti di amministratore per modificare le impostazioni del browser o del sistema operativo) di bypassare le restrizioni di navigazione imposte ed operare on-line in modo anonimo.
  • Svantaggi:
  1. un proxy CGI potrebbe non poter gestire autonomamente cookies, referers e JavaScript.

Note[modifica | modifica sorgente]

  1. ^ (EN) Bradley Mitchell, Proxy Servers Tutorial - About Proxy Servers, about.com. URL consultato il 20 maggio 2012.
  2. ^ (EN) SIP: Session Initiation Protocol - 16. Proxy Behavior, ietf.org. URL consultato il 20 maggio 2012.
  3. ^ (EN) Hypertext Transfer Protocol - HTTP/1.1 - 8.1.3 Proxy Servers, ietf.org. URL consultato il 20 maggio 2012.

Voci correlate[modifica | modifica sorgente]