Niekto vytvoril automatizáciu, ktorá zapne VPN, keď sa objaví inkognito karta, a nefunguje spoľahlivo. Má to štrukturálnu príčinu a oplatí sa ju pochopiť pred ladením automatizácie. Pravidlá VPN podľa aplikácie v Androide vyberajú balíky aplikácií a inkognito je stav vnútri jedného balíka, takže pravidlo nedokáže rozlíšiť oba. Oznámenie sa spustí po tom, čo prehliadač už začal pracovať, takže aj správny spúšťač prichádza neskoro. Prejdite nižšie uvedené kontroly v poradí; zlyhanie pri štvrtej kontrole znamená, že zmeniť treba prístup, nie konfiguráciu.

Prvá kontrola: potvrďte, čo môže pravidlo podľa aplikácie vybrať

Aplikácia VPN pre Android buduje svoj tunel pomocou zoznamov povolených alebo zakázaných aplikácií a tieto zoznamy prijímajú názvy balíkov. Chrome v normálnom režime a Chrome v inkognito režime sú ten istý balík s rovnakým identifikátorom používateľa a rovnakým sieťovým povolením, takže pravidlo, ktoré Chrome zahŕňa alebo vylučuje, platí pre oba rovnako. Platforma nemá identitu na úrovni karty, s ktorou by sa dalo porovnávať.

To nie je chyba, ktorú treba obchádzať; je to úroveň podrobnosti, ktorú API ponúka. Ak vašou požiadavkou je prevádzka Chrome cez tunel a všetko ostatné mimo, pravidlo podľa aplikácie to vyjadruje presne. Ak vašou požiadavkou je, aby cez tunel išli len súkromné karty, zatiaľ čo bežné karty idú priamo, žiadne pravidlo podľa aplikácie to nedokáže vyjadriť a žiadne množstvo logiky oznámení nepridá selektor, ktorý platforma nemá.

Pri kontrole si dávajte pozor na pascu identity balíka. Beta alebo zostava výrobcu je iný balík ako stabilný prehliadač, takže pravidlo, ktoré pokrýva jeden, potichu vynechá druhý:

adb shell pm list packages | grep -i chrome

Druhá kontrola: overte, či spúšťač môže byť niekedy dosť skorý

Poslucháč oznámení pozoruje oznámenia, ktoré má povolené vidieť. Pozorovanie nie je zachytávanie: prehliadač už preložil názov a otvoril spojenie v čase, keď oznámenie existuje, a nič na tej ceste nečaká na dokončenie vašej automatizácie. Úloha, ktorá potom spustí klienta VPN, musí čakať na rozhranie klienta, prípadnú žiadosť o súhlas a podanie ruky tunela, ktoré sa merajú v sekundách, zatiaľ čo prvá požiadavka sa meria v milisekundách.

Samotná detekcia je krehká z druhého dôvodu. Text oznámenia sa mení medzi verziami a lokalizáciami, takže vzor zhodný s jedným vydaním prestane zodpovedať po aktualizácii a zlyhanie je tiché. Chýbajúce oznámenie nie je dôkazom, že súkromné prehliadanie neexistuje; môže znamenať len to, že sa zmenil reťazec alebo že kanál bol stlmený.

Existuje legitímna verzia tohto pracovného postupu a je usporiadaná, nie reaktívna: najprv pripojte schválenú VPN, potvrďte signál pripravenosti, ktorý skutočne dokazuje, že tunel prenáša prevádzku, potom otvorte inkognito reláciu cez podporované ovládacie prvky prehliadača a zastavte, ak kontrola pripravenosti zlyhá. Chráni to reláciu, ktorú práve začínate, bez predstierania, že chránite tú, ktorá už beží.

Tretia kontrola: preverte povolenie, ktoré sa chystáte udeliť

Prístup k oznámeniam je citlivé povolenie, ktoré službe umožňuje čítať oznámenia z každej aplikácie, nielen z prehliadača. Udeliť ho neznámemu nástroju na automatizáciu na sledovanie jedného stavu prehliadača je zlá výmena a prístup pretrváva aj po skončení experimentu. Klepnutia riadené prístupnosťou sú horšie: sú vrstvou skriptov nad rozhraním, nie podporovaným rozhraním na ovládanie VPN, a rozbijú sa pri každej zmene rozloženia.

Pred udelením čohokoľvek sa opýtajte, či je rovnaký výsledok dosiahnuteľný podporovaným mechanizmom. Ak je odpoveďou požiadavka politiky, zvyčajne áno: platforma môže vynútiť tunel pre aplikáciu alebo profil bez akejkoľvek počúvajúcej služby.

Štvrtá kontrola: používajte vždy zapnuté a blokovanie, keď je požiadavkou vynútenie

Ak prehliadač nikdy nesmie komunikovať mimo tunela, vynútenie patrí do nastavení platformy, nie do makra. Android podporuje vždy zapnutú VPN s režimom blokovania, ktorý zabraňuje prevádzke, keď tunel nie je vytvorený, a spravované zariadenia ho môžu dostať prostredníctvom politiky. Potvrďte, čo zariadenie teraz má, namiesto toho, aby ste predpokladali:

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

Nenulová hodnota aplikácie znamená, že balík je nakonfigurovaný ako vždy zapnutý, a hodnota blokovania 1 znamená, že spojenia mimo tunela sú blokované. Práve táto dvojica mení zvyk najlepšieho úsilia na záruku a zároveň úplne odstraňuje preteky, pretože tunel sa vytvorí pred povolením prevádzky aplikácie.

Tu stojí za zmienku dve hranice. Pracovné profily majú vlastnú konfiguráciu VPN, takže pravidlo overené v osobnom profile nehovorí nič o pracovnom. A samostatne nainštalovaný prehliadač, vlastná karta otvorená inou aplikáciou alebo webview vnútri aplikácie je iný balík alebo kontext s vlastným smerovaním, takže overte skutočný balík, namiesto toho, aby ste predpokladali, že inak štýlované okno je samostatná doména.

Piata kontrola: zapíšte pracovný postup a otestujte cestu zlyhania

Čokoľvek si vyberiete, zdokumentujte poradie a podmienku prerušenia. Pre pohodový pracovný postup to znamená: tunel hore, pripravenosť preukázaná, inkognito otvorené a tvrdé zastavenie, ak pripravenosť zlyhá. Pre cestu vynútenia to znamená: vždy zapnutá aplikácia nakonfigurovaná, blokovanie zapnuté a očakávané správanie, keď sa tunel vôbec nedokáže zdvihnúť, teda žiadna prevádzka namiesto nechránenej prevádzky.

Potom otestujte zlyhanie, nielen úspech. Odpojte tunel počas relácie a sledujte, čo prehliadač robí; zablokujte proces aplikácie VPN a potvrďte, že nič neuniká. Na záver držte dva modely súkromia oddelene v používateľskej dokumentácii: inkognito ovláda dočasný stav prehliadača a neskrýva prevádzku pred sieťou, zatiaľ čo VPN prenáša prevádzku, ale nezmazáva prihlásenia ani nič odoslané v súkromnej relácii.

Súvisiace články