Server proxy webModifica

I proxy web inoltrano le richieste HTTP. La richiesta del client è la stessa di una normale richiesta HTTP, tranne che viene passato l’URL completo, invece del solo percorso.

GET https://en.wikipedia.org/wiki/Proxy_server HTTP/1.1Proxy-Authorization: Basic encoded-credentialsAccept: text/html

Questa richiesta viene inviata al server proxy, il proxy effettua la richiesta specificata e restituisce la risposta.

HTTP/1.1 200 OKContent-Type: text/html; charset UTF-8

Alcuni proxy web permettono il metodo HTTP CONNECT per impostare l’inoltro di dati arbitrari attraverso la connessione; una politica comune è quella di inoltrare solo la porta 443 per consentire il traffico HTTPS.

Esempi di server web proxy includono Apache (con mod_proxy o Traffic Server), HAProxy, IIS configurato come proxy (ad es, con Application Request Routing), Nginx, Privoxy, Squid, Varnish (solo reverse proxy), WinGate, Ziproxy, Tinyproxy, RabbIT e Polipo.

SOCKS proxyEdit

SOCKS inoltra anche dati arbitrari dopo una fase di connessione, ed è simile a HTTP CONNECT nei proxy web.

Proxy trasparenteEdit

Conosciuto anche come proxy di intercettazione, proxy in linea, o proxy forzato, un proxy trasparente intercetta la normale comunicazione a livello di applicazione senza richiedere alcuna configurazione speciale del client. I client non devono essere consapevoli dell’esistenza del proxy. Un proxy trasparente è normalmente situato tra il client e Internet, con il proxy che svolge alcune delle funzioni di un gateway o router.

RFC 2616 (Hypertext Transfer Protocol-HTTP/1.1) offre definizioni standard:

“Un ‘proxy trasparente’ è un proxy che non modifica la richiesta o la risposta oltre a quanto richiesto per l’autenticazione e l’identificazione del proxy”. “Un ‘proxy non trasparente’ è un proxy che modifica la richiesta o la risposta per fornire qualche servizio aggiunto all’agente utente, come servizi di annotazione di gruppo, trasformazione del tipo di media, riduzione del protocollo o filtraggio dell’anonimato”.

TCP Intercept è una funzione di sicurezza di filtraggio del traffico che protegge i server TCP dagli attacchi TCP SYN flood, che sono un tipo di attacco denial-of-service. TCP Intercept è disponibile solo per il traffico IP.

Nel 2009 una falla di sicurezza nel modo in cui operano i proxy trasparenti è stata pubblicata da Robert Auger, e il Computer Emergency Response Team ha emesso un avviso che elencava decine di server proxy trasparenti e di intercettazione interessati.

ScopoModifica

I proxy di intercettazione sono comunemente usati nelle aziende per far rispettare la politica di uso accettabile, e per facilitare i costi amministrativi poiché non è richiesta la configurazione del browser del cliente. Questa seconda ragione, tuttavia, è mitigata da caratteristiche come la politica di gruppo di Active Directory, o il DHCP e il rilevamento automatico del proxy.

I proxy di intercettazione sono anche comunemente usati dagli ISP in alcuni paesi per risparmiare banda a monte e migliorare i tempi di risposta dei clienti attraverso il caching. Questo è più comune nei paesi in cui la larghezza di banda è più limitata (ad esempio le nazioni insulari) o deve essere pagata.

ProblemiModifica

La deviazione/intercettazione di una connessione TCP crea diversi problemi. In primo luogo, l’IP e la porta di destinazione originale devono essere in qualche modo comunicati al proxy. Questo non è sempre possibile (ad esempio, quando il gateway e il proxy risiedono su host diversi). C’è una classe di attacchi cross-site che dipende da certi comportamenti dei proxy di intercettazione che non controllano o hanno accesso alle informazioni sulla destinazione originale (intercettata). Questo problema può essere risolto utilizzando un’appliance o un software integrato a livello di pacchetto e di applicazione che sia in grado di comunicare queste informazioni tra il gestore di pacchetti e il proxy.

L’intercettazione crea anche problemi per l’autenticazione HTTP, specialmente l’autenticazione orientata alla connessione come NTLM, poiché il browser client crede di stare parlando con un server piuttosto che con un proxy. Questo può causare problemi quando un proxy che intercetta richiede l’autenticazione, poi l’utente si connette ad un sito che richiede anch’esso l’autenticazione.

Infine, intercettare le connessioni può causare problemi per le cache HTTP, poiché alcune richieste e risposte diventano non memorizzabili da una cache condivisa.

Metodi di implementazioneModifica

