El problema aquí es que Orbot está construido como un proxy de red, en lugar de un servicio VPN, y Android no expone ninguna API para el proxy crudo de los paquetes de red.
Por el Descripción de Orbot en F-Droid :
Orbot permite el acceso a Tor accediendo a un proxy local SOCKS o HTTP. En un dispositivo rooteado, el proxy puede ser completamente transparente, es decir, la aplicación que accede a la red no tiene por qué ser consciente de la existencia del proxy.
La importante distinción aquí es que Orbot está actuando como un proxy no una VPN. Por lo tanto, tiene dos opciones para enrutar el tráfico de la aplicación:
- Trabaja en base a cada aplicación, con el usuario configurando los ajustes de proxy en cada aplicación que quiere ejecutar a través de Orbot. No se necesita Root para eso, ya que cada aplicación dirigirá apropiadamente su propio tráfico a Orbot.
- Trabajar en todo el sistema mediante el cambio de ruta todos el tráfico de la red.
Android no proporciona ninguna API para acceder o redirigir el tráfico de red arbitrario porque esto sería, por supuesto, inseguro. Por lo tanto, Orbot debe recurrir a usando iptables
el cortafuegos manda en su lugar que requiere acceso a root. Una aplicación VPN, por otra parte, es capaz de aprovechar la VpnService
API para construir una conexión VPN.
La principal diferencia aquí es que el sistema está profundamente involucrado en la creación y gestión de una conexión VPN, incluso cuando es inicializada por una aplicación de terceros. El usuario debe seguir aprobando la conexión y el sistema proporciona una notificación y diálogos de información que (en teoría, de todos modos) no pueden ser ocultados o manipulados. El sistema también es responsable de establecer la interfaz de la red virtual que se utiliza para el túnel.
No estoy enteramente al tanto del protocolo Tor, por lo que podría ser que actuar como apoderado sea la única solución factible en este momento. Si ese es el caso, entonces simplemente no pueden evitar el requisito de root para el enrutamiento de todo el sistema.
0 votos
AFAIK Orbot permite el proxy transparente (específicamente VPN) sin Root, pero los ajustes específicos de la aplicación (listas de inclusión y exclusión) sólo son posibles con el permiso de Root debido a la necesidad de alterar las tablas ip.
0 votos
No es así. El proxy transparente con Orbot requiere Root
0 votos
Pues yo nunca he usado Orbot sin Root por las listas específicas donde puedo habilitar Orbot sólo para algunas apps y no para todas. El proxy transparente oculta el hecho de que estás usando una VPN/proxy, tal vez eso necesita Root.
0 votos
Esto probablemente se reduce al hecho de que Tor no es una VPN. Android tiene una API para que las aplicaciones configuren VPNs, pero Orbot presumiblemente no puede aprovecharlas. Supongo que funciona de forma más parecida a algo como Wireshark, en el sentido de que intercepta paquetes en todo el sistema y los modifica. Android no tiene una API para eso (AFAIK). No conozco los fundamentos de Orbot lo suficientemente bien como para saber si ese es realmente el caso, sin embargo.
0 votos
Esa API tendría que implementar básicamente la capa VPN. Mientras una aplicación consiga actuar como un puente de red, debería ser capaz de enrutar a través de Tor.
0 votos
De hecho, aparentemente esto existe github.com/guardianproject/OrbotVPN
2 votos
Fíjese un poco más en mi redacción: la API permite que una aplicación configurar una VPN no actuar como una VPN . Es decir, permite que las aplicaciones añadan nuevas entradas de VPN a la configuración del sistema, tal y como lo haría un usuario a mano, para luego activar y desactivar la conexión y enviar/recibir datos a través del túnel del sistema. La aplicación en sí no está actuando como un puente de red ni nada por el estilo en ese escenario, sólo está creando una entrada de configuración y activándola para que pueda hablar con ella. El sistema operativo sigue haciendo todo el enrutamiento de la red. No sé si Orbot necesita un acceso más profundo a los paquetes, pero parece que sí.
0 votos
@eldarerathis Eso me parece una respuesta - sobre todo esbozando las diferencias entre "configurar" y "actuar como". Al menos es un mejor "candidato a respuesta" que la única respuesta que existe actualmente aquí :)
0 votos
Definitivamente, lo aceptará con gusto como tal