VPN de Android fronte aos permisos das aplicacións: que significa o aviso
O diálogo de consentimento da VPN de Android concede unha posición de paquetes, non acceso ao teu correo, ás túas fotos nin aos teus contactos. Aquí está realmente esa fronteira.
Dous diálogos de Android confúndense constantemente: o aviso de consentimento da VPN e as solicitudes de permisos que unha aplicación fai sobre os teus datos. O primeiro entrega unha posición de rede, o punto onde os paquetes se poden ler e reescribir. O segundo entrega contido almacenado que Android protexe aplicación por aplicación. Tratalos como unha soa cousa ou ben exaxera o que un túnel pode ver, ou ben subestima gravemente o que pedirá despois unha aplicación decidida.
Que entrega realmente o diálogo de consentimento
Unha aplicación que implementa VpnService e declara BIND_VPN_SERVICE pide ao sistema converterse na VPN do dispositivo. Tras a aprobación, o marco de traballo crea unha interface tun e entrega á aplicación un descritor de ficheiro para ela. Todo o que a aplicación fai despois flúe por ese descritor: le paquetes IP cara a fóra, decide que facer con eles e volve escribir paquetes cara a dentro.
O alcance desa interface é explícito. As rutas deciden que destinos se capturan, e addAllowedApplication ou addDisallowedApplication decide que aplicacións a alimentan. Unha VPN por aplicación que lista dúas aplicacións non ve o resto do dispositivo.
Iso é unha concesión a nivel de paquete, non a nivel de datos. O servizo ve os bytes que unha aplicación entrega á pila de rede, dirixidos a un destino. Non obtén ningunha vía de acceso ao almacenamento privado da aplicación emisora, aos seus ficheiros de base de datos nin á súa memoria descifrada. Os ficheiros que unha aplicación gardou dentro do seu propio sandbox seguen exactamente igual de difíciles de ler que antes.
Onde se detén a visión de paquetes
TLS segue facendo o seu traballo dentro do túnel, porque o apretón de mans ocorre entre a aplicación e o servidor, non entre a aplicación e a VPN. A VPN reenvía texto cifrado que non pode descifrar sen as claves de sesión. Por iso un túnel por si só non revela o contido dunha páxina HTTPS nin dunha sesión de correo protexida.
Os metadatos arredor do texto cifrado son outra historia, e aquí é onde se desmoronan a maioría das afirmacións seguras. A IP de destino, o porto, os tamaños de paquete e a temporización son visibles, ademais do nome do servidor no TLS ClientHello, que normalmente se envía en claro mesmo con TLS 1.3. Encrypted Client Hello cambia iso, pero non é universal. O DNS simple filtra nomes coa mesma facilidade cando as consultas saen sen cifrar.
Os protocolos máis antigos ou mal configurados entregan máis. HTTP simple, IMAP sen TLS e varios protocolos de xogos e de IoT expoñen as súas cargas útiles a calquera cousa que teña o descritor tun.
Os permisos que nunca veñen con isto
Aprobar unha VPN non aproba contactos, SMS, fotos nin o almacén multimedia. Son concesións de execución separadas, cada unha co seu propio diálogo e a súa propia ruta de revocación na páxina de axustes da aplicación. Un cliente VPN que queira o teu rexistro de chamadas ten que pedilo como calquera outra aplicación, e podes negarte mantendo o túnel.
A instalación de certificados é a que hai que vixiar, porque parece parte da configuración da VPN e non o é. Instalar unha CA de usuario no almacén de credenciais cambia que certificados aceptará Android, e desde Android 7.0 unha aplicación dirixida á API 24 ou posterior ignora as CA engadidas polo usuario a menos que a súa configuración de seguridade de rede o habilite cunha áncora de confianza de usuario. Un cliente que insiste nunha CA pode estar facendo interceptación empresarial lexítima, ou pode estar pedindo algo que o diálogo da VPN nunca mencionou.
O acceso de accesibilidade está aínda máis fóra. Un servizo coa accesibilidade activada pode ler o contido de pantalla doutras aplicacións, algo que ningunha posición a nivel de paquete proporciona.
Filtro local ou pasarela remota
A mesma API cobre dous produtos que merecen niveis de confianza diferentes. Un cortalumes ou bloqueador de anuncios no dispositivo toma o descritor tun e responde ao tráfico localmente, sen enviarlle nunca a un servidor que el mesmo opera. Un túnel real reenvía eses paquetes a unha pasarela noutro lugar, e ese operador ve os mesmos metadatos desde o outro extremo e ademais decide que volve.
Unha forma práctica de distinguilos é comprobar o teu enderezo público coa VPN activada e desactivada, e mirar se a notificación nomea un punto final remoto. Se o enderezo nunca cambia, o tráfico probablemente está a volver sobre o propio dispositivo.
Ambos os casos seguen sendo unha posición de paquetes. A diferenza é quen máis está na saída.
Audita o que aprobaches
Abre Axustes, logo Rede e internet, logo VPN, e le a entrada en lugar da icona da barra de estado. A VPN sempre activa e Bloquear conexións sen VPN son axustes do dispositivo que manteñen viva a interface e cortan fugas; non amplían nada. Desde esa mesma pantalla podes esquecer o perfil e revogar a concesión.
Despois percorre os demais permisos. A información da aplicación mostra que concesións de execución ten o cliente, e os axustes de Seguridade mostran se se instalou ao mesmo tempo un certificado de usuario. Calquera dos dous pódese eliminar de forma independente.
A pregunta que merece resposta é estreita: que paquetes entran neste servizo, a onde van e que conserva a implementación. Todo o demais no diálogo é ruído. A referencia de VpnService é a lista autorizada do que expón a interface.