Kysy, mitä VPN näkee, ja vastaus riippuu siitä, missä kohdassa polkua seisot. Istuntokerroksella operaattorilla on tunnistautumistapahtumat ja tavumäärät. Pakettikerroksella sillä on kohdeosoitteet ja ajoitukset. DNS-kerroksella sillä voi olla itse nimet. Jokainen kerros vastaa eri kysymykseen, eikä yksikään kytkin siirrä sinua niiden välillä.

Kartoita kerros ennen väitettä

Sama yhteys tuottaa eri tietueet kussakin pisteessä, ja väite yksityisyydestä on mielekäs vain, kun se nimeää pisteen. Lue taulukkoa sarake kerrallaan: mitä siinä kerroksessa on olemassa, mitä operaattori voi siellä nähdä ja mitä samat tietueet eivät edelleenkään voi hänelle kertoa.

LayerVisible thereNot visible there
Session and authenticationAccount, client address, start and stop times, assigned address, byte countsURLs, page content, search terms
Forwarded packetsDestination address and port, sizes, timing, often the TLS server nameHTTP path, headers, response body
DNS resolverQueried names and the client that askedPage content and later requests
TLS-terminating proxyFull request line, headers and bodyNothing, by design

Yhden kerroksen lukeminen koko kuvana on sekä liioittelun että väärän turvallisuudentunteen alku. Palveluntarjoaja, joka sanoo, ettei kirjaa selaamista, voi olla täsmällinen URL-kirjauksesta ja silti pitää istuntotietueita, eikä vain osoitteita näyttävä pakettikaappaus muutu selaushistoriaksi ilman käänteisiä hakuja ja arvailua.

Kun arvioit käytäntöä, etsi lause, joka kuvaa kunkin kerroksen. Jos käytäntö ei erota niitä, kysy, mitä tietueita on olemassa, sen sijaan että hyväksyisit yleisen väitteen salauksesta.

Istuntojen luettelo: mitä vakio-OpenVPN-palvelin pitää

Heti asennuksen jälkeen OpenVPN -palvelin ei kaappaa liikennettä. Tavallinen tuloste on istuntojen luettelo: todennettu tili, lähdeosoite, josta se tuli, alun ja lopun aikaleimat, myönnetty tunneliosoite ja tavumäärät kumpaankin suuntaan. Se on istuntojen luettelo, ei kohdeluettelo.

Lokitusasetukset voivat lisätä yksityiskohtia. Korkeampi yksityiskohtaisuustaso kirjoittaa enemmän kättelystä, ja tilatiedosto voi luetella yhdistetyt asiakkaat, mutta kumpikaan ei tee palvelimesta läpinäkyvää välityspalvelinta. URL-osoitteiden tuottaminen edellyttää TLS:n päättämistä tai erillistä välityspalvelinta, ja molemmat muuttavat luottamusjärjestelyä sen sijaan että ottaisivat käyttöön piilotetun ominaisuuden.

Siksi selauslokin puuttumista koskevan väitteen täsmällinen versio on kapeampi kuin miltä se kuulostaa. Palvelin ei tunne sivua, mutta se tietää, että istunto oli olemassa, ja suunnilleen kuinka paljon dataa sen läpi kulki. Pidetäänkö se istuntotietue ja kuinka kauan, on erillinen käytäntökysymys.

Sisäiset ja ulkoiset paketit ovat eri todisteita

Pakettikaappaus on tapa nähdä, mitä tunnelin läpi todella kulkee. Nimeä palvelimella tunnelin liitäntä ja kirjoita tiedostoon, jota voi analysoida offline-tilassa:

sudo tcpdump -ni tun0 -w /tmp/tun.pcap
sudo tcpdump -r /tmp/tun.pcap -nn | head

Tiedosto sisältää salauksen purkaneen sisäisen liikenteen: asiakkaan tunneliosoitteen lähteenä, kohdeosoitteen ja portin, pakettien koot ja ajoitukset. Se ei sisällä HTTP-polkua tai vastauksen runkoa, ellei TLS:ää ole päätetty jossakin, ja kyse on arkaluonteisesta datasta, jonka säilyttäminen on käytäntöpäätös eikä virheenkorjauksen mukavuus.

