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ůkazNa co odpovídáCo nemůže ukázat
Místní značka transportuZda je tento síťový objekt VPNKdo provozuje výstup nebo kde je zařízení
Vzdálená zdrojová adresaKterá adresa dorazila ke služběZda zařízení nese také tunel
Data aplikaceCo se aplikace rozhodla odeslatCokoli, 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.

Související články