Proxyn kierrätys ja VPN muuttavat julkista osoitettasi eri kerroksissa, ja tämä ero ratkaisee, mikä vuotaa. VPN siirtää jokaisen paketin tunneliin, joten lähdeosoite, jonka kohde näkee, on tunnelin päätepiste. Proxy istuu verkkokerroksen yläpuolella: vain sen kautta lähettämäsi pyynnöt näkyvät ulostulosta, kun taas kaikki muu koneella säilyttää todellisen osoitteen. Kun tämä jaottelu onnistuu, kierrätyksestä tulee valintaruudun sijaan suunnittelupäätös.

Mistä julkinen osoite oikeastaan tulee

Osoite, jonka kohde näkee, on se, josta liikenteesi lähti viimeksi, ja kotiyhteydessä se on palveluntarjoajan osoite reitittimessäsi, ei mitään, mitä kone omistaa. Reitittimen uudelleenkäynnistys voi palauttaa saman vuokran, ja sen MAC-osoitteen vaihtaminen tuottaa joskus uuden, mutta kumpikaan ei anna sinulle maavalintaa. VPN korvaa lähdeosoitteen IP-kerroksessa, joten jokainen paketti koneelta, mukaan lukien DNS ja taustapäivitykset, lähtee tunnelin päätepisteestä. Proxy toimii kerrosta ylempänä: se ottaa pyynnön vastaan, avaa oman yhteytensä kohteeseen, ja vain se pyyntö näkyy ulostulosta. Kaikki muu koneella käyttää edelleen todellista osoitetta.

Tämä jaottelu selittää useimmat yllätykset. Proxysuuntaan asetettu selainlaajennus muuttaa vain sen, mitä selain lähettää, eikä mitään muuta, joten toinen sovellus samalla isäntäkoneella vuotaa edelleen alkuperäisen osoitteen. Järjestelmänlaajuinen VPN on päinvastaisessa vikatilassa: se kattaa liikennettä, jonka halusit pitää paikallisena, ja sulkeutuu vain jos asiakasohjelma on niin määritetty. Näiden kahden välillä valitseminen on oikeastaan valinta siitä, minkä liikenteen täytyy liikkua.

Kierrätys koskee sitten sitä kerrosta, jonka valitsit. Proxyn kanssa kierrätys tarkoittaa, että seuraava pyyntö käyttää eri ulostuloa. VPN:n kanssa se tarkoittaa tunnelin purkamista ja uudelleenrakentamista, mikä on hitaampaa ja näkyy havaittavana uudelleenyhdistämisenä.

Mitä HTTP-proxy voi lukea ja mitä ei

Tavallisessa HTTP:ssä proxy näkee pyyntörivillä absoluuttisen URI:n, jokaisen otsakkeen ja rungon. Se voi lokittaa kaiken ja kirjoittaa uudelleen minkä tahansa osan, minkä vuoksi ilmainen proxy, joka injektoi skriptin vastauksiin, tekee täsmälleen sen, minkä protokolla sallii. Todennus käyttää Proxy-Authorization, ja puuttuva tai väärä tunniste tuottaa 407 Proxy Authentication Required yhdistysvirheen sijaan.

HTTPS:ssä asiakasohjelma lähettää CONNECT host:port ja proxy avaa raakatunnelin, jonka jälkeen se näkee salattuja tavuja. Se oppii silti isäntänimen CONNECT-riviltä ja yleensä TLS-kättelyn SNI-kentästä, joten isäntänimen tason lokitus säilyy, vaikka hyötykuorma ei säily. Hyötykuorman lukeminen edellyttää TLS:n päättämistä varmenteella, johon asiakasohjelma luottaa, mikä on toinen tuote ja toinen riski. Ja HTTP-semantiikan määritelmä määrittelee CONNECTin tunnelipyynnöksi, mikä on oikea ajatusmalli siihen, mitä ulostulo voi ja ei voi nähdä.

curl -v -x http://proxy.example.net:8080 https://example.com 2>&1 | grep -E 'CONNECT|Proxy-'

Yksityiskohtainen tuloste näyttää CONNECT-rivin ennen mitään TLS-liikennettä, ja juuri sillä hetkellä proxy oppii kohteesi. Proxy, joka vastaa 407:llä, ei koskaan avannut tunnelia, joten uudelleenyritys eri TLS-asetuksilla ei auta.