Kaappaus fyysisellä liitännällä näyttää jotain muuta. Siellä näet ulkoiset paketit, jotka on osoitettu VPN:n päätepisteelle, sisällään salattu hyötykuorma. Epäolennaiset osoitteet siinä tiedostossa ovat normaaleja heti kun virtuaalinen sovitin on olemassa, koska tunnelilaite kuljettaa sisäiset virrat ja salattu siirto ulkoiset.

Kysy, mihin kysymykseen kaappauksen on vastattava. Sovelluksen tunnelin käyttö näkyy virtuaalisella sovittimella; tunnelin pääsy päätepisteeseen näkyy fyysisellä. Kummankin tiedoston käyttäminen ikään kuin se olisi koko kuva tuottaa johtopäätöksiä, joita data ei tue.

DNS on paikka, jossa nimet tulevat näkyviksi

DNS pysyy käytännön poikkeuksena. Ratkaisin näkee nimet, jotka sen on ratkaistava, joten sen ylläpitäjä oppii, mitä sivustoja asiakas etsii, vaikka myöhemmät yhteydet olisivat salattuja. Tunnelikaappaus näyttää osoitteet; ratkaisin näyttää nimet.

Tarkista, mitä osoitetta ratkaisin käytti ulkoiseen palveluun päästäkseen. Vastaus on ratkaisimen lähtöosoite, ja sen vertaaminen VPN:n lähtöön kertoo, kulkiko kysely tunnelin läpi:

dig +short myip.opendns.com @resolver1.opendns.com
dig example.com
sudo tcpdump -ni any udp port 53

Jos osoite vastaa paikallista yhteyttä eikä tunnelin lähtöä, haku ohitti VPN:n ja nimi oli näkyvissä paikallisella polulla. Toista tarkistus asiakaspäivityksen jälkeen, koska uusi versio voi muuttaa sitä, minkä ratkaisimen profiili asentaa.

Salattu DNS siirtää näkyvyyttä sen sijaan että poistaisi sen. Verkko ei enää näe kyselyä, mutta ratkaisin näkee, ja luottamuskysymys vain vaihtaa käsiä. TLS-palvelimen nimi yhteyden kättelyssä on toinen osittainen signaali: se säilyy usein, vaikka hyötykuorma olisi läpinäkymätön, joten kohdeosoitteet eivät ole ainoat metatiedot, joita välittävä palvelin voi havaita.

Kolme tietuetyyppiä ja kuka voi lukea ne

Istunnon kirjanpito, nimikohtaiset tietueet ja vuototodisteet ovat kolme eri tuotetta, joilla on kolme eri velvoitetta. Istuntolokit ovat halpoja ja vähän arkaluonteisia, ja ne vastaavat siihen, kuka yhdisti ja milloin. Nimikohtaiset tietueet edellyttävät kirjaavaa ratkaisinta tai erillistä välityspalvelinta, ja ne luovat tiedonantovelvoitteen asianomaisille ihmisille. Vuototodiste on asiakaspuolen testi, joka vertaa sitä, mitä ratkaisin paljastaa, tunnelin lähtöön.

Kirjaa, mitä näistä kolmesta ylläpidät, kuka voi lukea sitä ja kuinka kauan se säilyy. Väitteet, ettei palvelu pidä lokeja, kuvaavat yhtä kerrosta, ja ne pysyvät tosina vain siinä laajuudessa. Sama palveluntarjoaja voi olla täsmällinen istunnoista ja väärässä DNS:stä.

Pidä testi toistettavana: sama kysely ratkaisimelle, sama kaappausliitäntä ja sama vertailu. Yksityisyysväite, jota ei voi testata nimetyllä kerroksella, on iskulause, ei toiminnallinen tosiasia.

Aiheeseen liittyvät artikkelit