VPN d'Android enfront dels permisos de les aplicacions: què significa l'avís
El diàleg de consentiment de la VPN d'Android atorga una posició de paquets, no accés al teu correu, a les fotos ni als contactes. Aquí és on és realment aquesta frontera.
Hi ha dos diàlegs d'Android que es confonen constantment: l'avís de consentiment de la VPN i les peticions de permisos que una aplicació fa per a les teves dades. El primer cedeix una posició de xarxa, el lloc on els paquets es poden llegir i reescriure. El segon cedeix contingut emmagatzemat que Android protegeix aplicació per aplicació. Tractar-los com una sola cosa o bé exagera què pot veure un túnel, o bé subestima molt què demanarà després una aplicació decidida.
Què cedeix realment el diàleg de consentiment
Una aplicació que implementa VpnService i declara BIND_VPN_SERVICE demana al sistema convertir-se en la VPN del dispositiu. Amb l'aprovació, el marc de treball crea una interfície tun i dona a l'aplicació un descriptor de fitxer per a ella. Tot el que fa l'aplicació després flueix per aquest descriptor: llegeix paquets IP cap a fora, decideix què fer-ne i torna a escriure paquets cap a dins.
L'abast d'aquesta interfície és explícit. Les rutes decideixen quines destinacions es capturen, i addAllowedApplication o addDisallowedApplication decideix quines aplicacions hi alimenten dades. Una VPN per aplicació que llista dues aplicacions no veu la resta del dispositiu.
Això és una concessió a nivell de paquet, no a nivell de dades. El servei veu els bytes que una aplicació lliura a la pila de xarxa, adreçats a una destinació. No obté cap accés a l'emmagatzematge privat de l'aplicació emissora, ni als seus fitxers de base de dades, ni a la seva memòria desxifrada. Els fitxers que una aplicació desa dins del seu propi sandbox continuen igual de difícils de llegir que abans.
On s'atura la visió de paquets
TLS continua fent la seva feina dins del túnel, perquè l'apretada de mans es produeix entre l'aplicació i el servidor, no entre l'aplicació i la VPN. La VPN reenvia text xifrat que no pot desxifrar sense les claus de sessió. Per això un túnel sol no revela el contingut d'una pàgina HTTPS ni d'una sessió de correu protegida.
Les metadades al voltant del text xifrat són una altra història, i aquí és on la majoria d'afirmacions segures es desfan. La IP de destinació, el port, les mides dels paquets i el moment són tots visibles, a més del nom del servidor dins del TLS ClientHello, que normalment s'envia en clar fins i tot amb TLS 1.3. L'Encrypted Client Hello ho canvia, però no és universal. El DNS pla filtra noms igual de fàcilment quan les consultes surten sense xifrar.
Els protocols més antics o mal configurats cedeixen més. L'HTTP pla, l'IMAP sense TLS i diversos protocols de jocs i d'IoT exposen les seves càrregues útils a qualsevol que tingui el descriptor tun.
Els permisos que mai no vénen amb això
Aprovar una VPN no aprova contactes, SMS, fotos ni la mediateca. Són concessions d'execució separades, cadascuna amb el seu propi diàleg i la seva pròpia via de revocació a la pàgina de configuració de l'aplicació. Un client VPN que vulgui el teu registre de trucades l'ha de demanar com qualsevol altra aplicació, i pots negar-t'hi mantenint el túnel.
La instal·lació de certificats és la que cal vigilar, perquè sembla part de la configuració de la VPN i no ho és. Instal·lar una CA d'usuari al magatzem de credencials canvia quins certificats acceptarà Android, i des d'Android 7.0 una aplicació dirigida a l'API 24 o posterior ignora les CA afegides per l'usuari tret que la seva configuració de seguretat de xarxa hi opti amb un ancoratge de confiança d'usuari. Un client que insisteix a instal·lar una CA pot estar fent intercepció empresarial legítima, o pot estar demanant una cosa que el diàleg de la VPN no va esmentar mai.
L'accés d'accessibilitat queda encara més enfora. Un servei amb l'accessibilitat activada pot llegir el contingut de la pantalla d'altres aplicacions, cosa que cap posició a nivell de paquet proporciona.
Filtre local o passarel·la remota
La mateixa API cobreix dos productes que mereixen nivells de confiança diferents. Un tallafoc o bloquejador de publicitat al dispositiu pren el descriptor tun i respon al trànsit localment, sense enviar-lo mai a un servidor que ell mateix exploti. Un túnel real reenvia aquests paquets a una passarel·la en un altre lloc, i aquest operador veu les mateixes metadades des de l'altre extrem i també decideix què torna.
Una manera pràctica de distingir-los és comprovar la teva adreça pública amb la VPN activada i desactivada, i mirar si la notificació anomena un punt final remot. Si l'adreça no canvia mai, el trànsit probablement està fent un bucle al mateix dispositiu.
Tots dos casos segueixen sent una posició de paquets. La diferència és qui més hi ha a la sortida.
Audita què has aprovat
Obre la Configuració, després Xarxa i internet, després VPN, i llegeix l'entrada en lloc de la icona de la barra d'estat. La VPN sempre activa i Bloca les connexions sense VPN són ajustos del dispositiu que mantenen la interfície viva i tallen fuites; no amplien res. Des de la mateixa pantalla pots oblidar el perfil i revocar la concessió.
Després recorre els altres permisos. La informació de l'aplicació mostra quines concessions d'execució té el client, i la configuració de Seguretat mostra si es va instal·lar alhora un certificat d'usuari. Qualsevol dels dos es pot eliminar de manera independent.
La pregunta que val la pena respondre és estreta: quins paquets entren en aquest servei, on van i què guarda la implementació. Tota la resta del diàleg és soroll. La referència de VpnService és la llista autoritzada del que exposa la interfície.