Nei firewall/proxy server integrati in cui il router/firewall è sullo stesso host del proxy, la comunicazione delle informazioni di destinazione originali può essere fatta con qualsiasi metodo, per esempio Microsoft TMG o WinGate.

L’intercettazione può anche essere eseguita utilizzando il WCCP (Web Cache Control Protocol) di Cisco. Questo protocollo proprietario risiede sul router e viene configurato dalla cache, permettendo alla cache di determinare quali porte e quale traffico gli viene inviato tramite un reindirizzamento trasparente dal router. Questo reindirizzamento può avvenire in uno dei due modi: Tunneling GRE (OSI Layer 3) o riscritture MAC (OSI Layer 2).

Una volta che il traffico raggiunge la macchina proxy stessa, l’intercettazione viene comunemente eseguita con NAT (Network Address Translation). Tali configurazioni sono invisibili al browser client, ma lasciano il proxy visibile al server web e ad altri dispositivi sul lato internet del proxy. Le recenti versioni di Linux e alcune di BSD forniscono TPROXY (transparent proxy) che esegue l’intercettazione trasparente a livello IP (OSI Layer 3) e lo spoofing del traffico in uscita, nascondendo l’indirizzo IP del proxy da altri dispositivi di rete.

DetectionEdit

Possono essere utilizzati diversi metodi per rilevare la presenza di un server proxy intercettatore:

  • Confrontando l’indirizzo IP esterno del client con l’indirizzo visto da un server web esterno, o talvolta esaminando gli header HTTP ricevuti da un server. Un certo numero di siti sono stati creati per affrontare questo problema, riportando l’indirizzo IP dell’utente visto dal sito all’utente su una pagina web. Google restituisce anche l’indirizzo IP visto dalla pagina se l’utente cerca “IP”.
  • Confrontando il risultato dei verificatori IP online quando si accede utilizzando HTTPS vs HTTP, poiché la maggior parte dei proxy di intercettazione non intercetta SSL. Se c’è il sospetto che SSL sia stato intercettato, si può esaminare il certificato associato a qualsiasi sito web sicuro, il certificato di root dovrebbe indicare se è stato emesso allo scopo di intercettare.
  • Confrontando la sequenza dei salti di rete riportati da uno strumento come traceroute per un protocollo proxy come http (porta 80) con quella per un protocollo non proxy come SMTP (porta 25).
  • Tentando di effettuare una connessione a un indirizzo IP al quale è noto che non ci sono server. Il proxy accetterà la connessione e poi tenterà di effettuare il proxy. Quando il proxy non trova alcun server che accetti la connessione, può restituire un messaggio di errore o semplicemente chiudere la connessione al client. Questa differenza di comportamento è semplice da rilevare. Per esempio, la maggior parte dei browser web genererà una pagina di errore creata dal browser nel caso in cui non possa connettersi a un server HTTP, ma restituirà un errore diverso nel caso in cui la connessione venga accettata e poi chiusa.
  • Servendo all’utente finale applicazioni Adobe Flash SWF appositamente programmate o applet Sun Java che rimandano le chiamate HTTP al loro server.

CGI proxyEdit

Un proxy web CGI accetta gli URL di destinazione usando un modulo web nella finestra del browser dell’utente, elabora la richiesta e restituisce i risultati al browser dell’utente. Di conseguenza, può essere usato su un dispositivo o una rete che non permette di cambiare le impostazioni del proxy “vero”. Il primo proxy CGI registrato, chiamato all’epoca “rover” ma rinominato nel 1998 in “CGIProxy”, fu sviluppato dall’informatico americano James Marshall all’inizio del 1996 per un articolo su “Unix Review” di Rich Morin.

La maggior parte dei proxy CGI sono alimentati da uno tra CGIProxy (scritto nel linguaggio Perl), Glype (scritto nel linguaggio PHP), o PHProxy (scritto nel linguaggio PHP). Ad aprile 2016, CGIProxy ha ricevuto circa 2 milioni di download, Glype ha ricevuto quasi un milione di download, mentre PHProxy riceve ancora centinaia di download a settimana. Nonostante il calo di popolarità dovuto alle VPN e ad altri metodi di privacy, ci sono ancora molti proxy CGI online.

Alcuni proxy CGI sono stati creati per scopi come rendere i siti web più accessibili ai disabili, ma da allora sono stati chiusi a causa del traffico eccessivo, di solito causato da una terza parte che pubblicizza il servizio come un mezzo per aggirare il filtraggio locale. Poiché molti di questi utenti non si preoccupano del danno collaterale che stanno causando, è diventato necessario per le organizzazioni nascondere i loro proxy, rivelando gli URL solo a coloro che si prendono la briga di contattare l’organizzazione e dimostrare un bisogno genuino.

