VPN žymuo įrenginyje ar išėjimo adresas: kas ką įrodo?
Įrenginyje nuskaitomas tinklo žymuo ir serverio matomas adresas yra skirtingi įrodymai. Nuspręskite, kurio reikia jūsų klausimui.
Telefono programėlė ir nuotolinis serveris pradeda nuo skirtingų faktų, ir nė vienas negali pasiskolinti kito faktų. Programėlė gali paklausti operacinės sistemos apie tinklą, kurį naudoja, o serveris žino tik tai, kas ateina per ryšį. Paleidus savo galinį tašką, antrasis perrašomas, o pirmasis lieka nepaliestas. Kuris iš jų atsakys į jūsų klausimą, priklauso nuo paties klausimo.
Du stebėjimo taškai, dviejų rūšių įrodymai
Vietinis įrodymas apibūdina įrenginį. Jis apima sąsają, kuri neša srautą, platformos pranešamą transportą ir tai, ko gali klausti kviečianti programėlė. Nuotolinis įrodymas apibūdina ryšį: šaltinio adresas, protokolas, laikas ir viskas, ką programėlė nusprendžia siųsti. Nė vienas stebėjimo taškas nėra kito viršybė.
Abu sumaišius gaunami teiginiai, kurie skamba tiksliai ir kurių negalima patikrinti. Žymuo įrodo ką nors apie tinklo objektą įrenginyje, o ne apie tai, kaip nuotolinė paslauga klasifikuoja užklausą.
Prieš ginčijantis dėl aptikimo, užsirašykite, kurio taško klausimas liečia. Ar klausimas, ar konkreti programėlė gali suprasti, kad tunelis aktyvus, ar tai, ar paslauga gali numanyti, iš kur atėjo užklausa? Tai atskiri tyrimai, ir atsakymas į vieną nieko nesako apie kitą.
Ką gali pranešti vietinė platformos sąsaja
Android siūlo konkretų žymenį. Objektas NetworkCapabilities gali pranešti TRANSPORT_VPN, o hasTransport tikrina, ar tas transportas yra objekte. Programėlė gauna objektą iš ryšio paslaugos ir jį skaito, laikantis tinklo būsenos leidimo.
Rezultatas yra vietinė platformos informacija, o ne paieška tiekėjo adresų diapazonuose. Jis apibūdina tinklą, kurį naudoja kviečianti programėlė.
Svarbios dvi ribos. Padalinto tunelio taisyklė, kuri išskiria programėlę, tame pačiame telefone gali duoti kitokį atsakymą nei mato kolega, nes programėlė gali būti pririšta kitur. Žymuo egzistuoja ir todėl, kad operacinė sistema modeliuoja VPN sąsajas, o ne todėl, kad kuri nors programėlė jį renka. Ar programėlė skaito šį lauką, persiunčia jį ar ignoruoja, yra tos programėlės savybė. Jos manifestas ir dokumentacija yra vieninteliai patikimi šaltiniai šiam klausimui.
adb shell dumpsys connectivity | grep -i -m5 vpn
Ką gali matyti nuotolinė paslauga
Serveris mato ryšio šaltinio adresą, transportą ir laiką, ir gali praturtinti adresą registro ar maršrutizavimo duomenimis. Jis taip pat gali gauti viską, ką siunčia programėlė, įskaitant vietą, kai programėlė jos prašo ir naudotojas sutinka. Tie kanalai yra atskiri, ir tik vienas primena adreso paiešką.
Prieglobos teikėjui registruotas adresas rodo tunelį, o gyvenamajame tinkle registruotas adresas rodo namų ryšį. Abu yra statistinės užuominos, o ne faktai apie įrenginį.
Gyvenamosios vietos adresas nepastato žmogaus to adresu, o prieglobos adresas neįvardija operatoriaus ar šalies. Paslauga, kuri išvadą laiko tikrumu, kartais klys negalėdama to aptikti. Jei reikalavimas yra patikimumas, o ne euristika, adresų duomenys to negali suteikti, ir dizainas, kuris tai pripažįsta, yra sąžiningesnis nei tas, kuris slepia spėjimą.
| Įrodymas | Į ką jis atsako | Ko jis negali parodyti |
|---|---|---|
| Vietinis transporto žymuo | Ar šis tinklo objektas yra VPN | Kas valdo išėjimą arba kur yra įrenginys |
| Nuotolinis šaltinio adresas | Kuris adresas pasiekė paslaugą | Ar įrenginys taip pat turi tunelį |
| Programėlės naudingoji apkrova | Ką programėlė pasirinko siųsti | Viskas, ko programėlė neišsiuntė |
Kodėl savarankiškai talpinamas išėjimas keičia tik vieną pusę
Savo galinio taško paleidimas keičia šaltinio adresą, kurį mato nuotolinė paslauga, ir tai gali jį iškelti už diapazonų, kuriuos ta paslauga sieja su komerciniais tiekėjais. Vietiniame tinklo modelyje niekas nesikeičia, nes tunelis lieka tuneliu, o operacinė sistema vis dar jį praneša.
Viena įrodymų pusė juda, kita lieka vietoje. Tarpas tarp jų yra vieta, kur lūžta lūkesčiai.
Naršyklė yra trečias atvejis su savo sąsajomis ir apribojimais. Žiniatinklio turinys negali skaityti vietinio galimybių objekto, o mobiliojo operacinės sistemos funkcijos laikymas prieinama tinklalapiui yra kategorijos klaida. Jei klausimas apie svetainę, nagrinėkite, ką svetainė iš tikrųjų gali gauti, o ne perrašykite platformos API.
Spręskite pagal klausimą, kurį užduodate
Jei klausimas, ar konkreti programėlė gali stebėti tunelio būseną, platformos sąsaja yra tinkama vieta žiūrėti, o atsakymas yra tos programėlės kode ir leidimuose. Jei klausimas, ką paslauga gali numanyti, įrodymas yra ryšio metaduomenys. Teisinio ar sutartinio klausimo neišsprendžia nė vienas.
Įvardykite klausimą vienu sakiniu prieš ką nors rinkdami. Tas sakinys nusprendžia, kuris stebėjimo taškas svarbus, ir neleidžia tyrimui nukrypti į kitą ginčą.
Žymėkite kiekvieną stebėjimą pagal jo šaltinį, kai apie jį pranešate, nes teiginio be žymos negalima peržiūrėti. Vietinis žymuo ir išvada iš adreso abu naudingi ir nė vienas nėra galutinis, todėl jų suliejimas į vieną sprendimą yra klaida.
Kai paslauga atmeta leistą ryšį, naudokite jos palaikomą peržiūros kelią, o ne keiskite vietinį nustatymą, kad paslėptumėte signalą. Vieno stebėjimo pašalinimas niekada neįrodo, kad kiti dingo.