Androidin sovelluskohtainen VPN ja Chromen incognito: mitä sääntö kattaa
Sovelluskohtaiset säännöt valitsevat paketteja, eivät selaimen välilehtiä, ja ilmoitus saapuu vasta ensimmäisen pyynnön jälkeen. Tarkista laajuus, ajoitus ja tarvitsemasi valvonta.
Joku on rakentanut automaation, joka kytkee VPN:n päälle, kun incognito-välilehti ilmestyy, eikä se toimi luotettavasti. Sille on rakenteellinen syy, ja se kannattaa ymmärtää ennen automaation virittämistä. Androidin sovelluskohtaiset VPN-säännöt valitsevat sovelluspaketteja, ja incognito on yhden paketin sisäinen tila, joten sääntö ei voi erottaa niitä. Ilmoitus laukeaa sen jälkeen, kun selain on jo aloittanut työn, joten oikeakin liipaisin saapuu myöhässä. Käy alla olevat tarkistukset järjestyksessä läpi; epäonnistuminen neljännessä tarkistuksessa tarkoittaa, että lähestymistapaa, ei kokoonpanoa, on muutettava.
Tarkistus yksi: vahvista, mitä sovelluskohtainen sääntö voi valita
Androidin VPN-sovellus rakentaa tunnelinsa sallittujen tai kiellettyjen sovellusluetteloiden avulla, ja luettelot ottavat pakettien nimiä. Chrome normaalitilassa ja Chrome incognito-tilassa ovat sama paketti, samalla käyttäjätunnuksella ja samalla verkkoluvalla, joten Chromeen sisältyvä tai sen poissulkeva sääntö koskee molempia samalla tavalla. Alustalla ei ole välilehtikohtaista identiteettiä, jota vasten sääntöä voisi sovittaa.
Se ei ole vika, jonka voisi kiertää; se on API:n tarjoama tarkkuus. Jos vaatimuksesi on Chromen liikenne tunnelin läpi ja kaikki muu ulkopuolelle, sovelluskohtainen sääntö ilmaisee sen täsmälleen. Jos vaatimuksesi on vain yksityiset välilehdet tunnelin läpi tavallisten välilehtien mennessä suoraan, mikään sovelluskohtainen sääntö ei voi ilmaista sitä, eikä mikään määrä ilmoituslogiikkaa lisää valitsinta, jota alustalla ei ole.
Varo paketin identiteettiansaa tarkistuksen aikana. Beeta tai toimittajan koontiversio on eri paketti kuin vakaa selain, joten sääntö, joka kattaa toisen, ohittaa toisen äänettömästi:
adb shell pm list packages | grep -i chrome
Tarkistus kaksi: testaa, voiko liipaisin koskaan olla tarpeeksi aikainen
Ilmoituskuuntelija havaitsee ilmoitukset, jotka se saa nähdä. Havainnointi ei ole sieppaamista: selain on jo selvittänyt nimen ja avannut yhteyden siihen mennessä, kun ilmoitus on olemassa, eikä mikään siinä polussa odota automaatiosi valmistumista. Tehtävä, joka sitten käynnistää VPN-asiakasohjelman, joutuu odottamaan asiakasohjelman käyttöliittymää, mahdollista suostumuskehotteita ja tunnelin kättelyä, jotka mitataan sekunneissa, kun taas ensimmäinen pyyntö mitataan millisekunteina.
Itse tunnistus on hauras toisestakin syystä. Ilmoituksen teksti muuttuu versioiden ja lokalisointien välillä, joten yhtä julkaisua vasten sovitettu kuvio lakkaa sopimasta päivityksen jälkeen, ja epäonnistuminen on äänetön. Puuttuva ilmoitus ei ole todiste yksityisen selailun puuttumisesta; se voi tarkoittaa vain, että merkkijono muuttui tai kanava vaiennettiin.
Tälle työnkululle on myös laillinen versio, ja se on järjestetty eikä reaktiivinen: yhdistä hyväksytty VPN ensin, vahvista valmiussignaali, joka todella osoittaa tunnelin kuljettavan liikennettä, avaa sitten incognito-istunto tuettujen selainohjainten kautta ja pysähdy, jos valmiustarkistus epäonnistuu. Se suojaa istuntoa, jota olet aloittamassa, teeskentelemättä suojaavansa jo käynnissä olevaa.
Tarkistus kolme: auditoi lupa, jonka aiot myöntää
Ilmoituskäyttöoikeus on arkaluonteinen lupa, joka antaa palvelulle oikeuden lukea ilmoituksia jokaisesta sovelluksesta, ei vain selaimesta. Sen myöntäminen tuntemattomalle automaatiotyökalulle yhden selaintilan seuraamiseksi on huono kauppa, ja käyttöoikeus säilyy kokeen päätyttyä. Esteettömyyteen perustuvat napautukset ovat pahempia: ne ovat käyttöliittymän päällä oleva komentosarjakerros, eivät tuettu VPN-ohjausliittymä, ja ne rikkoutuvat jokaisesta asettelumuutoksesta.
Ennen kuin myönnät mitään, kysy, onko sama lopputulos saavutettavissa tuetulla mekanismilla. Jos vastaus on käytäntövaatimus, se yleensä on: alusta voi pakottaa tunnelin sovellukselle tai profiilille ilman kuuntelevaa palvelua lainkaan.
Tarkistus neljä: käytä aina päällä -tilaa ja estoa, kun vaatimuksena on valvonta
Jos selain ei saa koskaan viestiä tunnelin ulkopuolelle, valvonta kuuluu alustan asetuksiin, ei makroon. Android tukee aina päällä olevaa VPN:ää estotilalla, joka estää liikenteen, kun tunnelia ei ole muodostettu, ja hallitut laitteet voivat saada sen käytännön kautta. Vahvista, mitä laitteessa nyt on, sen sijaan että olettaisit:
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown
Ei-null sovelluksen arvo tarkoittaa, että paketti on määritetty aina päällä olevaksi, ja eston arvo 1 tarkoittaa, että yhteydet tunnelin ulkopuolelle on estetty. Juuri tämä pari muuttaa parhaan yrityksen tavan takuuksi ja poistaa myös kilpajuoksun kokonaan, koska tunneli muodostetaan ennen kuin sovellusliikenne sallitaan.
Kaksi rajaa kannattaa mainita tässä. Työprofiileilla on oma VPN-kokoonpanonsa, joten henkilökohtaisessa profiilissa vahvistettu sääntö ei kerro työprofiilista mitään. Ja erikseen asennettu selain, toisen sovelluksen avaama mukautettu välilehti tai sovelluksen sisäinen webview on eri paketti tai konteksti, jolla on oma reitityksensä, joten vahvista todellinen paketti sen sijaan, että olettaisit eri tyylisen ikkunan olevan erillinen toimialue.
Tarkistus viisi: kirjoita työnkulku muistiin ja testaa epäonnistumispolku
Mitä tahansa valitsetkin, dokumentoi järjestys ja keskeytysehto. Mukavuustyönkululle se tarkoittaa: tunneli ylös, valmius todistettu, incognito avattu ja kova pysähdys, jos valmius epäonnistuu. Valvontapolulle se tarkoittaa: aina päällä oleva sovellus määritetty, esto käytössä ja odotettu toiminta, kun tunnelia ei saada lainkaan ylös, eli ei liikennettä suojaamattoman liikenteen sijaan.
Testaa sitten epäonnistuminen, ei vain onnistuminen. Katkaise tunneli istunnon aikana ja katso, mitä selain tekee; estä VPN-sovelluksen prosessi ja vahvista, ettei mikään vuoda. Pidä lopuksi kaksi yksityisyysmallia erillään käyttäjädokumentaatiossa: incognito ohjaa selaimen väliaikaista tilaa eikä peitä liikennettä verkolta, kun taas VPN kuljettaa liikennettä mutta ei poista kirjautumisia tai mitään yksityisessä istunnossa lähetettyä.