Server proxy
Într-o rețea de calculatoare un server proxy este un server care acționează ca intermediar între cererile unui client care caută resurse de la serverele care le furnizează și aceste servere.[1] Prin urmare un server proxy funcționează în numele clientului atunci când solicită serviciul, putând masca adevărata origine a cererii față de serverul de resurse.
În loc să se conecteze direct la un server care poate furniza resursa solicitată, cum ar fi de exemplu un fișier sau o pagină web, clientul adresează cererea către serverul proxy, care evaluează solicitarea și efectuează în rețea operațiile necesare. Aceasta este o metodă de a simplifica complexitatea cererii,[2] sau de a oferi facilități suplimentare, cum ar fi managementul încărcării rețelei, confidențialitate sau securitate. Serverele proxy au fost concepute pentru a structura și încapsula în cadrul sistemele de calcul distribuite.[3]
Tipuri
modificareUn server proxy poate fi rezident pe calculatorul local al utilizatorului sau în orice alt punct dintre calculatorul utilizatorului și serverele solicitate de pe Internet. Un proxy care lucrează pentru client în sensul descris mai sus este cunoscut drept „proxy direct” (engleză forward proxy). Un server proxy care transmite cereri și răspunsuri nemodificate este numit de obicei poartă de acces sau uneori „proxy de tunelare”. Un proxy care lucrează invers, de obicei controlând accesul la un server dintr-o rețea privată și protejându-l față de accesul direct este cunoscut drept „proxy invers(d)” (engleză reverse proxy). De asemenea, un proxy invers îndeplinește de obicei sarcini precum managementul încărcării(d), autentificarea, decriptarea și gestionarea memoriei cache.
Proxy deschis
modificareUn proxy deschis(d) (engleză open proxy) este un proxy direct accesibil oricărui utilizator de pe Internet. Gordon Lyon a estimat că în 2008 existau pe Internet „sute de mii” de servere proxy deschise.[4]
- Proxy anonim – Acest server se identifică ca proxy, dar nu divulgă adresa IP a clientului. Deși un server de acest tip poate fi descoperit cu ușurință, el nu este util dacă adresa IP a clientului este necesară.
- Proxy trаnspаrent – Acest server nu numai că se іdentіfіcă ca proxy, ci cu ajutorul câmpurilor din antetele HTTP, cum ar fi
X-Forwarded-For
, transmite și adresa IP de origine. Scopul principal al unui astfel de server este să acționeze ca memorie cache pentru site-uri web accesate frecvent, asigurând un răspuns mai rapid.
Proxy invers
modificareUn proxy invers (sau surogat) este un server proxy care apare clienților ca fiind un server obișnuit. Un proxy invers transmite cererile către unul sau mai multe servere obișnuite, care rezolvă cererile. Răspunsul primit de la serverul proxy este cel provenit direct de la serverul care l-a dat, însă fără a da clientului informații despre serverul respectiv.[5] Proxy-urile inverse se instalează în vecinătatea unuia sau mai multor servere obișnuite. Tot traficul care vine de pe Internet, destinația fiind unul dintre serverele web din rețeaua interioară trece prin serverul proxy. Ideea folosirii serverelor proxy inverse este de a fi folosite ca servere directe în sens invers, servind doar un set restricționat de adrese IP (cele interne). Rațiunile pentru instalarea unor servere proxy inverse pot fi:
- Criptare / accelerare SSL: când sunt create site-uri web securizare, adesea criptarea Transport Layer Security (SSL) nu este făcută de serverele propriu-zise, ci de un proxy care este echipat cu hardware de accelerare SSL. În plus, o gazdă poate avea un singur „proxy SSL” pentru a efectua criptarea SSL pentru un număr arbitrar de gazde, eliminând necesitatea unui certificat separat de server SSL pentru fiecare gazdă. Dezavantajul este că toate gazdele din spatele proxy SSL trebuie să partajeze un nume DNS comun sau o adresă IP comună pentru conexiunile SSL. Această problemă poate fi parțial depășită folosind posibilitatea SubjectAltName a certificatelor X.509(d).
- Managementul încărcării: un proxy poate distribui încărcarea la câteva servere, fiecare server web rezolvând cererile din zona sa de aplicații. În aceste cazuri serverul proxy poate înlocui adresele URL în fiecare pagină web (înlocuirea adreselor URL externe cu adrese interne și invers).
- Memorie cache pentru conținut stabil: un proxy poate descărca serverele web reținând în memoria sa cache conținutul stabil, cum ar fi imagini sau alt conținut grafic.
- Compresia datelor: un proxy poate optimiza compresia datelor pentru a scurta timpul de transfer.
- Alimentarea cu lingurița: un proxy poate reduce solicitarea serverelor web generată de clienții lenți prin memorarea în memoria sa cache a conținutului furnizat de aceste servere și „alimentarea cu lingurița” a acelor clienți. Util în special la paginile generate dinamic.
- Securitate: un proxy asigură un nivel suplimentar de protecție și poate fi protejat împotriva unor atacuri specifice unor sisteme de operare și servere web. Însă el nu oferă nicio protecție împotriva atacurilor împotriva aplicației sau serviciului web în sine, atacuri care sunt considerate amenințări mai mari.
- Acces extranet: un proxy invers orientat către Internet poate fi utilizat pentru a comunica cu un server-firewall intern al unei organizații, oferind acces extranet(d) la unele funcții, păstrând serverele în spatele firewall-ului. Dacă este utilizat astfel, ar trebui luate măsuri de securitate pentru a proteja restul infrastructurii proprii în cazul în care acest proxy este compromis, deoarece aplicația sa web este expusă atacurilor de pe Internet.
Utilizări
modificareMonitorizare și filtrare
modificareSoftware pentru controlul conținutului
modificareUn server proxy de tip software pentru controlul conținutului(d) gestionează („filtrează”) conținutul care poate fi transmis într-un sens sau în ambele prin acel proxy. Este folosit curent atât de organizații comerciale, cât și necomerciale (în special școli) pentru a se asigura că Internetul este folosit conform politicii de utilizare acceptabilă(d).
Serverele proxy de filtrare a conținutului folosesc adesea autentificarea pentru a controla accesul la web. De asemenea, de obicei se țin jurnale, fie pentru a oferi informații detaliate privind adresele URL accesate de către utilizatori, fie pentru a monitoriza viteza de transfer pentru statistici. De asemenea, el poate comunica cu programe antivirus bazate pe programe de tip daemon sau/și protocoale de tip ICAP(d) pentru a bloca acțiunile virușilor și a altor software rău intenționate prin scanarea în timp real a conținutului înainte ca el să intre în rețea.
Mulți angajatori, școli și colegii restricționează site-urile web și serviciile online care sunt accesibile și disponibile în clădirile lor. De asemenea, guvernele cenzurează conținutul nedorit. Acest lucru se realizează fie cu un proxy specializat, numit filtru de conținut (sunt disponibile atât produse comerciale, cât și libere), sau prin utilizarea unui protocol cum ar fi ICAP.
Site-urile web utilizate în mod obișnuit de către studenți pentru a ocoli filtrele și a accesa conținutul blocat includ adesea un proxy, de unde utilizatorul poate apoi accesa site-urile web pe care filtrele încearcă să le blocheze.
Cererile pot fi filtrate prin mai multe metode, cum ar fi liste negre de URL sau DNS, filtre de expresii regulate, filtre de MIME sau filtrare a cuvintelor cheie. Listele negre sunt adesea furnizate și întreținute de companii de filtrare web, adesea grupate în categorii (pornografie, jocuri de noroc, cumpărături, rețele sociale etc.).
Dacă URL-ul solicitat este acceptabil, conținutul este apoi preluat de către proxy. În acest moment se poate aplica un filtru dinamic pe traseul de întoarcere. De exemplu, fișierele JPEG ar putea fi blocate pe baza unor potriviri ale culorilor pieii, sau filtrele de expresii ar putea detecta dinamic limbajul nedorit. Dacă conținutul este respins, atunci răspunsul returnat solicitantului poate fi sub forma unei erori.
Majoritatea companiilor de filtrare web folosesc roboți de căutare pe internet, care evaluează probabilitatea conținutului de a fi de un anumit tip. Baza de date rezultată este apoi corectată manual pe baza reclamațiilor sau a slăbiciunilor cunoscute ale algoritmilor de evaluare a conținutului.
Filtrarea datelor criptate
modificareProxy-urile de filtrare web nu sunt capabile să se interpună în tranzacțiile HTTP cu socket-uri securizate, considerând că lanțul de încredere al SSL / TLS este valid, nu a fost afectat. Lanțul de încredere SSL / TLS se bazează pe certificatele de autoritate.
La un loc de muncă unde clientul este gestionat de organizație, dispozitivele pot fi configurate pentru a avea încredere într-un certificat rădăcină a cărui cheie privată este cunoscută de proxy. În astfel de situații, analiza de către proxy a conținutului unei tranzacții SSL / TLS devine posibilă. Proxy-ul lucrează ca într-un atac man-in-the-middle(d), permis de încrederea clientului în certificatul rădăcină deținut de proxy.
Ocolirea filtrelor și a cenzurii
modificareDacă serverul de destinație filtrează conținutul în funcție de originea solicitării, utilizarea unui proxy poate ocoli acest filtru. De exemplu, un server care utilizează geolocalizarea(d) bazată pe IP pentru a restricționa serviciul într-o anumită țară poate fi accesat folosind un proxy localizat în țară nerestricționată pentru a accesa serviciul. Proxy-urile sunt cele mai obișnuite mijloace de a ocoli cenzura guvernamentală, deși nu mai mult de 3% dintre utilizatorii de Internet utilizează instrumente de ocolire.[6] În unele cazuri utilizatorii pot ocoli proxy-urile care filtrează pe bază de liste negre folosind proxy dintr-o locație care nu este listată.[7]
Unii furnizori de servicii proxy permit accesul mediului de afaceri la serverele lor pentru redirecționarea traficului în scop de afaceri.[8]
Autentificare și ascultare
modificareServerele proxy pot fi folosite pentru a asculta traficul datelor între clienți și web. Tot conținutul trimis sau accesat – inclusiv parolele și cookie folosite – poate fi interceptat și analizat de deținătorul serverului proxy, motiv pentru care întotdeauna parolele trebuie trimise printr-o conexiune securizată prin criptare, ca SSL.
Prin înlănțuirea proxy-urilor care nu dezvăluie date despre solicitantul inițial este posibil să fie ascunse activități de ochii destinației cererii. Totuși, pe serverele intermediare vor rămâne urme care ar putea fi utilizate, inclusiv vândute, pentru a urmări activitățile utilizatorului. În cazul în care politicile acestor proxy nu sunt la vedere sau mint, iar administratorii nu sunt cunoscuți utilizatorul poate cădea victimă unui fals sentiment de securitate. Serverele proxy înseși care sunt cunoscute pentru spam sau trolling pot fi blocate pe bază de IP, fapt care este mai mult un inconvenient decât un risc. Acțiunea recomandată este evitarea acestor proxy.
Îmbunătățirea performanțelor
modificareUn server proxy pe post de memorie cache accelerează răspunsul la solicitări prin memorarea conținutului accesat la o solicitare anterioară a aceluiași client sau a altuia. De exemplu, în cazul unei organizații memorarea locală a unor resurse accesate frecvent mărește semnificativ viteza de răspuns și descarcă conexiunea la Internet. Mulți ISP-iști și organizații mari au asemenea servere proxy.[9] Însă o implementare proastă a acestor servere poate genera probleme, ca de exemplu nerecunoașterea autentificărilor.[10]
Un proxy conceput pentru a atenua problemele specifice legate de degradarea conexiunii la net este un PEP (engleză Performance Enhancing Proxy(d)). Acestea sunt utilizate în mod obișnuit pentru a îmbunătăți performanța TCP în cazul timpilor mari de răspuns sau a pierderilor mari de pachete (cum ar fi rețelele de telefonie mobilă sau wireless); sau conexiuni extrem de asimetrice, cu rate de încărcare și descărcare foarte diferite. Un PEP poate face rețeaua mai eficientă, de exemplu prin comasarea confirmărilor(d) (ACK) sau compresia datelor trimise la nivelul aplicație(d).[11]
Traducere
modificareUn proxy de traducere este un server proxy care este utilizat pentru a localiza site-uri web pe diferite piețe. Traficul provenit din solicitări este dirijat prin proxy-ul de traducere către site-ul sursă. Pe măsură ce vizitatorii navighează pe site-ul proxy, solicitările revin la site-ul sursă, care furnizează paginile. Conținutul în limba originală din răspuns este înlocuit cu conținutul tradus pe măsură ce trece înapoi prin proxy. Traducerile utilizate într-un proxy de traducere pot fi fie o traducere automată, fie o traducere umană, fie o combinație de traducere automată și umană. Implementările de proxy de traducere diferite au capacități diferite. Unele permit personalizarea suplimentară a site-ului sursă pentru publicul local, cum ar fi excluderea conținutului sursă sau înlocuirea conținutului sursă cu conținutul local original.
Repararea erorilor
modificareUn proxy poate fi utilizat pentru a repara automat erorile din conținutul transmis. De exemplu, sistemul BikiniProxy examinează codul Javascript în timp real pentru a detecta și repara automat erorile care apar în browser.[12] Un alt tip de reparație care poate fi făcută de un proxy este rezolvarea problemelor de accesibilitate.[13]
Accesarea anonimă a serviciilor
modificareÎn general, un server proxy de anonimizare încearcă să anonimizeze navigarea pe web. Anonimizatoarele(d) sunt de mai multe feluri. Serverul de destinație (serverul care satisface în cele din urmă cererea web) primește cereri de la serverul proxy de anonimizare, dar nu și informații despre adresa utilizatorului final. Însă cererile nu sunt anonime față de serverul de anonimizare, prin urmare este necesar un grad de încredere între serverul proxy și utilizator. Multe servere proxy sunt finanțate prin afișare continuă de publicitate către utilizator.
Controlul accesului: unele servere proxy cer autentificarea. În unele organizații, utilizatorii autorizați trebuie să se autentifice pentru a acea acces la web, caz în care organizație poate urmări folosirea web-ului de persoane. Unele servere proxy de anonimizare pot transmite pachete de date(d) cu linii în antet ca HTTP_VIA, HTTP_X_FORWARDED_FOR, sau HTTP_FORWARDED, care pot releva adresa IP a clientului. Alte servere proxy de anonimizare, cunoscute ca proxy elite sau de înaltă anonimizare apar ca fiind ele însele clienții. Totuși, destinatarul poate suspecta că se folosește un proxy dacă clientul trimite pachete de date care conțin cookie din vizitele precedente în care nu s-a folosit un proxy de anonimizare. Rezolvarea acestei probleme se poate face prin ștergerea cookie și, eventual, a memoriei cache a browserului.
Publicitate orientată geografic
modificareAgențiile de publicitate folosesc servere proxy pentru validarea, verificarea și asigurarea calității reclamelor orientate geografic. Folosind un software de localizare geografică(d), un server pentru reclame orientate geografic determină pe baza adresei IP a sursei cererii locul unde se află sursa cererii.[14] Folosind un server proxy care este situat într-o anumită țara sau uraș permite agențiilor de publicitate să urmărească reclamele orientate geografic.
Securitate
modificareUn proxy poate păstra secretă structura internă a rețelei unei companii utilizând translatarea adresei de rețea(d), procedeu care poate ajuta securitatea rețelei interne.[15] Asta face ca solicitările de la calculatoarele și utilizatorii din rețeaua locală să fie anonime. Proxy-urile pot fi, de asemenea, combinate cu paravane. Însă un proxy configurat incorect poate permite accesul la rețeaua internă care se intenționa să fie izolată de Internet.[4]
Resurse din domenii externe
modificareProxy-urile permit site-urilor web să facă cereri web către resurse găzduite extern (cereri cross-domain) — de exemplu imagini, muzică etc. — atunci când restricțiile unor domenii externe interzic site-ului web să se conecteze la ele direct. De asemenea, proxy-urile permit browserului să facă în numele unui site web cereri web către conținut găzduit în domenii externe atunci când restricțiile acestor domenii externe (de exemplu restricții care vizează protejarea site-urile web de furtului de date) interzic browserului accesul direct la acele domenii.
Utilizări rău intenționate
modificareSpeculații pe piața la mâna a doua
modificareSpeculanții de pe piața la mâna a doua utilizează servere proxy pentru a cumpăra cantități mari de produse de serie mică, cum ar fi adidași[16] sau bilete de intrare.
Implementarea serverelor proxy
modificareServere proxy web
modificareProxy-urile web redirecționează solicitările HTTP. Solicitarea de la client este la fel ca o cerere HTTP obișnuită, cu excepția adresei URI, pe care proxy-ul o completează în formă absolută, în loc de a indica calea.[17]
GET http://en.wikipedia.org/wiki/Proxy_server HTTP/1.1
Proxy-Authorization: Basic encoded-credentials
Accept: text/html
Această cerere este trimisă serverului proxy. Proxyul transmite cererea și returnează răspunsul:
HTTP/1.1 200 OK
Content-Type: text/html; charset UTF-8
Unele proxy-uri web permit tunelarea HTTP pentru transmiterea datelor oarecare prin conexiune. O politică obișnuită este de a permite (prin port forwarding(d)) folosirea doar a portului 443 pentru traficul HTTPS.
Exemple de servere proxy web sunt Apache (cu mod_proxy sau Traffic Server), HAProxy(d), IIS configurat ca proxy (de exemplu cu Application Request Routing(d)), Nginx(d), Privoxy(d), Squid, Varnish(d) (doar proxy invers), WinGate(d), Ziproxy(d), Tinyproxy, RabbIT și Polipo(d).
Pentru clienți, dificultatea accesului prin servere proxy complexe sau multiple se rezolvă printr-un protocol client-server aflat într-un fișier PAC (proxy auto-config(d)).
Proxy SOCKS
modificareDupă faza de conectare, protocolul SOCKS(d) transmite de asemenea orice date, fiind similar cu protocolul HTTP CONNECT din proxy-urile web.
Proxy transparent
modificareCunoscut și ca proxy de interceptare, proxy inline sau proxy forțat, un proxy transparent interceptează comunicarea normală la nivelul aplicație fără a necesita o configurare din partea clientului. Nu este necesar ca clienții să fie conștienți de existența proxy-ului. În mod normal, un proxy transparent este localizat între client și internet, îndeplinind unele dintre funcțiile unui porți de acces sau a unui ruter.[18]
Definițiile standard din IETF RFC 2616 (Hypertext Transfer Protocol—HTTP/1.1) sunt:
„Un proxy transparent este un proxy care nu modifică cererea sau răspunsul mai mult decât este necesar pentru autentificarea și identificarea sa".
„Un proxy netransparent este un proxy care modifică cererea sau răspunsul pentru a oferi utilizatorului un serviciu adăugat, cum ar fi serviciile de adnotare de grup, transformarea tipului de suport media, reducerea protocolului sau filtrarea de anonimizare”.
Interceptarea TCP este o facilitate de securitate la filtrarea traficului, care protejează serverele TCP de atacurile TCP SYN flood(d), care sunt un atac de tip refuz de serviciu (engleză denial-of-service — DoS). Interceptarea TCP este disponibilă numai pentru traficul IP.
Robert Auger a publicat în 2009 o vulnerabilitate la modul în care funcționau serverele proxy transparente[19] iar echipa de răspuns în situații de urgență a emis un aviz în care erau enumerate zeci de proxy-uri transparente și de interceptare afectate.[20]
Scop
modificareDe obicei proxy-urile de interceptare sunt utilizate de companii pentru a asigura respectarea termenilor de utilizare acceptabilă și pentru a micșora cheltuielile de administrare, deoarece nu este necesară configurarea browserului clientului. Acest al doilea motiv este totuși atenuat de facilități precum politica de grup Active Directory sau DHCP și detectarea automată a proxy-ului.
De asemenea, proxy-urile de interceptare sunt utilizate în unele țări de către ISP-uri în mod obișnuit pentru a mări viteza de transfer la trimitere și pentru a îmbunătăți timpii de răspuns prin cache. Acest lucru este frecvent în țările în care viteza de transfer este limitată (de exemplu la națiunile insulare) sau trebuie plătită.
Probleme
modificareDevierea/interceptarea unei conexiuni TCP creează o serie de probleme. În primul rând, adresa IP de destinație și portul trebuie comunicate cumva către proxy. Acest lucru nu este întotdeauna posibil (de exemplu, în cazul în care poarta de acces și proxy-ul se află pe gazde diferite). Există o clasă de atacuri XSS(d) care depind de un anumit comportament al proxy-urilor de interceptare, care nu verifică sau nu au acces la informații despre destinația interceptată. Această problemă poate fi rezolvată folosind un dispozitiv sau un software integrat la nivelul de rețea (pachete) și la nivelul aplicație capabil să comunice aceste informații între manipulantul de pachete și proxy.
De asemenea, interceptarea creează probleme pentru autentificarea HTTP, în special autentificarea orientată spre conexiune, cum ar fi NTLM(d), deoarece browserul client consideră că vorbește cu un server, nu cu un proxy. Acest lucru poate cauza probleme în cazul în care proxy-ul de interceptare necesită autentificare, prin care utilizatorul se conectează la un site care necesită și acolo autentificare.
În final, interceptarea conexiunilor poate cauza probleme pentru cache-urile HTTP, deoarece unele solicitări și răspunsuri nu pot fi reținute într-o memorie cache partajată.
Metode de implementare
modificareÎn cazul integrării paravan/server proxy unde ruterul/paravanul se află pe aceeași gazdă ca și proxy, comunicarea informațiilor despre destinație se poate face prin orice metodă, de exemplu Microsoft Forefront Threat Management Gateway(d) sau WinGate(d).
Interceptarea poate fi efectuată și folosind protocolul Cisco WCCP(d) Acest protocol proprietar se află pe ruter și este configurat din cache, permițând memoriei cache să determine ce porturi și trafic îi este trimis prin redirecționare transparentă de către ruter. Această redirecționare poate avea loc în unul din cele două moduri: tunelare GRE (nivel 3 OSI) sau rescriere MAC (nivel 2 OSI).
Odată ce traficul ajunge la proxy, interceptarea se efectuează în mod obișnuit cu NAT. Astfel de configurări sunt invizibile pentru browserul clientului, dar lasă proxy-ul vizibil pentru serverul web și alte dispozitive de pe partea de internet a proxy-ului. Recent, Linux și unele versiuni ale BSD oferă TPROXY (proxy transparent), care efectuează interceptarea transparentă la nivel de IP (nivel 3 OSI) și maschează traficul de ieșire, ascunzând adresa IP a proxy-ului pentru alte dispozitive din rețea.
Detecție
modificareDetectarea prezenței unui proxy de interceptare se poate face prin mai multe metode:
- Prin compararea adresei IP externe a clientului cu adresa văzută de un server web extern sau, uneori, prin examinarea antetelor HTTP primite de un server. Pentru a rezolva această problemă au fost create o serie de site-uri care raportează utilizatorului într-o pagină web adresa sa IP așa cum a fost văzută de către site. De asemenea, Google returnează adresa IP așa cum o vede dacă utilizatorul caută „IP”.
- Prin compararea rezultatelor verificatorilor de IP online (ca mai sus) atunci când sunt accesate utilizând https vs http, deoarece majoritatea proxy-urilor care interceptează nu interceptează SSL. Dacă există suspiciunea că SSL este interceptat, se poate examina certificatul asociat cu orice site web securizat, certificatul rădăcină ar trebui să indice dacă a fost emis în scopul interceptării.
- Prin compararea secvenței de hopuri (noduri) de rețea raportate de exemplu de traceroute pentru un protocol proxy precum http (portul 80) cu cel pentru un protocol non-proxy precum SMTP (portul 25).[21]
- Prin încercarea de a face o conexiune la o adresă IP despre care se știe că nu este a unui server. Proxy-ul va accepta conexiunea și apoi va încerca să o activeze pe proxy. Cum proxy-ul nu va găsi niciun server care să accepte conexiunea, va returna un mesaj de eroare sau pur și simplu va închide conexiunea către client. Această diferență de comportament este ușor de detectat. De exemplu, majoritatea browserelor web vor genera o pagină de eroare creată de browser în cazul în care nu se pot conecta la un server HTTP, dar vor afișa o eroare diferită în cazul în care conexiunea este acceptată și apoi închisă.[22]
- Folosind aplicații Adobe Flash SWF programate special pentru utiliaztori sau appleturi Sun Java care trimit apeluri HTTP înapoi la serverul lor.
Proxy CGI
modificareUn server proxy CGI(d) acceptă URL-ul de destinație printr-un formular web(d) în fereastra browserului utilizatorului, procesează solicitarea și returnează rezultatele în browserul utilizatorului. În consecință, poate fi utilizat pe un dispozitiv sau rețea care nu permite modificarea setărilor „adevărate” pentru proxy. Primul proxy CGI înregistrat, numit la acea vreme „rover”, dar redenumit în 1998 în „CGIProxy”,[23] a fost dezvoltat de specialistul în calculatoare american James Marshall la începutul anului 1996 pentru un articol din „Unix Review” de Rich Morin.[24]
Majoritatea proxy-urilor CGI rulează unul din softurile CGIProxy (scris în limbaj Perl), Glype (scris în limbaj PHP) sau PHProxy (scris în limbaj PHP). În aprilie 2016 CGIProxy a fost descărcat de aproximativ 2 milioane de ori, Glype de un milion de ori,[25] iar PHProxy era descărcat de sute de ori săptămânal.[26] În ciuda scăderii popularității,[27] deoarece poate lucra cu VPN și cu alte metode de confidențialitate, există încă multe proxy CGI online.[28]
Unele proxy CGI au fost create în diferite scopuri, precum a face site-urile web mai accesibile(d) persoanelor cu dizabilități, dar au fost închise deoarece generau un trafic web(d) excesiv, de obicei din cauza efectului Slashdot(d) generat de o terță parte care făcea publicitate serviciului. Întrucât mulți dintre acești utilizatori nu se preocupau de daunele colaterale pe care le cauzau, a devenit necesar ca organizațiile să își ascundă proxy-urile, dezvăluind adresele URL doar celor care au probleme să contacteze organizația și care demonstrau o nevoie reală.[29]
Proxy de tip sufix
modificareUn proxy de tip sufix permite utilizatorului să acceseze conținutul web prin adăugarea numelui proxy-ului serverului la adresa URL a conținutului solicitat (de ex. „en.wikipedia.org.SuffixProxy.com ”). Un proxy de tip sufix este mai ușor de utilizat decât un server proxy obișnuit, dar nu oferă niveluri ridicate de anonimizare, iar utilizarea lor principală este de a ocoli filtrele web. Totuși, acum sunt rar folosite datorită faptului că filtrele web au avansat.
Proxy Tor Onion Router (Tor)
modificareTor este un sistem destinat să permită folosirea anonimă(d) a Internetului.[30] Tor direcționează traficul Internet de la client printr-o rețea mondială de servere întreținute de voluntari, pentru a ascunde locația sau utilizarea calculatorului unui utilizator de cineva care efectuează supravegherea rețelei sau analiza traficului. Folosirea Tor face mai dificilă urmărirea activității pe Internet[30] și este menită să protejeze libertatea personală a utilizatorilor și confidențialitatea.
Rutarea onion(d) (română rutarea de tip ceapă) se referă la natura stratificată a serviciului de criptare: datele originale sunt criptate și recriptate de mai multe ori, apoi trimise prin relee Tor succesive, fiecare dintre acestea decriptând un „strat” de criptare înainte de a transmite datele către următorul releu și în cele din urmă la destinație. Acest lucru reduce posibilitatea ca datele originale să fie decodificate sau înțelese în tranzit.[31]
Proxy anonim I2P
modificareI2P(d) este o rețea proxy care vizează anonimizarea. În rețea este implementată rutarea garlic(d) (română rutare de tip usturoi), care este o îmbunătățire a rutării onion. I2P este o rețea distribuită, care funcționează prin criptarea tuturor comunicațiilor în diferite straturi și retransmiterea acestora printr-o rețea de routere întreținute de voluntari în diferite locații. Păstrând sursa informațiilor ascunse, I2P oferă rezistență la cenzură. Obiectivele I2P sunt de a proteja libertatea personală a utilizatorilor, confidențialitatea și capacitatea de a desfășura activități confidențiale.
Fiecare utilizator al I2P rulează un router I2P pe calculatorul său (nod). Routerul I2P are grijă să găsească alte servere la fel și să realizeze tuneluri anonimizate prin ele. I2P oferă proxy-uri pentru toate protocoalele (HTTP, IRC, SOCKS, ...).
Comparație cu translatoarele adreselor de rețea
modificareProxy acționează la nivelul 7 (aplicație) în modelul OSI, in timp ce NAT, similar cu proxy, acționează la nivelul 3.
Pentru configurația clientului cu NAT la nivelul 3 este suficientă configurarea porții de acces. Însă pentru configurația clientului cu proxy la nivelul 7, destinația pachetelor pe care clientul le generează trebuie să fie întotdeauna serverul proxy, care citește fiecare pachet și generează adevărata destinație.
Deoarece un NAT funcționează la nivelul 3, este mai puțin consumator de resurse decât proxy-ul la nivel 7, dar și mai puțin flexibil. Pe măsură ce se compară aceste două tehnologii, se poate întâlni termenul de „paravan transparent”. La „paravanul transparent” este folosit proxy-ul de nivel 7 fără știrea clientului. Clientul presupune că poarta de acces este un NAT în stratul 3 și nu are nicio idee despre conținutul unui pachet, dar prin această metodă, pachetele de nivel 3 sunt trimise către proxy-ul de nivel 7 pentru analiză.
Proxy DNS
modificareUn server proxy DNS preia interogările DNS dintr-o rețea (de obicei locală) și le transmite către un server DNS. Poate, de asemenea, să memoreze în cache înregistrările DNS.
Adaptoare proxi
modificareUnele programe client „SOCKS-ifică” cererile,[32] ceea ce permite adaptarea oricărui software din rețea să se conecteze la rețele externe prin anumite tipuri de servere proxy (în principal SOCKS).
Proxy rezidențiale
modificareUn proxy rezidențial este un intermediar care folosește o adresă IP reală, furnizată de un furnizor de servicii de internet (ISP), pentru dispozitivele fizice cum ar fi telefoanele mobile și calculatoarele utilizatorilor finali. În loc să se conecteze direct la un server, utilizatorii unui proxy rezidențial se conectează la destinație prin adresa IP a proxy-ului.[33] Serverul de destinație îi identifică apoi ca utilizatori organici de internet. Prin aceasta nu se permite niciunui instrument de urmărire să identifice realocarea utilizatorului. Orice proxy rezidențial poate trimite orice număr de cereri simultane, iar adresele IP sunt direct legate de o anumită regiune.[34]
Note
modificare- ^ en Ari Luotonen, World-Wide Web Proxies Arhivat în , la Wayback Machine., aprilie 1994
- ^ en "A Survey of Techniques for Improving Efficiency of Mobile Web Browsing", Concurrency and Computation: Practice and Experience, 2018
- ^ en [1], Marc Shapiro. Structure and Encapsulation in Distributed Systems: the Proxy Principle. Int. Conf. on Distr. Comp. Sys. (ICDCS), 1986, Cambridge, MA, USA, United States. pp.198--204, 1986, Int. Conf. on Distr. Comp. Sys. (ICDCS).
- ^ a b Lyon, Gordon (). Nmap network scanning. US: Insecure. p. 270. ISBN 978-0-9799587-1-7.
- ^ en „Forward and Reverse Proxies”. httpd mod_proxy. Apache. Accesat în .
- ^ en „2010 Circumvention Tool Usage Report” (PDF). The Berkman Center for Internet & Society at Harvard University. octombrie 2010.
- ^ en „Using a Ninjaproxy to get through a filtered proxy”. advanced filtering mechanics. TSNP. Arhivat din original la . Accesat în .
- ^ en „How to Check if Website is Down or Working Worldwide”. Hostinger. . Accesat în .
- ^ en Thomas, Keir (). Beginning Ubuntu Linux: From Novice to Professional . Apress. ISBN 978-1-59059-627-2.
A server proxy helps speed up Internet access by storing frequently accessed pages
- ^ en I. Cooper; J. Dilley (iunie 2001). Known HTTP Proxy/Caching Problems. IETF. RFC 3143 .
- ^ en „2.1”. Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations. IETF. iunie 2001. p. 4. RFC 3135 .
- ^ en Durieux, T.; Hamadi, Y.; Monperrus, M. (). Fully Automated HTML and Javascript Rewriting for Constructing a Self-Healing Web Proxy. 2018 IEEE 29th International Symposium on Software Reliability Engineering (ISSRE). pp. 1–12. arXiv:1803.08725 . doi:10.1109/ISSRE.2018.00012. ISBN 978-1-5386-8321-7.[nefuncțională]
- ^ en Zhang, Xiaoyi; Ross, Anne Spencer; Caspi, Anat; Fogarty, James; Wobbrock, Jacob O. (). Interaction Proxies for Runtime Repair and Enhancement of Mobile Application Accessibility. Proceedings of the 2017 CHI Conference on Human Factors in Computing Systems. pp. 6024–6037. doi:10.1145/3025453.3025846. ISBN 9781450346559.
- ^ en „Hot Tactics For Geo-Targeted Ads on Google & Bing”. Accesat în .
- ^ en „Firewall and Server proxy HOWTO”. tldp.org. Accesat în .
The server proxy is, above all, a security device.
- ^ en „Sneaker Bot Supreme Proxy”. GeoSurf. Arhivat din original la . Accesat în .
- ^ en „5.3.2”. HTTP/1.1 Message Syntax and Routing. IETF. iunie 2014. p. 41. RFC 7230 .
a client MUST send the target URI in absolute-form as the request-target
- ^ en „Transparent Proxy Definition”. ukproxyserver.org. . Arhivat din original la . Accesat în .
- ^ en „Socket Capable Browser Plugins Result in Transparent Proxy Abuse”. The Security Practice. . Accesat în .
- ^ en „Vulnerability Note VU#435052”. US CERT. . Accesat în .
- ^ en „Subversion Dev: Transparent Proxy detection (was Re: Introduction_”. Tracetop.sourceforge.net. Accesat în .
- ^ en Wessels, Duane (). Squid The Definitive Guide . O'Reilly. pp. 130. ISBN 978-0-596-00162-9.
- ^ en Marshall, James. „CGIProxy”. Accesat în .
- ^ en „The Limits of Control”. iunie 1996. Arhivat din original la . Accesat în .
- ^ en „Glype® Proxy Script”. glype.com. Arhivat din original la . Accesat în .
- ^ en „PHProxy”. SourceForge.
- ^ en „Google Trends”. Google Trends.
- ^ en „Proxy Stats :: Get Proxi.es”. getproxi.es.
- ^ en Estrada-Jiménez, José (martie 2017). „Online advertising: Analysis of privacy threats and protection approaches”. Calculator Communications. 100: 32–51. doi:10.1016/j.comcom.2016.12.016. hdl:2117/99742 .
- ^ a b en Glater, Jonathan (). „Privacy for People Who Don't Show Their Navels”. The New York Times. Accesat în .
- ^ en The Tor Project. „Tor: anonymity online”. Accesat în .
- ^ en Zwicky, Elizabeth D.; Cooper, Simon; Chapman, D. Brent (). Building Internet Firewalls (ed. 2nd). p. 235. ISBN 978-1-56592-871-8.
- ^ en „What are Residential Proxies?”. oxylabs.io (în engleză). Accesat în .
- ^ en Smith, Vincent (). Go Web Scraping Quick Start Guide: Implement the power of Go to scrape and crawl data from the web (în engleză). Packt Publishing Ltd. ISBN 978-1-78961-294-3.