domingo, 11 de enero de 2015

Proyecto Redes: Parte XIII

Hoy, para acabar con el proyecto, voy a hablar de un par de casos de proxys.

El primero son las extensiones de navegador. Existen extensiones disponibles, como Hola (gracias, kisi89), DotVPN o ZenMate. Todas estas extensiones (si, incluida DotVPN, a pesar del nombre) son proxys a pesar de sus nombres, y son bastante utiles por su forma de instalarse (a veces es suficiente con proporcionarles un correo electronico) y de manejarse. Por lo general os valdrán para engañar a los servidores de destino haciendo creer que estais en otro sitio. Aun así, os recuerdo de nuevo que las conexiones pasan por servidores de terceros y por tanto no debeis enviar informacion confidencial sin codificar.

El segundo, es un proxy conocido como Tor (The onion routing). El sistema es mas complejo, ya que se trata de convertir el PC que utilizas en un proxy en si mismo. No conozco muy bien los detalles, asi que cualquier error en este caso es involuntario.

Se ejecuta un programa (tor) que descarga un listado de equipos. Esos equipos tienen un sistema de encriptacion por el cual puedes encriptar los paquetes para que solo los puedan leer ellos. Tor se encarga de encriptar varias veces esos paquetes y enviarlos por una ruta aleatoria trazada entre al menos 3 equipos.

Supongamos que tenemos un paquete que queremos enviar desde nuestro equipo al de Amigo 1.
-Descargamos una lista de equipos y conseguimos las claves de Conocido 1, Conocido 2 y Conocido 3.
-Entonces establecemos una ruta: queremos que nuestro paquete vaya a traves de ese orden: Conocido 1, Conocido 2, Conocido 3 y Amigo 1.
-Codificamos el paquete que queremos enviar con la clave de Conocido 3 y dejamos indicaciones de que envie la informacion del paquete a Amigo 1.
-Codificamos de nuevo el paquete que ya habiamos codificado, ahora con la clave de Conocido 2 y le damos indicaciones de que debe enviarlo a Conocido 3. Conocido 2 ya no sabe nada sobre el paquete original.
-Codificamos de nuevo con la clave de Conocido 1 el paquete que tenemos y se lo enviamos junto con las indicaciones de enviarlo a Conocido 2.
-Conocido 1 descodifica el paquete que le ha llegado. Sabe que su destino es Conocido 2. No sabe ni el contenido del paquete, ni el destino final. Ni siquiera sabe que ocurrirá despues de enviarselo a Conocido 2, asi que se lo envia a Conocido 2.
-Conocido 2 hace lo mismo. Sabe que se lo envio Conocido 1, pero no sabe quien lo envió originalmente a Conocido 1. Tampoco conoce el destino final, sabe unicamente que tiene que enviarlo a Conocido 3. Por supuesto, tampoco conoce el contenido del paquete.
-Conocido 3 recoge el paquete y lo descodifica, recibiendo el paquete original, y lo envia a Amigo 1. No sabe quien se lo envió.

Esto funciona por capas, como una cebolla (onion) y protege el paquete de que se conozca su contenido, su origen o su destino. El unico que conoce el contenido y el destino es Conocido 3, y el unico que conoce el origen es Conocido 1.

Podeis probarlo descargando el paquete disponible en torproject.org y usando el navegador que os proporciona. No necesitareis, en principio, ninguna modificación.

Como podreis comprobar y debido a que debe pasar por varios equipos y codificarse y descodificarse en varias ocasiones, el sistema no es demasiado adecuado para su uso con programas de P2P. Es perfectamente posible configurarlo, pero la velocidad se ve especialmente mermada.

Bueno, con esto doy ya por concluido el proyecto, o al menos sus objetivos originales. Si lo habeis seguido entero ya comprendeis los principales terminos que os podeis encontrar y os servirá para poder entender explicaciones sencillas en foros tecnicos.

Si necesitais que os aclare cualquier cosa (o simplemente saludar), solo teneis que dejarme algun comentario en cualquiera de los posts del proyecto y os lo intentare contestar. Incluso si es algo que requiera una explicación en profunidad podría haber algun post adicional.

Por el momento me despido, y me preparo para proximos proyectos. Un saludo.

No hay comentarios:

Publicar un comentario