Qualcuno ha creato un'automazione che accende la VPN quando compare una scheda in incognito, e non funziona in modo affidabile. C'è una ragione strutturale, e vale la pena capirla prima di regolare l'automazione. Le regole VPN per app di Android selezionano pacchetti applicativi, e l'incognito è uno stato all'interno di un pacchetto, quindi la regola non può distinguere i due. Una notifica scatta dopo che il browser ha già iniziato a lavorare, quindi anche un trigger corretto arriva tardi. Segui i controlli qui sotto in ordine; un fallimento al quarto controllo significa che è l'approccio, non la configurazione, a dover cambiare.

Controllo uno: conferma cosa può selezionare la regola per app

Un'app VPN Android costruisce il suo tunnel con elenchi di app consentite o escluse, e quegli elenchi accettano nomi di pacchetto. Chrome in modalità normale e Chrome in modalità incognito sono lo stesso pacchetto, con lo stesso id utente e lo stesso permesso di rete, quindi una regola che include o esclude Chrome si applica a entrambi allo stesso modo. Non esiste un'identità legata alla scheda che la piattaforma possa confrontare.

Non è un difetto da aggirare; è la granularità che l'API offre. Se il tuo requisito è il traffico di Chrome nel tunnel e tutto il resto fuori, una regola per app lo esprime esattamente. Se il tuo requisito è che solo le schede private passino nel tunnel mentre quelle ordinarie vanno dirette, nessuna regola per app può esprimerlo, e nessuna quantità di logica di notifica aggiungerà un selettore che la piattaforma non ha.

Fai attenzione alla trappola dell'identità del pacchetto durante il controllo. Una beta o una build di un produttore è un pacchetto diverso dal browser stabile, quindi una regola che copre uno manca silenziosamente l'altro:

adb shell pm list packages | grep -i chrome

Controllo due: verifica se il trigger può mai essere abbastanza precoce

Un listener di notifiche osserva le notifiche che è autorizzato a vedere. L'osservazione non è intercettazione: il browser ha già risolto il nome e aperto la connessione quando la notifica esiste, e nulla in quel percorso aspetta che la tua automazione finisca. Un'attività che poi avvia il client VPN deve attendere l'interfaccia del client, qualsiasi richiesta di consenso e l'handshake del tunnel, misurati in secondi, mentre la prima richiesta è misurata in millisecondi.

Il rilevamento stesso è fragile per una seconda ragione. Il testo delle notifiche cambia tra versioni e localizzazioni, quindi un modello abbinato a una versione smette di corrispondere dopo un aggiornamento, e il guasto è silenzioso. Una notifica mancante non è prova che la navigazione privata sia assente; può solo significare che la stringa è cambiata o che il canale è stato silenziato.

Esiste una versione legittima di questo flusso di lavoro, ed è ordinata anziché reattiva: connetti prima la VPN approvata, conferma un segnale di prontezza che dimostri davvero che il tunnel trasporta traffico, poi apri la sessione in incognito tramite i controlli del browser supportati, e fermati se il controllo di prontezza fallisce. Questo protegge la sessione che stai per iniziare senza fingere di proteggere quella già in corso.

Controllo tre: controlla il permesso che stai per concedere

L'accesso alle notifiche è una concessione sensibile che consente a un servizio di leggere le notifiche di ogni app, non solo del browser. Concederla a uno strumento di automazione sconosciuto per sorvegliare un solo stato del browser è un cattivo scambio, e l'accesso persiste dopo la fine dell'esperimento. I tocchi guidati dall'accessibilità sono peggio: sono uno strato di script sopra l'interfaccia, non un'interfaccia di controllo VPN supportata, e si rompono a ogni cambio di layout.

Prima di concedere qualcosa, chiediti se lo stesso risultato è raggiungibile con un meccanismo supportato. Se la risposta è un requisito di policy, di solito lo è: la piattaforma può imporre un tunnel per un'app o un profilo senza alcun servizio in ascolto.

Controllo quattro: usa sempre attivo e blocco quando il requisito è l'applicazione

Se il browser non deve mai comunicare fuori dal tunnel, l'applicazione appartiene alle impostazioni della piattaforma, non a una macro. Android supporta una VPN sempre attiva con una modalità di blocco che impedisce il traffico quando il tunnel non è stabilito, e i dispositivi gestiti possono riceverla tramite policy. Conferma ciò che il dispositivo ha ora invece di presumerlo:

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

Un valore dell'app non nullo significa che un pacchetto è configurato come sempre attivo, e un valore di blocco pari a 1 significa che le connessioni fuori dal tunnel sono bloccate. È questa coppia che trasforma un'abitudine al meglio che si può in una garanzia, e rimuove anche del tutto la corsa, perché il tunnel viene stabilito prima che il traffico dell'app sia consentito.

Due confini meritano di essere detti qui. I profili di lavoro portano la propria configurazione VPN, quindi una regola verificata nel profilo personale non dice nulla su quello di lavoro. E un browser installato separatamente, una scheda personalizzata aperta da un'altra app o una webview dentro un'app sono un pacchetto o contesto diverso con il proprio routing, quindi verifica il pacchetto reale invece di presumere che una finestra dallo stile diverso sia un dominio separato.

Controllo cinque: scrivi il flusso di lavoro e prova il percorso di guasto

Qualunque cosa scegli, documenta l'ordine e la condizione di interruzione. Per il flusso di comodità significa: tunnel attivo, prontezza dimostrata, incognito aperto e arresto netto se la prontezza fallisce. Per il percorso di applicazione significa: app sempre attiva configurata, blocco abilitato e il comportamento atteso quando il tunnel non riesce affatto a salire, cioè nessun traffico invece di traffico non protetto.

Poi prova il guasto, non solo il successo. Disconnetti il tunnel durante una sessione e guarda cosa fa il browser; blocca il processo dell'app VPN e conferma che nulla fuoriesca. Infine, tieni separati i due modelli di privacy nella documentazione utente: l'incognito controlla lo stato temporaneo del browser e non nasconde il traffico alla rete, mentre una VPN trasporta il traffico ma non cancella gli accessi o qualsiasi cosa inviata nella sessione privata.

Articoli correlati