Como autor de NetGuard, tengo experiencia de primera mano en este campo.
Una desventaja de un firewall basado en una VPN local es que no se pueden manejar todos los tipos de tráfico, porque el kernel de Linux (Android) no permite reenviar todos los tipos de tráfico a través de una conexión basada en socket. Un ejemplo es IPsec, que algunos fabricantes utilizan para llamadas IP. Una solución parcial (no para IPsec) para esto sería usar un servidor VPN remoto para reenviar el tráfico, pero esto no es aceptable en términos de privacidad para muchas personas y vendría con una complejidad adicional y probablemente también con un uso adicional de la batería. En la práctica, el manejo del tráfico TCP y UDP parece ser suficiente para el 99,9% de los usuarios de NetGuard. Dado que Android 5 es posible excluir las aplicaciones de ser enrutadas a la VPN (la aplicación de implementación de VPN decide si esto es obligatorio u opcional), que se puede utilizar para abordar los problemas derivados de no poder reenviar todo el tráfico. Otra opción es excluir direcciones (rangos), que NetGuard utiliza para "arreglar" las llamadas IP para algunos fabricantes.
Otra desventaja es que el tráfico de reenvío aumentará el uso de la batería en los dispositivos móviles, ya que implica cierto procesamiento, ya que los paquetes deben ser inspeccionados y reenviados. Usar iptables, que está integrado en el kernel de Linux, es más eficiente y, por lo tanto, más amigable con la batería.
En general, parece que Android enruta todo el tráfico a la VPN, incluso el tráfico de las aplicaciones y componentes del sistema, pero un fabricante podría decidir excluir ciertos tipos de tráfico, reduciendo la seguridad que puede lograr un firewall basado en VPN.
NetGuard no analiza los datos en sí, a excepción de las solicitudes de DNS para proporcionar el bloqueo de anuncios, pero si lo hiciera, podría plantear un problema de privacidad. Sin embargo, desde el punto de vista técnico, esta es una ventaja de un firewall basado en VPN (si todavía quiere llamarlo así), ya que permitiría una inspección completa del estado de los flujos de datos más allá de lo que es posible con iptables. Esto probablemente sería a costa del uso de la batería, debido al procesamiento involucrado. Tenga en cuenta que requeriría un ataque MiT local para inspeccionar las transmisiones SSL.
Otra desventaja es que Android no permite el encadenamiento de VPN, por lo que el uso de una VPN local para implementar un firewall evitará el uso de un servicio VPN real, a menos que el firewall brinde dicho servicio en sí mismo o, alternativamente, un mecanismo de reenvío o proxy a otra VPN solicitud.
Por último, un firewall basado en VPN depende de la aplicación que proporciona el servicio VPN de firewall que se está ejecutando. Esto parece ser trivial, pero no lo es, porque algunas versiones / variantes de Android del fabricante están eliminando demasiado agresivamente los procesos en condiciones de poca memoria (en mi humilde opinión, es un error si Android mata las aplicaciones que proporcionan un servicio VPN).
Finalmente, el rooteo de dispositivos Android se está volviendo cada vez más difícil, dejando un firewall basado en VPN como la única opción para muchas personas. No espero que Google agregue un firewall basado en el sistema en el corto plazo, ya que podría afectar significativamente sus ingresos por publicidad. iOS tiene un firewall basado en el sistema.
Avíseme si hay alguna pregunta e intentaré responderla.
Que yo sepa, es el enfoque:
Los firewalls basados en raíz usan IPFilter / iptables para controlar el flujo. Esto se aplica automáticamente a todas las aplicaciones, ya sea que haya una conexión de red disponible o no, si el enrutamiento funciona completamente o no, o si se encuentra en un "entorno cerrado" (Intranet) sin acceso al "mundo exterior". "(Internet). Las aplicaciones que tienes bloqueadas están bloqueadas. En un nivel bastante bajo.
Los firewalls no root no tienen acceso a ese nivel bajo, por lo que deben usar soluciones alternativas. En la mayoría de los casos, esto se hace utilizando las instalaciones de VPN de Android . Dependiendo de la implementación, esto funciona completamente en el dispositivo (es decir, independientemente de la conexión de red que esté disponible), o mediante "servicios externos" (que lo conectan a la VPN del proveedor de la aplicación). En el último caso, las cosas se rompen tan pronto como ese servicio deja de estar disponible, un hecho que puede notar o no. En cualquier caso, no estoy seguro de si realmente todas las aplicaciones cumplen con la VPN o si hay formas de evitarlo. 1 Otro hecho desagradable con las VPN sobre las que he leído es la molesta notificación permanente que aparece, diciendo "Su red podría ser monitoreada"- pero AFAIK que solo debería aparecer si la aplicación en cuestión necesita su propio certificado instalado. 2
Veredicto: personalmente confiaría más en una solución basada en raíz. Pero donde el enraizamiento no es una opción, las soluciones no root deberían ser casi tan buenas. En ese caso, mi recomendación iría hacia soluciones de código abierto como NetGuard (su desarrollador también hizo Xprivacy y es de confianza). Hablando de eso: para más detalles, eche un vistazo a la introducción de XDA de NetGuard , que explica los antecedentes con más detalles.
1 No estoy familiarizado con los detalles técnicos detrás de la implementación de VPN de Android, pero citando a WhiteWinterWolf (vea el comentario a continuación), depende del sistema base de Android hacer cumplir esto, no hay razón para pensar que esto no se hace correctamente.
2 Nuevamente citando a WhiteWinterWolf: la API VPN utilizada por NetGuard permite que todos los datos sean interceptados por una aplicación no privilegiada, esto es lo que Android considera efectivamente como "monitoreo", no tiene relación con ningún certificado y esta advertencia es una consecuencia inevitable y esperada de usando esta API.
fuente
Creo que una característica importante a tener en cuenta sobre Netguard sería la capacidad de filtrar direcciones específicas por aplicación. Esta es una opción paga.
No puedo decir VPN basada en certificados vs iptables. Eso probablemente dependerá de su versión de kernel y Android para iptables y para NetGuard, los algoritmos utilizados para cifrar los datos, si se están registrando y dónde se almacenan. Mi respuesta puede no ser tan técnica como la que estaba buscando y, como usuario de AFWall + (versión de donación) desde hace mucho tiempo, definitivamente soy parcial. Sin embargo, sé que el desarrollador de NetGuard también mantiene activamente XPrivacy, un administrador de privacidad de Android muy conocido / confiable y robusto. AFWall + no se ha abandonado en absoluto, pero definitivamente no ha recibido una actualización tan recientemente como NetGuard. Ambos emplean diferentes métodos para mantener el control del tráfico, pero en última instancia, creo que depende en gran medida del usuario qué tan segura es cualquier parte de su dispositivo.
fuente