Suffix proxyEdit

Un suffisso proxy permette a un utente di accedere ai contenuti web aggiungendo il nome del server proxy all’URL del contenuto richiesto (ad esempio “en.wikipedia.org.SuffixProxy.com”). I server proxy con suffisso sono più facili da usare rispetto ai server proxy regolari, ma non offrono alti livelli di anonimato e il loro uso primario è per bypassare i filtri web. Tuttavia, questo è usato raramente a causa dei filtri web più avanzati.

Tor onion proxy softwareEdit

Screenshot del programma del computer che mostra le posizioni dei computer su una mappa del mondo.
La mappa della rete Tor di Vidalia.

L’Onion Router (Tor) è un sistema destinato a fornire l’anonimato online. Il software client Tor instrada il traffico Internet attraverso una rete mondiale di server volontari per nascondere la posizione o l’uso del computer di un utente a qualcuno che conduce la sorveglianza della rete o l’analisi del traffico. L’uso di Tor rende più difficile rintracciare l’attività su Internet, ed è destinato a proteggere la libertà personale degli utenti, la privacy.

“Onion routing” si riferisce alla natura stratificata del servizio di crittografia: I dati originali sono crittografati e ricrittografati più volte, poi inviati attraverso successivi relay Tor, ognuno dei quali decifra un “livello” di crittografia prima di passare i dati al relay successivo e infine alla destinazione. Questo riduce la possibilità che i dati originali siano decodificati o compresi durante il transito.

I2P anonymous proxyEdit

La rete anonima I2P (‘I2P’) è una rete proxy che mira all’anonimato online. Implementa il garlic routing, che è un miglioramento dell’onion routing di Tor. I2P è completamente distribuito e funziona criptando tutte le comunicazioni in vari livelli e trasmettendole attraverso una rete di router gestiti da volontari in varie località. Mantenendo nascosta la fonte delle informazioni, I2P offre resistenza alla censura. Gli obiettivi di I2P sono di proteggere la libertà personale degli utenti, la privacy e la capacità di condurre affari riservati.

Ogni utente di I2P esegue un router I2P sul proprio computer (nodo). Il router I2P si occupa di trovare altri peer e di costruire tunnel anonimi attraverso di loro. I2P fornisce proxy per tutti i protocolli (HTTP, IRC, SOCKS, …).

Confronto con i traduttori di indirizzi di reteModifica

Il concetto di proxy si riferisce ad un’applicazione di livello 7 nel modello di riferimento OSI. La traduzione degli indirizzi di rete (NAT) è simile a un proxy ma opera nel livello 3.

Nella configurazione client del NAT di livello 3, è sufficiente configurare il gateway. Tuttavia, per la configurazione client di un proxy di livello 7, la destinazione dei pacchetti che il client genera deve essere sempre il server proxy (livello 7), poi il server proxy legge ogni pacchetto e scopre la vera destinazione.

Perché NAT opera a livello 3, è meno dispendioso in termini di risorse del proxy di livello 7, ma anche meno flessibile. Confrontando queste due tecnologie, potremmo incontrare una terminologia conosciuta come “firewall trasparente”. Firewall trasparente significa che il proxy usa i vantaggi del proxy layer-7 all’insaputa del client. Il client presume che il gateway sia un NAT nel livello 3, e non ha alcuna idea dell’interno del pacchetto, ma attraverso questo metodo, i pacchetti del livello 3 vengono inviati al proxy del livello 7 per essere esaminati.

DNS proxyEdit

Un server proxy DNS prende le query DNS da una rete (solitamente locale) e le inoltra a un Internet Domain Name Server. Può anche mettere in cache i record DNS.

ProxifiersEdit

Alcuni programmi client “SOCKS-ificano” le richieste, il che permette l’adattamento di qualsiasi software in rete per connettersi a reti esterne attraverso certi tipi di server proxy (per lo più SOCKS).

Proxy residenzialeModifica

Un proxy residenziale è un intermediario che utilizza un indirizzo IP reale fornito da un Internet Service Provider (ISP) con dispositivi fisici come cellulari e computer degli utenti finali. Invece di connettersi direttamente a un server, gli utenti proxy residenziali si connettono all’obiettivo attraverso indirizzi IP residenziali. L’obiettivo quindi li identifica come utenti internet organici. Non permette a nessuno strumento di tracciamento di identificare la riassegnazione dell’utente. Ogni proxy residenziale può inviare qualsiasi numero di richieste concorrenti e gli indirizzi IP sono direttamente legati a una regione specifica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *