IP solo a través de HTTP GET

2

Considere el siguiente escenario: hay un cliente detrás de un firewall realmente estricto. No hay casi nada disponible para 'conectarse a internet'. Solo resolución de DNS y HTTP / HTTPS (se pueden visitar algunos sitios incluidos en la lista blanca como Google; otros se redirigen a la página 'el sitio fue bloqueado').

La idea era construir algún tipo de proxy utilizando solo las solicitudes de obtención de http (usando este servicio de google como proxy que funciona bien pero carece de soporte de solicitud de publicación css / http)

¿Crees que eso es posible o conoces el software que es capaz de hacer esto? ¿O tal vez otra forma de lograr acceso a internet sin restricciones en estas circunstancias?

PS: el uso de DNS para hacer un túnel de todo el tráfico funciona, pero por supuesto es realmente lento.

    
pregunta Omegavirus 14.04.2015 - 14:34
fuente

3 respuestas

2
  

¿Crees que eso es posible o conoces el software que es capaz de hacer esto? ¿O tal vez otra forma de lograr acceso a internet sin restricciones en estas circunstancias?

Si tiene el control de un servidor accesible por el servicio que mencionó, entonces podría construir su propio túnel, porque

  • puede enviar datos a través del túnel al servidor (a través de la URL de la solicitud)
  • y puede recibir datos a través del túnel desde el servidor (a través de la respuesta)

Lo que significa que todo lo que tienes que hacer es escribirte los controladores locales y remotos apropiados para traducir entre tu protocolo de túnel y la solicitud / respuesta HTTP.

No tengo conocimiento de ningún software existente que funcione dentro de sus restricciones específicas ( enlace probablemente esté fuera de sus restricciones ), pero es posible escribir algo como esto y ayudarlo a eludir las políticas de seguridad específicas estaría fuera del alcance de este foro de todos modos.

Y siempre recuerde que las políticas de seguridad a menudo están ahí para proteger algo y que podría meterse en problemas cuando intente eludir estas políticas, como perder el trabajo o incluso cobrar por los intentos de piratería. Y tales túneles pueden detectarse porque muestran un comportamiento de uso anormal.

    
respondido por el Steffen Ullrich 14.04.2015 - 15:43
fuente
1

El principal problema con el túnel IP en las solicitudes GET de HTTP es que HTTP es un protocolo impulsado por el cliente: el cliente siempre habla primero y el servidor no puede enviar nada al cliente, como respuesta a una solicitud. En TCP / IP puro, ambas partes deben poder hablar cuando lo deseen.

Los dos métodos principales para resolver este problema son:

  1. Sondeo . El cliente envía solicitudes a intervalos muy regulares, digamos al menos una o dos veces por segundo. El servidor responde con un fragmento de datos o un mensaje que dice "nada que enviar en ese momento".

  2. Bloqueo . El cliente envía una solicitud, pero el servidor no responde hasta que efectivamente tiene algunos datos para enviar al cliente, o una cierta cantidad de tiempo ha transcurrido. De cualquier manera, cuando ha recibido una respuesta, el cliente envía inmediatamente una nueva solicitud, para el siguiente fragmento de datos.

El mecanismo de bloqueo es más discreto y requiere menos recursos; sin embargo, es más complejo de configurar y operar, especialmente porque el cliente necesita dos canales, para enviar y recibir paquetes encapsulados. El terminal-over-Web Anyterm utiliza el mecanismo de bloqueo; sin embargo, lo hace con XmlHttpRequest, que envía solicitudes POST, no GET. Consulte también el protocolo BOSH , que utiliza el mismo principio, que se explica con más detalles en la sección 4.

El concepto se puede aplicar a las solicitudes HTTP GET; probablemente tendría que codificar los datos salientes en la ruta de destino, o como un encabezado personalizado, ya que se supone que las solicitudes HTTP GET no tienen cuerpos no vacíos (el estándar HTTP lo permite, pero no se supone que suceda en la práctica, y creo que haría que el firewall sea muy sospechoso).

No conozco ninguna herramienta existente, pero este es un buen ejercicio de programación.

Por supuesto, pasar la configuración del firewall es solo una parte del tema. Supongo que quienquiera que ponga restricciones tan pesadas en las solicitudes web también instalará algunos dispositivos de monitoreo para recibir advertencias sobre actividades inusuales de la red, y cualquier tunelización debería activar tal sistema.

    
respondido por el Thomas Pornin 11.09.2015 - 20:06
fuente
1

Mientras no se bloqueen los servicios habilitados al frente (redes de distribución de contenido como Google Apps Engine, Amazon CloudFront, Azure CDN; estos servicios sirven el contenido de una gran cantidad de sitios que generalmente son difíciles de bloquear), puede encapsular un Solicitud HTTP GET dentro de una solicitud HTTP GET para estos servicios.

Mire el Meek transporte plugin que Tor tiene y que implementa esta idea. También puede encontrar más información técnica en GitHub , y Tor también propone otros complementos de transporte que pueden ser útiles.

    
respondido por el Citizen 11.09.2015 - 20:29
fuente

Lea otras preguntas en las etiquetas