VPN per aplikacja w Androidzie i tryb incognito Chrome: co obejmuje reguła
Reguły per aplikacja wybierają pakiety, a nie karty przeglądarki, a powiadomienie pojawia się po pierwszym żądaniu. Sprawdź zakres, czas i wymagane egzekwowanie.
Ktoś zbudował automatyzację, która włącza VPN, gdy pojawi się karta incognito, i nie działa ona niezawodnie. Ma to przyczynę strukturalną i warto ją zrozumieć przed dostrojeniem automatyzacji. Reguły VPN per aplikacja w Androidzie wybierają pakiety aplikacji, a incognito to stan wewnątrz jednego pakietu, więc reguła nie może ich rozróżnić. Powiadomienie uruchamia się po tym, jak przeglądarka już zaczęła pracę, więc nawet poprawny wyzwalacz przychodzi za późno. Przejdź przez poniższe kontrole po kolei; niepowodzenie przy czwartej kontroli oznacza, że zmienić trzeba podejście, a nie konfigurację.
Kontrola pierwsza: potwierdź, co może wybrać reguła per aplikacja
Aplikacja VPN na Androidzie buduje tunel za pomocą list dozwolonych lub wykluczonych aplikacji, a te listy przyjmują nazwy pakietów. Chrome w trybie normalnym i Chrome w trybie incognito to ten sam pakiet, z tym samym identyfikatorem użytkownika i tym samym uprawnieniem sieciowym, więc reguła, która włącza lub wyklucza Chrome, dotyczy obu identycznie. Platforma nie ma tożsamości powiązanej z kartą, z którą mogłaby dopasować.
To nie jest defekt do obejścia; to poziom szczegółowości, jaki oferuje API. Jeśli wymaganiem jest ruch Chrome przez tunel, a wszystko inne na zewnątrz, reguła per aplikacja wyraża to dokładnie. Jeśli wymaganiem jest, aby tylko karty prywatne przechodziły przez tunel, a karty zwykłe szły bezpośrednio, żadna reguła per aplikacja nie może tego wyrazić, a żadna ilość logiki powiadomień nie doda selektora, którego platforma nie ma.
Uważaj na pułapkę tożsamości pakietu podczas sprawdzania. Beta lub kompilacja producenta to inny pakiet niż stabilna przeglądarka, więc reguła obejmująca jeden po cichu pomija drugi:
adb shell pm list packages | grep -i chrome
Kontrola druga: sprawdź, czy wyzwalacz może kiedykolwiek być wystarczająco wczesny
Nasłuchiwacz powiadomień obserwuje powiadomienia, które wolno mu widzieć. Obserwacja nie jest przechwytywaniem: przeglądarka zdążyła już rozwiązać nazwę i otworzyć połączenie, gdy powiadomienie istnieje, i nic na tej ścieżce nie czeka na zakończenie automatyzacji. Zadanie, które następnie uruchamia klienta VPN, musi czekać na interfejs klienta, ewentualne okno zgody i uścisk dłoni tunelu, mierzone w sekundach, podczas gdy pierwsze żądanie mierzy się w milisekundach.
Samo wykrywanie jest kruche z drugiego powodu. Tekst powiadomienia zmienia się między wersjami i lokalizacjami, więc wzorzec dopasowany do jednego wydania przestaje pasować po aktualizacji, a błąd jest cichy. Brak powiadomienia nie jest dowodem na brak prywatnego przeglądania; może oznaczać tylko, że zmienił się ciąg lub kanał został wyciszony.
Istnieje uzasadniona wersja tego przepływu pracy i jest ona uporządkowana, a nie reaktywna: najpierw połącz zatwierdzony VPN, potwierdź sygnał gotowości, który naprawdę dowodzi, że tunel przenosi ruch, następnie otwórz sesję incognito przez obsługiwane kontrolki przeglądarki i zatrzymaj się, jeśli kontrola gotowości nie powiedzie się. Chroni to sesję, którą dopiero zaczynasz, bez udawania, że chronisz już trwającą.
Kontrola trzecia: przejrzyj uprawnienie, które zamierzasz przyznać
Dostęp do powiadomień to wrażliwe uprawnienie, które pozwala usłudze czytać powiadomienia ze wszystkich aplikacji, nie tylko z przeglądarki. Przyznanie go nieznanemu narzędziu automatyzacji do obserwowania jednego stanu przeglądarki to zły interes, a dostęp pozostaje po zakończeniu eksperymentu. Stuknięcia sterowane przez funkcje ułatwień dostępu są gorsze: to warstwa skryptowa nad interfejsem, a nie obsługiwany interfejs sterowania VPN, i psują się przy każdej zmianie układu.
Przed przyznaniem czegokolwiek zapytaj, czy ten sam wynik jest osiągalny za pomocą obsługiwanego mechanizmu. Jeśli odpowiedź brzmi: wymóg polityki, zwykle jest: platforma może wymusić tunel dla aplikacji lub profilu bez żadnej usługi nasłuchującej.
Kontrola czwarta: używaj zawsze włączonego i blokowania, gdy wymogiem jest egzekwowanie
Jeśli przeglądarka nigdy nie może komunikować się poza tunelem, egzekwowanie należy do ustawień platformy, a nie do makra. Android obsługuje VPN zawsze włączony w trybie blokowania, który zapobiega ruchowi, gdy tunel nie jest ustanowiony, a urządzenia zarządzane mogą go otrzymać przez politykę. Potwierdź, co urządzenie ma teraz, zamiast zakładać:
adb shell settings get global always_on_vpn_app
adb shell settings get global always_on_vpn_lockdown
Niezerowa wartość aplikacji oznacza, że pakiet jest skonfigurowany jako zawsze włączony, a wartość blokowania 1 oznacza, że połączenia poza tunelem są blokowane. To ta para zamienia nawyk najlepszych starań w gwarancję i całkowicie usuwa wyścig, ponieważ tunel jest ustanawiany, zanim ruch aplikacji zostanie dozwolony.
Warto tu wymienić dwie granice. Profile pracy mają własną konfigurację VPN, więc reguła sprawdzona w profilu osobistym nic nie mówi o profilu pracy. A przeglądarka zainstalowana osobno, karta niestandardowa otwarta przez inną aplikację lub webview wewnątrz aplikacji to inny pakiet lub kontekst z własnym routingiem, więc sprawdź rzeczywisty pakiet, zamiast zakładać, że okno o innym wyglądzie to osobna domena.
Kontrola piąta: zapisz przepływ pracy i przetestuj ścieżkę awarii
Cokolwiek wybierzesz, udokumentuj kolejność i warunek przerwania. Dla przepływu wygody oznacza to: tunel w górę, gotowość udowodniona, incognito otwarte i twarde zatrzymanie, jeśli gotowość zawiedzie. Dla ścieżki egzekwowania oznacza to: aplikacja zawsze włączona skonfigurowana, blokowanie włączone i oczekiwane zachowanie, gdy tunel w ogóle nie może się podnieść, czyli brak ruchu zamiast ruchu niechronionego.
Następnie przetestuj awarię, nie tylko sukces. Rozłącz tunel w trakcie sesji i zobacz, co robi przeglądarka; zablokuj proces aplikacji VPN i potwierdź, że nic nie wycieka. Na koniec trzymaj dwa modele prywatności osobno w dokumentacji użytkownika: incognito kontroluje tymczasowy stan przeglądarki i nie ukrywa ruchu przed siecią, natomiast VPN przenosi ruch, ale nie usuwa logowań ani niczego wysłanego w sesji prywatnej.