Značka VPN v zařízení, nebo adresa výstupu: co co dokazuje?
Síťová značka přečtená v zařízení a adresa, kterou vidí server, jsou různé důkazy. Rozhodněte, který z nich vaše otázka potřebuje.
Aplikace v telefonu a vzdálený server začínají s různými fakty a ani jeden si nemůže vypůjčit fakta toho druhého. Aplikace se může operačního systému zeptat na síť, kterou používá, zatímco server zná jen to, co dorazí spojením. Provozování vlastního koncového bodu přepisuje druhé a první nechává nedotčené. Který z nich odpoví na vaši otázku, závisí na otázce samotné.
Dva pozorovací body, dva druhy důkazů
Místní důkazy popisují zařízení. Zahrnují rozhraní, které nese provoz, transport, který platforma hlásí, a to, na co se volající aplikace smí dotázat. Vzdálené důkazy popisují spojení: zdrojovou adresu, protokol, časování a vše, co se aplikace rozhodne odeslat. Žádný pozorovací bod není nadmnožinou toho druhého.
Smícháním obou vznikají tvrzení, která znějí přesně a nelze je ověřit. Značka dokazuje něco o síťovém objektu v zařízení, ne o tom, jak vzdálená služba požadavek klasifikuje.
Než se začnete hádat o detekci, zapište, kterého bodu se otázka týká. Jde o to, zda konkrétní aplikace pozná, že je tunel aktivní, nebo zda služba dokáže odvodit, odkud požadavek přišel? To jsou oddělená zkoumání a odpověď na jedno nic neříká o druhém.
Co může místní rozhraní platformy hlásit
Android nabízí konkrétní značku. Objekt NetworkCapabilities může hlásit TRANSPORT_VPN, a hasTransport zkoumá, zda je tento transport na objektu přítomen. Aplikace objekt získá od služby konektivity a přečte ho, s výhradou oprávnění ke stavu sítě.
Výsledek je místní informace platformy, nikoli dotaz na rozsahy adres poskytovatele. Popisuje síť, kterou volající aplikace používá.
Dvě omezení jsou důležitá. Pravidlo rozděleného tunelu, které aplikaci vylučuje, může na stejném telefonu dát jinou odpověď, než vidí kolega, protože aplikace může být svázána jinde. Značka existuje i proto, že OS modeluje rozhraní VPN, ne proto, že by ji nějaká konkrétní aplikace sbírala. Zda aplikace pole čte, předává, nebo ignoruje, je vlastností této aplikace. Její manifest a dokumentace jsou jediným spolehlivým zdrojem pro tuto otázku.
adb shell dumpsys connectivity | grep -i -m5 vpn
Co může vzdálená služba vidět
Server vidí zdrojovou adresu spojení, transport a časování a adresu může obohatit údaji z registru nebo směrování. Může také přijmout vše, co aplikace odešle, včetně polohy, když o ni aplikace požádá a uživatel souhlasí. Ty kanály jsou oddělené a jen jeden připomíná dotaz na adresu.
Adresa registrovaná u poskytovatele hostingu naznačuje tunel, zatímco adresa registrovaná v rezidenční síti naznačuje domácí připojení. Obě jsou statistické náznaky, ne fakta o zařízení.
Rezidenční adresa neumisťuje člověka na tuto adresu a hostingová adresa nepojmenovává operátora ani zemi. Služba, která s odvozením zachází jako s jistotou, se občas zmýlí, aniž by to dokázala zjistit. Má-li být požadavkem spolehlivost, a ne heuristika, adresní data ji nedodají, a návrh, který to přiznává, je poctivější než ten, který odhad skrývá.
| Důkaz | Na co odpovídá | Co nemůže ukázat |
|---|---|---|
| Místní značka transportu | Zda je tento síťový objekt VPN | Kdo provozuje výstup nebo kde je zařízení |
| Vzdálená zdrojová adresa | Která adresa dorazila ke službě | Zda zařízení nese také tunel |
| Data aplikace | Co se aplikace rozhodla odeslat | Cokoli, co aplikace neodeslala |
Proč vlastnoručně hostovaný výstup mění jen jednu stranu
Provozování vlastního koncového bodu mění zdrojovou adresu, kterou vzdálená služba vidí, což ji může posunout mimo rozsahy, které služba spojuje s komerčními poskytovateli. V místním síťovém modelu se nemění nic, protože tunel zůstává tunelem a OS ho stále hlásí.
Jedna strana důkazů se pohybuje, druhá zůstává pevná. Mezera mezi nimi je místo, kde se lámou očekávání.
Prohlížeč je třetí případ s vlastními rozhraními a omezeními. Webový obsah nemůže číst nativní objekt schopností a považovat funkci mobilního OS za dostupnou webové stránce je kategorická chyba. Týká-li se otázka webu, zkoumejte, co web skutečně může získat, místo abyste přepisovali API platformy.
Rozhodujte podle otázky, kterou kladete
Je-li otázkou, zda konkrétní aplikace může pozorovat stav tunelu, správným místem je rozhraní platformy a odpověď leží v kódu a oprávněních této aplikace. Je-li otázkou, co může služba odvodit, důkazem jsou metadata spojení. Právní nebo smluvní otázku neřeší ani jedno.
Než cokoli shromáždíte, pojmenujte otázku jednou větou. Ta věta rozhoduje, který pozorovací bod je důležitý, a brání tomu, aby zkoumání odbočilo k jiné hádce.
Každé pozorování označte podle zdroje, když o něm referujete, protože neoznačené tvrzení nelze přezkoumat. Místní značka i odvození adresy jsou užitečné a ani jedno není průkazné, a proto je jejich slévání do jednoho verdiktu chyba.
Když služba odmítne autorizované spojení, použijte její podporovanou cestu přezkumu, místo abyste měnili místní nastavení a skryli signál. Odstranění jednoho pozorování nikdy nedokazuje, že ostatní zmizela.