VPN pro jednotlivé aplikace v Androidu a inkognito v Chrome: co pravidlo pokrývá
Pravidla pro jednotlivé aplikace vybírají balíčky, ne karty prohlížeče, a oznámení dorazí až po prvním požadavku. Ověřte rozsah, načasování a vynucení, které potřebujete.
Někdo postavil automatizaci, která zapne VPN, když se objeví karta inkognita, a ta nefunguje spolehlivě. Důvod je strukturální a stojí za to ho pochopit dřív, než začnete automatizaci ladit: pravidla VPN pro jednotlivé aplikace v Androidu vybírají balíčky aplikací, zatímco inkognito je stav uvnitř jednoho balíčku. Pravidlo ty dva nerozliší. Oznámení navíc přichází až poté, co prohlížeč začal pracovat, takže i správný spouštěč dorazí pozdě. Projděte pět kontrol popořadě; selhání u čtvrté znamená, že změnit se musí přístup, ne nastavení.
První kontrola: co pravidlo může vybrat
Aplikace VPN staví tunel z seznamů povolených nebo zakázaných aplikací a tyto seznamy berou názvy balíčků. Chrome v běžném režimu a Chrome v režimu inkognito jsou stejný balíček se stejným identifikátorem uživatele a stejným síťovým oprávněním, takže pravidlo, které Chrome zahrne nebo vyloučí, platí na oba stejně. Platforma nemá identitu na úrovni karty, se kterou by to porovnala.
To není vada k obcházení; to je granularita, kterou API nabízí. Pokud potřebujete provoz Chromu uvnitř tunelu a vše ostatní venku, pravidlo pro aplikaci to vyjádří přesně. Pokud potřebujete jen soukromé karty uvnitř tunelu a běžné karty přímo, žádné pravidlo pro aplikaci to vyjádřit nemůže a žádná logika oznámení nepřidá selektor, který platforma nemá.
Pozor na past identity balíčku: beta nebo sestavení od výrobce je jiný balíček než stabilní prohlížeč, takže pravidlo, které pokrývá jeden, tiše mine druhý:
adb shell pm list packages | grep -i chromeDruhá kontrola: může spouštěč někdy přijít dost brzy
Posluchač oznámení sleduje oznámení, která smí vidět. Sledování není zachycení: v okamžiku, kdy oznámení existuje, prohlížeč už přeložil jméno a otevřel spojení a nic na této cestě nečeká na vaši automatizaci. Úloha, která pak spustí klienta VPN, musí čekat na rozhraní klienta, případný dotaz na souhlas a navázání tunelu, což se měří v sekundách, zatímco první požadavek v milisekundách.
Detekce je křehká i z druhého důvodu. Text oznámení se mění mezi verzemi a lokalizacemi, takže vzor, který seděl na jedno vydání, přestane po aktualizaci sedět a selhání je tiché. Chybějící oznámení není důkazem, že soukromé prohlížení není; může jen znamenat, že se řetězec změnil nebo že kanál byl ztišen.
Existuje legitimní podoba tohoto postupu a je uspořádaná, ne reaktivní: nejprve připojte schválenou VPN, potvrďte signál připravenosti, který skutečně dokazuje, že tunel nese provoz, potom otevřete relaci inkognita přes podporované ovládací prvky prohlížeče a zastavte, pokud kontrola připravenosti selže. To chrání relaci, kterou teprve začnete, místo předstírání, že chráníte tu už běžící.
Třetí kontrola: projděte oprávnění, které hodláte udělit
Přístup k oznámením je citlivé oprávnění, které službě umožní číst oznámení všech aplikací, ne jen prohlížeče. Dát ho neznámému nástroji pro automatizaci, aby sledoval jeden stav prohlížeče, je špatná výměna a přístup zůstane i po skončení experimentu. Klepání přes přístupnost je horší: je to skriptovací vrstva nad rozhraním, ne podporované ovládání VPN, a každá změna rozvržení ho rozbije.
Než něco udělíte, zeptejte se, zda stejného výsledku nelze dosáhnout podporovaným mechanismem. Pokud je odpovědí požadavek politiky, obvykle lze: platforma umí vynutit tunel pro aplikaci nebo profil zcela bez naslouchající služby.
Čtvrtá kontrola: vždy zapnuto a blokování, když potřebujete vynucení
Pokud prohlížeč nikdy nesmí komunikovat mimo tunel, vynucení patří do nastavení platformy, ne do makra. Android podporuje VPN vždy zapnutou s režimem blokování, který brání provozu, když tunel není vytvořen, a spravovaná zařízení ho mohou dostat politikou. Ověřte, co zařízení právě má, místo abyste předpokládali:
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdownNeprázdná hodnota aplikace znamená, že balíček je nastaven jako vždy zapnutý, a hodnota zámku 1 znamená, že spojení mimo tunel jsou blokována. Dvojice mění zvyk nejlepší snahy v záruku a zcela odstraňuje závod, protože tunel je vytvořen dřív, než je povolen provoz aplikací.
Zde stojí za zmínku dvě hranice. Pracovní profily mají vlastní konfiguraci VPN, takže pravidlo ověřené v osobním profilu neříká nic o pracovním. A samostatně nainstalovaný prohlížeč, vlastní karta otevřená jinou aplikací nebo webové zobrazení uvnitř aplikace je jiný balíček či kontext s vlastním směrováním, takže ověřujte skutečný balíček, místo abyste předpokládali, že jinak vypadající okno je samostatná doména.
Pátá kontrola: zapište postup a otestujte cestu selhání
Ať zvolíte cokoli, zdokumentujte pořadí a podmínku zastavení. Pro pohodlný postup to znamená: tunel nahoru, připravenost prokázána, inkognito otevřeno a tvrdé zastavení, pokud připravenost selže. Pro cestu vynucení to znamená: aplikace vždy zapnutá nastavena, zámek zapnut, a očekávané chování, když tunel vůbec nelze zvednout, tedy žádný provoz místo nechráněného provozu.
Pak testujte selhání, ne jen úspěch. Odpojte tunel během relace a sledujte, co prohlížeč dělá; zablokujte proces aplikace VPN a potvrďte, že nic neuniká. Nakonec držte oba modely soukromí oddělené v dokumentaci: inkognito řídí dočasný stav prohlížeče a neskrývá provoz před sítí, zatímco VPN provoz nese, ale nemaže přihlášení ani nic odeslaného v soukromé relaci.