Kierrätyksen rakeisuus ratkaisee, mikä hajoaa

Kierrätys jokaisella pyynnöllä on asetus, joka näyttää turvallisimmalta ja hajottaa eniten. Evästeet, CSRF-tunnukset ja palvelinpuolen istunnot on sidottu identiteettiin, ja identiteetti, joka vaihtuu kirjautumisen ja seuraavan kutsun välillä, näyttää kohteen silmissä istunnon kaappaukselta. Monet tarjoajat tarjoavat tahmean istunnon koodaamalla sen proxyn käyttäjänimeen, joten ulostulo pysyy kiinteänä valitun ikkunan ajan.

Valitse rakeisuus tehtävästä, älä tarjoajan oletuksesta. Itsenäisiä sivuja hakeva ryömijä voi kierrättää joka pyynnöllä, kun taas maksuvirran tai todennetun API:n on pidettävä yksi ulostulo koko virran ajan. Kaksi alla olevaa kutsua näyttävät tahmean käyttäjänimen ja tavallisen kiertävän päätepisteen, ja socks5h skeema ratkaisee nimet proxyssa eikä paikallisesti.

curl -sS -x http://user-session-a1b2:[email protected]:8080 https://ifconfig.me
curl -sS -x socks5h://127.0.0.1:1080 https://ifconfig.me

Paikallinen DNS on hiljainen vuoto. Jos asiakasohjelma ratkaisee nimen ennen yhdistämistä, resolveri oppii silti jokaisen isännän, jota vierailet, vaikka HTTP-pyyntö lähtee muualta. Ja socks5h muoto ja proxyn puolen ratkaisu välttävät sen, eikä niiden käyttäminen maksa mitään.

Mitä kohde luokittelee osoitteen lisäksi

Osoitteen maine on yksi syöte monien joukossa. Kohteet yhdistävät ASN:n ja sen datakeskus- tai asuinaluetunnisteen, asiakasohjelman TLS-sormenjäljen, HTTP/2-asetukset, otsakkeiden järjestyksen, pyyntötiheyden ja navigoinnin muodon. Asuinalueen ulostulo, jota ohjaa päättön selain, voi epäonnistua siellä, missä datakeskuksen ulostulo, jota ohjaa todellinen istunto, menee läpi.

Ulostulon tyyppi määrittää, mitä voit rehellisesti väittää liikenteestä, ja jokaisella on eri hinta.

Exit typeWhat the target seesMain cost
Datacenter proxyHosting ASN, cheap, often pre-blockedLow reputation, easy to detect
Residential networkA consumer ISP address belonging to someone elseConsent and terms-of-service exposure
Mobile carrierA carrier NAT address shared by many subscribersPrice, plus shared blame for abuse
Your own cloud egressAn address you are accountable forRecognisable, but defensible

Jaettu ulostulo ei ole neutraali. Kaikki muu, mikä kulkee siitä osoitteesta, päätyy samaan maineastiaan, ja osoite, jonka muut vuokralaiset ovat jo polttaneet, epäonnistuu ennen kuin ensimmäinen pyyntösi luetaan.

Valitse ulostulo, jonka voit kuvata käytännössä

Hyödyllinen kysymys ei ole, miten osoite piilotetaan, vaan kuka vastaa liikenteestä, joka siitä lähtee. Oma pilviulostulosi tehtävää kohden, sopimuskumppani, jolla on tietojenkäsittelysopimus ja julkaistu säilytysaika, sekä itse ylläpidetty VPN, jossa on yksi identiteetti tehtävää kohden, ovat kaikki kuvattavissa yhdellä lauseella. Ilmainen lista ei ole, koska sen operaattorilla ei ole sinuun mitään velvoitetta ja sillä on kaikki kannustin lokittaa.

Pidä omat nopeusrajasi alle sen, mitä kohde sietää, ja kerää vain ne kentät, joita tehtävä tarvitsee, jotta virhe pysyy pienenä. Nopeampi kierrätys eston välttämiseksi yleensä nostaa pyyntötiheyttä, joka sen aiheutti.

Kirjoita valittu ulostulo, sen kierrätysikkuna ja sen omistaja työn asetukseen ennen ensimmäistä ajoa. Kun esto saapuu, juuri se muistiinpano kertoo, vaihdatko ulostulon vai käyttäytymisen.

Aiheeseen liittyvät artikkelit