VPN по апликацији на Андроиду и Chrome инкогнито: шта правило покрива
Правила по апликацији бирају пакете, а не картице прегледача, и обавештење стиже после првог захтева. Проверите обухват, време и потребно спровођење.
Неко је направио аутоматизацију која укључује VPN када се појави инкогнито картица, и она не ради поуздано. За то постоји структурни разлог и вреди га разумети пре подешавања аутоматизације. Android правила VPN-а по апликацији бирају пакете апликација, а инкогнито је стање унутар једног пакета, па правило не може да разликује њих двоје. Обавештење се активира пошто је прегледач већ почео да ради, па чак и исправан окидач стиже прекасно. Прођите кроз провере испод редом; неуспех на четвртој провери значи да треба променити приступ, а не конфигурацију.
Прва провера: потврдите шта правило по апликацији може да бира
Android VPN апликација гради свој тунел помоћу листа дозвољених или забрањених апликација, а те листе примају називе пакета. Chrome у нормалном режиму и Chrome у инкогнито режиму су исти пакет, са истим корисничким идентификатором и истом мрежном дозволом, па правило које укључује или искључује Chrome важи за оба исто. Платформа нема идентитет везан за картицу са којим би могла да се упореди.
То није недостатак који треба заобићи; то је ниво детаља који API нуди. Ако је ваш захтев саобраћај Chrome-а кроз тунел и све остало напољу, правило по апликацији то изражава тачно. Ако је ваш захтев да само приватне картице иду кроз тунел док обичне картице иду директно, ниједно правило по апликацији не може то да изрази и никаква количина логике обавештења неће додати бирач који платформа нема.
Пазите на замку идентитета пакета током провере. Бета или издање произвођача је други пакет од стабилног прегледача, па правило које покрива један тихо промашује други:
adb shell pm list packages | grep -i chrome
Друга провера: тестирајте може ли окидач икада бити довољно рано
Посматрач обавештења посматра обавештења која сме да види. Посматрање није пресретање: прегледач је већ разрешио назив и отворио везу док обавештење постоји, и ништа на том путу не чека да ваша аутоматизација заврши. Задатак који затим покреће VPN клијент мора да чека кориснички интерфејс клијента, евентуални захтев за сагласност и руковање тунела, што се мери у секундама, док се први захтев мери у милисекундама.
И сама детекција је крхка због другог разлога. Текст обавештења се мења између верзија и локализација, па образац усклађен са једним издањем престаје да одговара после ажурирања, а неуспех је тих. Обавештење које недостаје није доказ да приватно прегледање не постоји; може да значи само да се низ променио или да је канал утишан.
Постоји легитимна верзија овог тока рада и она је уређена, а не реактивна: прво повежите одобрени VPN, потврдите сигнал спремности који заиста доказује да тунел преноси саобраћај, затим отворите инкогнито сесију преко подржаних контрола прегледача и зауставите се ако провера спремности не успе. То штити сесију коју тек почињете без претварања да штитите ону која већ ради.
Трећа провера: ревидирајте дозволу коју ћете дати
Приступ обавештењима је осетљива дозвола која услузи омогућава да чита обавештења сваке апликације, не само прегледача. Дати је непознатом алату за аутоматизацију ради посматрања једног стања прегледача је лоша замена, а приступ остаје и после завршетка експеримента. Додири вођени приступачношћу су још гори: они су скриптни слој изнад интерфејса, а не подржани интерфејс за управљање VPN-ом, и пуцају при свакој промени изгледа.
Пре него што било шта доделите, питајте да ли је исти исход остварив подржаним механизмом. Ако је одговор захтев политике, обично јесте: платформа може да спроведе тунел за апликацију или профил без икакве услуге слушања.
Четврта провера: користите увек укључено и блокирање када је захтев спровођење
Ако прегледач никада не сме да комуницира изван тунела, спровођење припада подешавањима платформе, а не макроу. Android подржава увек укључен VPN са режимом блокирања који спречава саобраћај када тунел није успостављен, а управљани уређаји могу да га добију политиком. Потврдите шта уређај сада има уместо да претпостављате:
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown
Вредност апликације која није null значи да је пакет конфигурисан као увек укључен, а вредност блокирања 1 значи да су везе изван тунела блокиране. Тај пар претвара навику најбољег труда у гаранцију и уједно потпуно уклања трку, јер се тунел успоставља пре него што је саобраћај апликације дозвољен.
Две границе вреди овде навести. Радни профили имају сопствену VPN конфигурацију, па правило проверено у личном профилу не говори ништа о радном. А посебно инсталиран прегледач, прилагођена картица коју отвори друга апликација или webview унутар апликације је други пакет или контекст са сопственим усмеравањем, па проверите стварни пакет уместо да претпоставите да је другачије стилизован прозор засебан домен.
Пета провера: запишите ток рада и тестирајте пут неуспеха
Шта год да изаберете, документујте редослед и услов прекида. За ток погодности то значи: тунел горе, спремност доказана, инкогнито отворен и тврд застој ако спремност не успе. За пут спровођења то значи: увек укључена апликација конфигурисана, блокирање омогућено и очекивано понашање када тунел уопште не може да се подигне, а то је никакав саобраћај уместо незаштићеног саобраћаја.
Затим тестирајте неуспех, не само успех. Прекините тунел током сесије и погледајте шта прегледач ради; блокирајте процес VPN апликације и потврдите да ништа не цури. На крају, држите два модела приватности одвојено у корисничкој документацији: инкогнито контролише привремено стање прегледача и не скрива саобраћај од мреже, док VPN преноси саобраћај али не брише пријаве ни било шта послато унутар приватне сесије.