Aplikácia v telefóne a vzdialený server začínajú s rôznymi faktami a ani jeden si nemôže požičať fakty toho druhého. Aplikácia sa môže operačného systému opýtať na sieť, ktorú používa, zatiaľ čo server pozná len to, čo dorazí spojením. Prevádzkovanie vlastného koncového bodu prepisuje druhé a prvé necháva nedotknuté. Ktorý z nich odpovie na vašu otázku, závisí od samotnej otázky.

Dva pozorovacie body, dva druhy dôkazov

Miestne dôkazy opisujú zariadenie. Zahŕňajú rozhranie, ktoré nesie prevádzku, transport, ktorý platforma hlási, a to, na čo sa volajúca aplikácia smie opýtať. Vzdialené dôkazy opisujú spojenie: zdrojovú adresu, protokol, časovanie a všetko, čo sa aplikácia rozhodne odoslať. Žiadny pozorovací bod nie je nadmnožinou toho druhého.

Zmiešaním oboch vznikajú tvrdenia, ktoré znejú presne a nedajú sa overiť. Značka dokazuje niečo o sieťovom objekte v zariadení, nie o tom, ako vzdialená služba požiadavku klasifikuje.

Skôr než sa začnete hádať o detekcii, zapíšte, ktorého bodu sa otázka týka. Ide o to, či konkrétna aplikácia dokáže zistiť, že tunel je aktívny, alebo o to, či služba dokáže odvodiť, odkiaľ požiadavka prišla? To sú oddelené skúmania a odpoveď na jedno nič nehovorí o druhom.

Čo môže miestne rozhranie platformy hlásiť

Android ponúka konkrétnu značku. Objekt NetworkCapabilities môže hlásiť TRANSPORT_VPN, a hasTransport skúma, či je tento transport na objekte prítomný. Aplikácia objekt získa od služby konektivity a prečíta ho, s výhradou oprávnenia na stav siete.

Výsledok je miestna informácia platformy, nie dopyt na rozsahy adries poskytovateľa. Opisuje sieť, ktorú volajúca aplikácia používa.

Dve obmedzenia sú dôležité. Pravidlo rozdeleného tunela, ktoré aplikáciu vylučuje, môže na tom istom telefóne dať inú odpoveď, než akú vidí kolega, pretože aplikácia môže byť naviazaná inde. Značka existuje aj preto, že operačný systém modeluje rozhrania VPN, nie preto, že by ju nejaká konkrétna aplikácia zbierala. Či aplikácia pole číta, preposiela ho alebo ignoruje, je vlastnosťou tejto aplikácie. Jej manifest a dokumentácia sú jedinými spoľahlivými zdrojmi pre túto otázku.

adb shell dumpsys connectivity | grep -i -m5 vpn

Čo môže vzdialená služba vidieť

Server vidí zdrojovú adresu spojenia, transport a časovanie a adresu môže obohatiť údajmi z registra alebo smerovania. Môže tiež prijať všetko, čo aplikácia odošle, vrátane polohy, keď o ňu aplikácia požiada a používateľ súhlasí. Tie kanály sú oddelené a iba jeden pripomína dopyt na adresu.

Adresa registrovaná u poskytovateľa hostingu naznačuje tunel, zatiaľ čo adresa registrovaná v rezidenčnej sieti naznačuje domáce pripojenie. Obe sú štatistické náznaky, nie fakty o zariadení.

Rezidenčná adresa neumiestňuje človeka na túto adresu a hostingová adresa nepomenúva operátora ani krajinu. Služba, ktorá s odvodením zaobchádza ako s istotou, sa občas zmýli, pričom to nedokáže zistiť. Ak je požiadavkou spoľahlivosť a nie heuristika, adresné údaje ju nedodajú, a návrh, ktorý to priznáva, je čestnejší než ten, ktorý odhad skrýva.

DôkazNa čo odpovedáČo nemôže ukázať
Miestna značka transportuČi je tento sieťový objekt VPNKto prevádzkuje výstup alebo kde je zariadenie
Vzdialená zdrojová adresaKtorá adresa dorazila do službyČi zariadenie nesie aj tunel
Údaje aplikácieČo sa aplikácia rozhodla odoslaťČokoľvek, čo aplikácia neodoslala

Prečo samostatne hostovaný výstup mení len jednu stranu

Prevádzkovanie vlastného koncového bodu mení zdrojovú adresu, ktorú vzdialená služba vidí, čo ju môže posunúť mimo rozsahov, ktoré služba spája s komerčnými poskytovateľmi. V miestnom sieťovom modeli sa nič nemení, pretože tunel zostáva tunelom a operačný systém ho stále hlási.

Jedna strana dôkazov sa pohybuje, druhá zostáva pevná. Medzera medzi nimi je miesto, kde sa lámajú očakávania.

Prehliadač je tretí prípad s vlastnými rozhraniami a obmedzeniami. Webový obsah nedokáže čítať natívny objekt schopností a považovať funkciu mobilného operačného systému za dostupnú webovej stránke je kategorická chyba. Ak sa otázka týka webu, skúmajte, čo web skutočne môže získať, namiesto prepisovania API platformy.

Rozhodujte podľa otázky, ktorú kladiete

Ak je otázkou, či konkrétna aplikácia dokáže pozorovať stav tunela, správnym miestom je rozhranie platformy a odpoveď leží v kóde a oprávneniach tejto aplikácie. Ak je otázkou, čo môže služba odvodiť, dôkazom sú metadáta spojenia. Právnu ani zmluvnú otázku nerieši ani jedno.

Pomenujte otázku jednou vetou, skôr než čokoľvek zhromaždíte. Tá veta rozhoduje, ktorý pozorovací bod je dôležitý, a bráni tomu, aby skúmanie odbočilo k inej hádke.

Každé pozorovanie označte podľa zdroja, keď o ňom referujete, pretože neoznačené tvrdenie nemožno preskúmať. Miestna značka aj odvodenie adresy sú užitočné a ani jedno nie je priekazné, a preto je ich zlievanie do jedného verdiktu chyba.

Keď služba odmietne autorizované spojenie, použite jej podporovanú cestu preskúmania, namiesto toho aby ste zmenili miestne nastavenie a skryli signál. Odstránenie jedného pozorovania nikdy nedokazuje, že ostatné zmizli.

Súvisiace články