Neko je napravio automatizaciju koja uključuje VPN kada se pojavi inkognito kartica, i ona ne radi pouzdano. Za to postoji strukturni razlog i vredi ga razumeti pre podešavanja automatizacije. Android pravila VPN-a po aplikaciji biraju pakete aplikacija, a inkognito je stanje unutar jednog paketa, pa pravilo ne može da razlikuje njih dvoje. Obaveštenje se aktivira pošto je pregledač već počeo da radi, pa čak i ispravan okidač stiže prekasno. Prođite kroz provere ispod redom; neuspeh na četvrtoj proveri znači da treba promeniti pristup, a ne konfiguraciju.

Prva provera: potvrdite šta pravilo po aplikaciji može da bira

Android VPN aplikacija gradi svoj tunel pomoću lista dozvoljenih ili zabranjenih aplikacija, a te liste primaju nazive paketa. Chrome u normalnom režimu i Chrome u inkognito režimu su isti paket, sa istim korisničkim identifikatorom i istom mrežnom dozvolom, pa pravilo koje uključuje ili isključuje Chrome važi za oba isto. Platforma nema identitet vezan za karticu sa kojim bi mogla da se uporedi.

To nije nedostatak koji treba zaobići; to je nivo detalja koji API nudi. Ako je vaš zahtev saobraćaj Chrome-a kroz tunel i sve ostalo napolju, pravilo po aplikaciji to izražava tačno. Ako je vaš zahtev da samo privatne kartice idu kroz tunel dok obične kartice idu direktno, nijedno pravilo po aplikaciji ne može to da izrazi i nikakva količina logike obaveštenja neće dodati birač koji platforma nema.

Pazite na zamku identiteta paketa tokom provere. Beta ili izdanje proizvođača je drugi paket od stabilnog pregledača, pa pravilo koje pokriva jedan tiho promašuje drugi:

adb shell pm list packages | grep -i chrome

Druga provera: testirajte može li okidač ikada biti dovoljno ran

Posmatrač obaveštenja posmatra obaveštenja koja sme da vidi. Posmatranje nije presretanje: pregledač je već razrešio naziv i otvorio vezu dok obaveštenje postoji, i ništa na tom putu ne čeka da vaša automatizacija završi. Zadatak koji zatim pokreće VPN klijent mora da čeka korisnički interfejs klijenta, eventualni zahtev za saglasnost i rukovanje tunela, što se meri u sekundama, dok se prvi zahtev meri u milisekundama.

I sama detekcija je krhka zbog drugog razloga. Tekst obaveštenja se menja između verzija i lokalizacija, pa obrazac usklađen sa jednim izdanjem prestaje da odgovara posle ažuriranja, a neuspeh je tih. Obaveštenje koje nedostaje nije dokaz da privatno pregledanje ne postoji; može da znači samo da se niz promenio ili da je kanal utišan.

Postoji legitimna verzija ovog toka rada i ona je uređena, a ne reaktivna: prvo povežite odobreni VPN, potvrdite signal spremnosti koji zaista dokazuje da tunel prenosi saobraćaj, zatim otvorite inkognito sesiju preko podržanih kontrola pregledača i zaustavite se ako provera spremnosti ne uspe. To štiti sesiju koju tek počinjete bez pretvaranja da štitite onu koja već radi.

Treća provera: revidirajte dozvolu koju ćete dati

Pristup obaveštenjima je osetljiva dozvola koja usluzi omogućava da čita obaveštenja svake aplikacije, ne samo pregledača. Dati je nepoznatom alatu za automatizaciju radi posmatranja jednog stanja pregledača je loša zamena, a pristup ostaje i posle završetka eksperimenta. Dodiri vođeni pristupačnošću su još gori: oni su skriptni sloj iznad interfejsa, a ne podržani interfejs za upravljanje VPN-om, i pucaju pri svakoj promeni izgleda.

Pre nego što bilo šta dodelite, pitajte da li je isti ishod ostvariv podržanim mehanizmom. Ako je odgovor zahtev politike, obično jeste: platforma može da sprovede tunel za aplikaciju ili profil bez ikakve usluge slušanja.

Četvrta provera: koristite uvek uključeno i blokiranje kada je zahtev sprovođenje

Ako pregledač nikada ne sme da komunicira izvan tunela, sprovođenje pripada podešavanjima platforme, a ne makrou. Android podržava uvek uključen VPN sa režimom blokiranja koji sprečava saobraćaj kada tunel nije uspostavljen, a upravljani uređaji mogu da ga dobiju politikom. Potvrdite šta uređaj sada ima umesto da pretpostavljate:

adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown

Vrednost aplikacije koja nije null znači da je paket konfigurisan kao uvek uključen, a vrednost blokiranja 1 znači da su veze izvan tunela blokirane. Taj par pretvara naviku najboljeg truda u garanciju i ujedno potpuno uklanja trku, jer se tunel uspostavlja pre nego što je saobraćaj aplikacije dozvoljen.

Dve granice vredi ovde navesti. Radni profili imaju sopstvenu VPN konfiguraciju, pa pravilo provereno u ličnom profilu ne govori ništa o radnom. A posebno instaliran pregledač, prilagođena kartica koju otvori druga aplikacija ili webview unutar aplikacije je drugi paket ili kontekst sa sopstvenim usmeravanjem, pa proverite stvarni paket umesto da pretpostavite da je drugačije stilizovan prozor zaseban domen.

Peta provera: zapišite tok rada i testirajte put neuspeha

Šta god da izaberete, dokumentujte redosled i uslov prekida. Za tok pogodnosti to znači: tunel gore, spremnost dokazana, inkognito otvoren i tvrd zastoj ako spremnost ne uspe. Za put sprovođenja to znači: uvek uključena aplikacija konfigurisana, blokiranje omogućeno i očekivano ponašanje kada tunel uopšte ne može da se podigne, a to je nikakav saobraćaj umesto nezaštićenog saobraćaja.

Zatim testirajte neuspeh, ne samo uspeh. Prekinite tunel tokom sesije i pogledajte šta pregledač radi; blokirajte proces VPN aplikacije i potvrdite da ništa ne curi. Na kraju, držite dva modela privatnosti odvojeno u korisničkoj dokumentaciji: inkognito kontroliše privremeno stanje pregledača i ne skriva saobraćaj od mreže, dok VPN prenosi saobraćaj ali ne briše prijave ni bilo šta poslato unutar privatne sesije.

Povezani članci