Aplikacija v telefonu in oddaljeni strežnik začneta z različnimi dejstvi in nobeden si ne more izposoditi dejstev drugega. Aplikacija lahko operacijski sistem vpraša o omrežju, ki ga uporablja, medtem ko strežnik ve le, kaj prispe po povezavi. Če zaženete svojo končno točko, se drugo prepiše, prvo pa ostane nedotaknjeno. Katero od njiju bo odgovorilo na vaše vprašanje, je odvisno od vprašanja samega.

Dve opazovalni točki, dve vrsti dokazov

Lokalni dokazi opisujejo napravo. Zajemajo vmesnik, ki nosi promet, transport, ki ga poroča platforma, in to, kar se sme klicoča aplikacija poizvedovati. Oddaljeni dokazi opisujejo povezavo: izvorni naslov, protokol, čas in vse, kar se aplikacija odloči poslati. Nobena opazovalna točka ni nadmnožica druge.

Mešanje obeh daje trditve, ki zvenijo natančno in jih ni mogoče preveriti. Oznaka dokazuje nekaj o omrežnem objektu v napravi, ne o tem, kako oddaljena storitev razvršča zahtevo.

Preden se prepirate o zaznavanju, zapišite, katere točke se vprašanje tiče. Gre za to, ali lahko določena aplikacija ugotovi, da je tunel aktiven, ali za to, ali lahko storitev sklepa, od kod je prišla zahteva? To sta ločeni preiskavi in odgovor na eno ne pove ničesar o drugi.

Kaj lahko poroča lokalni vmesnik platforme

Android ponuja določeno oznako. Objekt NetworkCapabilities lahko poroča TRANSPORT_VPN, in hasTransport preveri, ali je ta transport prisoten na objektu. Aplikacija objekt dobi od storitve povezljivosti in ga prebere, ob upoštevanju dovoljenja za stanje omrežja.

Rezultat so lokalne informacije platforme, ne iskanje po naslovnih obsegih ponudnika. Opisuje omrežje, ki ga uporablja klicoča aplikacija.

Pomembni sta dve omejitvi. Pravilo razdeljenega tunela, ki izključi aplikacijo, lahko v istem telefonu da drugačen odgovor od tistega, ki ga vidi sodelavec, ker je aplikacija morda vezana drugje. Oznaka obstaja tudi zato, ker operacijski sistem modelira vmesnike VPN, ne zato, ker bi jo zbirala katera koli aplikacija. Ali aplikacija polje bere, ga posreduje naprej ali ga ignorira, je lastnost te aplikacije. Njen manifest in dokumentacija sta edina zanesljiva vira za to vprašanje.

adb shell dumpsys connectivity | grep -i -m5 vpn

Kaj lahko vidi oddaljena storitev

Strežnik vidi izvorni naslov povezave, transport in čas, naslov pa lahko obogati s podatki iz registra ali usmerjanja. Lahko prejme tudi vse, kar aplikacija pošlje, vključno z lokacijo, ko aplikacija to zahteva in uporabnik soglaša. Ti kanali so ločeni in le eden je podoben poizvedbi naslova.

Naslov, registriran pri ponudniku gostovanja, nakazuje tunel, medtem ko naslov, registriran v stanovanjskem omrežju, nakazuje domačo povezavo. Oba so statistični namigi, ne dejstva o napravi.

Stanovanjski naslov osebe ne postavi na ta naslov, gostujoči naslov pa ne poimenuje operaterja ali države. Storitev, ki sklep obravnava kot gotovost, se bo včasih zmotila, ne da bi to lahko zaznala. Če je zahteva zanesljivost in ne heuristika, ji naslovni podatki ne morejo zadostiti, in zasnova, ki to priznava, je poštenejša od tiste, ki ugibanje skriva.

DokazNa kaj odgovarjaČesa ne more pokazati
Lokalna oznaka transportaAli je ta omrežni objekt VPNKdo upravlja izhod ali kje je naprava
Oddaljeni izvorni naslovKateri naslov je dosegel storitevAli naprava nosi tudi tunel
Podatki aplikacijeKaj se je aplikacija odločila poslatiVse, česar aplikacija ni poslala

Zakaj samostojno gostovan izhod spremeni le eno stran

Zagon lastne končne točke spremeni izvorni naslov, ki ga vidi oddaljena storitev, kar ga lahko premakne izven obsegov, ki jih storitev povezuje s komercialnimi ponudniki. V lokalnem omrežnem modelu se nič ne spremeni, ker tunel ostane tunel in operacijski sistem ga še vedno poroča.

Ena stran dokazov se premika, druga ostaja fiksna. Vrzel med njima je mesto, kjer se pričakovanja zlomijo.

Brskalnik je tretji primer z lastnimi vmesniki in omejitvami. Spletna vsebina ne more brati izvornega objekta zmogljivosti, in obravnavati funkcijo mobilnega operacijskega sistema kot razpoložljivo spletni strani je kategorijska napaka. Če se vprašanje nanaša na spletno stran, preučite, kaj lahko spletna stran v resnici pridobi, namesto da prepisujete API platforme.

Odločite se z vprašanjem, ki ga postavljate

Če je vprašanje, ali lahko določena aplikacija opazuje stanje tunela, je vmesnik platforme pravo mesto za pogled in odgovor je v kodi in dovoljenjih te aplikacije. Če je vprašanje, kaj lahko storitev sklepa, so dokaz metapodatki povezave. Pravnega ali pogodbenega vprašanja ne reši nobeno od obeh.

Poimenujte vprašanje v enem stavku, preden karkoli zberete. Ta stavek odloči, katera opazovalna točka je pomembna, in prepreči, da bi preiskava zdrsnila v drugo razpravo.

Vsako opažanje označite glede na vir, ko o njem poročate, ker neoznačene trditve ni mogoče pregledati. Lokalna oznaka in sklep iz naslova sta oba koristna in nobeden ni odločilen, zato je njun spoj v eno sodbo napaka.

Ko storitev zavrne pooblaščeno povezavo, uporabite njeno podprto pot pregleda, namesto da spremenite lokalno nastavitev, da bi skrili signal. Odstranitev enega opažanja nikoli ne dokaže, da so ostala izginila.

Sorodni članki