Tālruņa lietotne un attālais serveris sāk ar atšķirīgiem faktiem, un neviens nevar aizņemties otra faktus. Lietotne var pajautāt operētājsistēmai par tīklu, ko tā izmanto, kamēr serveris zina tikai to, kas pienāk pa savienojumu. Palaidot savu galapunktu, otrais tiek pārrakstīts, bet pirmais paliek neskarts. Kurš no tiem atbildēs uz jūsu jautājumu, ir atkarīgs no paša jautājuma.

Divi novērošanas punkti, divu veidu pierādījumi

Vietējie pierādījumi raksturo ierīci. Tie ietver saskarni, kas pārvadā datplūsmu, platformas ziņoto transportu un to, ko drīkst vaicāt lietotne, kas izsauc. Attālie pierādījumi raksturo savienojumu: avota adrese, protokols, laiks un viss, ko lietotne izlemj sūtīt. Neviens novērošanas punkts nav otra virskopa.

Abu sajaukšana rada apgalvojumus, kas izklausās precīzi un nav pārbaudāmi. Marķieris pierāda kaut ko par tīkla objektu ierīcē, nevis par to, kā attālais pakalpojums klasificē pieprasījumu.

Pirms strīdēties par noteikšanu, pierakstiet, uz kuru punktu attiecas jautājums. Vai jautājums ir par to, vai konkrēta lietotne var konstatēt, ka tunelis ir aktīvs, vai par to, vai pakalpojums var secināt, no kurienes nāca pieprasījums? Tie ir atsevišķi pētījumi, un atbilde uz vienu neko nepasaka par otru.

Ko var ziņot vietējā platformas saskarne

Android piedāvā konkrētu marķieri. Objekts NetworkCapabilities var ziņot TRANSPORT_VPN, un hasTransport pārbauda, vai šis transports ir objektā. Lietotne iegūst objektu no savienojamības pakalpojuma un nolasa to, ievērojot tīkla stāvokļa atļauju.

Rezultāts ir vietēja platformas informācija, nevis meklēšana pakalpojumu sniedzēja adrešu diapazonos. Tā raksturo tīklu, ko izmanto lietotne, kas izsauc.

Svarīgi ir divi ierobežojumi. Sadalītā tuneļa noteikums, kas izslēdz lietotni, tajā pašā tālrunī var dot citādu atbildi nekā kolēģis redz, jo lietotne var būt piesaistīta citur. Marķieris pastāv arī tāpēc, ka operētājsistēma modelē VPN saskarnes, nevis tāpēc, ka kāda konkrēta lietotne to vāc. Vai lietotne lasa šo lauku, pārsūta to vai ignorē, ir tās lietotnes īpašība. Tās manifests un dokumentācija ir vienīgie uzticamie avoti šim jautājumam.

adb shell dumpsys connectivity | grep -i -m5 vpn

Ko var redzēt attālais pakalpojums

Serveris redz savienojuma avota adresi, transportu un laiku, un tas var bagātināt adresi ar reģistra vai maršrutēšanas datiem. Tas var arī saņemt visu, ko lietotne sūta, tostarp atrašanās vietu, kad lietotne to pieprasa un lietotājs piekrīt. Šie kanāli ir atsevišķi, un tikai viens atgādina adreses meklēšanu.

Adrese, kas reģistrēta mitināšanas pakalpojumu sniedzējam, liecina par tuneli, savukārt dzīvojamā tīklā reģistrēta adrese liecina par mājas savienojumu. Abi ir statistiski mājieni, nevis fakti par ierīci.

Dzīvojamā adrese nenovieto cilvēku šajā adresē, un mitināšanas adrese nenosauc operatoru vai valsti. Pakalpojums, kas secinājumu uzskata par drošību, dažkārt kļūdīsies, nespēdams to atklāt. Ja prasība ir uzticamība, nevis heiristika, adrešu dati to nevar nodrošināt, un dizains, kas to pasaka, ir godīgāks par to, kas slēpj minējumu.

PierādījumsUz ko tas atbildKo tas nevar parādīt
Vietējais transporta marķierisVai šis tīkla objekts ir VPNKas pārvalda izeju vai kur atrodas ierīce
Attālā avota adreseKura adrese sasniedza pakalpojumuVai ierīcei ir arī tunelis
Lietotnes lietderīgā slodzeKo lietotne izvēlējās sūtītViss, ko lietotne nenosūtīja

Kāpēc pašmitināta izeja maina tikai vienu pusi

Sava galapunkta palaišana maina avota adresi, ko redz attālais pakalpojums, un tas var to izvirzīt ārpus diapazoniem, ko šis pakalpojums saista ar komerciālajiem sniedzējiem. Vietējā tīkla modelī nekas nemainās, jo tunelis paliek tunelis un operētājsistēma joprojām to ziņo.

Viena pierādījumu puse kustas, otra paliek nekustīga. Starpība starp tām ir vieta, kur lūzt gaidas.

Pārlūks ir trešais gadījums ar savām saskarnēm un ierobežojumiem. Tīmekļa saturs nevar nolasīt vietēju iespēju objektu, un mobilās operētājsistēmas funkcijas uzskatīšana par pieejamu tīmekļa lapai ir kategorijas kļūda. Ja jautājums ir par vietni, pētiet, ko vietne patiešām var iegūt, tā vietā lai pārrakstītu platformas API.

Izlemiet ar jautājumu, ko uzdodat

Ja jautājums ir, vai konkrēta lietotne var novērot tuneļa stāvokli, platformas saskarne ir īstā vieta, kur skatīties, un atbilde ir šīs lietotnes kodā un atļaujās. Ja jautājums ir, ko pakalpojums var secināt, pierādījums ir savienojuma metadati. Juridisku vai līgumisku jautājumu neatrisina neviens no abiem.

Nosauciet jautājumu vienā teikumā, pirms kaut ko vācat. Šis teikums izlemj, kurš novērošanas punkts ir svarīgs, un neļauj pētījumam noslīdēt citā strīdā.

Atzīmējiet katru novērojumu pēc tā avota, kad par to ziņojat, jo apgalvojumu bez atzīmes nevar pārskatīt. Vietējais marķieris un secinājums no adreses abi ir noderīgi, un neviens nav izšķirošs, tāpēc to sapludināšana vienā spriedumā ir kļūda.

Kad pakalpojums noraida atļautu savienojumu, izmantojiet tā atbalstīto pārskatīšanas ceļu, nevis mainiet vietējo iestatījumu, lai slēptu signālu. Viena novērojuma noņemšana nekad nepierāda, ka pārējie ir pazuduši.

Saistītie raksti