Está en la página 1de 31

CASI TODO SOBRE TOR

-1-
Casi todo sobre tor
por kudrom

Este documento se distribuye bajo una licencia Creative Commons de


Reconocimiento 2.5 Espaa. Usted es libre de:

Copiar, distribuir y comunicar pblicamente la obra

Hacer obras derivadas

Bajo las condiciones siguientes:

Puede descargar la versin ms reciente de la licencia Creative Commons en la


pgina http://creativecommons.org/
Puede consultar los artculos originales en la pgina http://www.pillateunlinux.com

-2-
TOR (parte I)

Tor es un proyecto de software libre que te ayuda a defenderte contra cualquier tipo
de vigilancia que amenace tu libertad personal y privacidad. As es como los
desarrolladores de tor definen la navaja suiza del anonimato. En este artculo voy a
tratar de explicar qu es y qu hace tor. Para todos aquellos que no conozcis este
proyecto, basta con decir que es una de las bases de WikiLeaks; si alguna vez has
necesitado navegar annimamente, sigue leyendo.
Llevo bastante tiempo queriendo escribir sobre tor, el motivo que me lo ha impedido
es que no dispona de suficiente tiempo. Para hacerse una idea de tor hay que
aplicar muchos conceptos. Por este motivo me he decido a hablaros de tor en tres
captulos.

- El primero es este, que va a intentar explicar el funcionamiento bsico de un


programa de anonimato.
- El segundo tratar del funcionamiento especfico de tor.
- El tercero se adentrar en la configuracin de las herramientas que nos
proporciona tor.
- El cuarto tratar de las vulnerabilidades y alternativas de este proyecto de
anonimato.
S que puede parecer un poco extenso, pero quiero que conozcis el
funcionamiento de un proyecto que admiro especialmente. El hecho de que sea
FLOSS hace que merezca la pena gastar mis energas en acercaros el que yo creo
que es uno de los mejores proyectos libres que existen actualmente. Si te ha picado
la curiosidad (espero que s) y nunca habas odo hablar de tor, coge aire y salta al
siguiente prrafo.
Para hablar de tor primero tengo que explicar brevemente un pilar fundamental de
internet: el protocolo TCP. Solo voy a decir, para no aburriros, que el protocolo TCP
se encarga de la transmisin de los paquetes. Cuando navego por internet, pido
continuamente al servidor que hospeda la pgina web, la informacin que define la
pgina. Con esa informacin el navegador puede construir la pgina web. Pero,
cmo le llega al navegador la informacin? En forma de paquetes TCP.
Estos paquetes TCP (datagramas) estn formados por dos partes, la primera es la
cabecera, y la segunda son los datos. En la cabecera se encuentra informacin
como el puerto de origen, el de destino, diferentes flags, el tamao del mensaje o la
suma de verificacin (checksum). Lo que nos interesa es la puerto de origen. Al

-3-
visitar una pgina web, el navegador tiene que construir los paquetes TCP, es decir,
tiene que rellenar todos los campos del paquete TCP para que no le rechacen el
paquete. Lo que nos lleva a una conclusin, a travs del puerto de origen,
cualquiera que lea el paquete TCP me puede ubicar espacialmente (a travs de la
direccin IP, que se puede sacar con el puerto de origen y la cabecera del paquete
IP), es decir, no dispongo de anonimato.

Ahora imaginemos que en vez de enviar los paquetes directamente al servidor que
hospeda la pgina, primero envo el paquete a un servidor intermedio, para que este
a su vez se los enve finalmente al servidor que hospeda la pgina. Qu ha
cambiado? Que ahora soy ms annimo, los paquetes que le llegan al servidor que
hospeda la pgina contienen la direccin de origen del servidor intermedio, es decir,
que el servidor que hospeda la pgina no sabe mi direccin. Sin embargo hay un
problema, el servidor intermedio s sabe mi direccin; ahora supongamos que el
servidor intermedio, el nico que sabe mi direccin real, est protegido. Qu pasa
entonces? Que soy totalmente annimo. Esta es la filosofa detrs de tor.

Hasta ahora hemos visto que a travs de un servidor intermedio (proxy) puedo
esconder mi direccin IP del servidor que hospeda la pgina. Pero, y si en vez de
esconderla detrs de un servidor intermedio la escondo detrs de varios? Lo que
consigo es fortalecer el sistema; en el hipottico caso en el que un servidor
intermedio cayera en manos desconocidas, el atacante no conseguir mi direccin
IP. El objetivo principal de tor es generar una red de servidores intermedios
protegidos a los que yo me pueda conectar. Por defecto me conecto a tres
servidores intermedios, aunque se puede variar el nmero.

-4-
Dependiendo de la posicin que ocupen los servidores intermedios, tendremos
diferentes tipologas:
- Retransmisor tor u OR: Son los proxies que estn dentro de la red tor,
dependiendo del lugar que ocupen pueden ser la puerta de entrada, de salida o
intermedios. Estn mantenidos por la comunidad y t mismo puedes configurar tu
ordenador como un retransmisor.
- Clientes tor u OP: Es el cliente que solicita una conexin tor, es decir, el usuario
normal y corriente. Para saber la direccin de varios retransmisores tor el cliente
accede a una base de datos semidistribuida (en el siguiente captulo ahondo ms en
el tema).

Para acabar, tengo que aclarar una cosa. En todo el artculo he puesto como
ejemplo el uso de tor en un navegador web, aunque tor puede aplicarse a cualquier
aplicacin que haga uso del protocolo TCP. No solo se limita a navegadores web,
puedo utilizarlo con programas de mensajera instantnea, programas de descargas
que utilicen puertos TCP o clientes de identi.ca.

-5-
TOR (parte II)

En esta segunda entrega voy a hablar del funcionamiento ms especfico de Tor.


Hablar del protocolo TSL, de criptografa asimtrica y simtrica, de cebollas o de
bases de datos distribuidas. Ya sabemos la filosofa detrs de un programa de
anonimato, ahora falta saber cmo funciona tor.
Voy a hacer un breve resumen que sirva como repaso del anterior artculo. La
semana pasada aprendimos que el funcionamiento de un programa de anonimato se
basa en interponer varios servidores entre mi ordenador y el servidor que hospeda
la pgina. De esta forma, los servidores intermedios, tambin denominados proxies,
esconden mi direccin IP y no permiten que el servidor que hospeda la pgina la
averige. As pues, tor crea una red de servidores a la que yo me puedo conectar.
Tambin vimos que el usuario es el cliente u OP y los servidores intermedios eran
denominados retransmisores u OR. Sin embargo, cmo se realiza la conexin
entre el cliente y el retransmisor? La respuesta a esta pregunta la tratar de dar en
este artculo.

Supongamos que ya tengo montado un circuito formado por mi ordenador, tres


servidores intermedios, y el servidor que hospeda la pgina. Sin embargo, hasta
ahora hemos dado por sentado que se cumplan varios supuestos. Uno es que los
paquetes TCP no van a ser alterados por los servidores intermedios, es decir, que
la integridad de los paquetes permanece intacta; otro es que los paquetes que me
llegan a m son los de mi conexin, y no los paquetes de la conexin de mi vecino,
es decir, que existe un proceso de autenticacin. De poco me servira que fuese

-6-
annimo si la conexin que mantengo con los servidores intermedios no es
satisfactoria, es decir, que por ejemplo los proxies alteran el paquete y encima me
entregan los paquetes del vecino.
Aqu es donde entra en juego la criptografa. La criptografa es la ciencia que
estudia la manera de cifrar y descifrar mensajes para que resulte imposible conocer
su contenido excepto si se conoce la clave que descifra el citado mensaje. En
criptografa, hay dos tcnicas muy habituales para cifrar el contenido de
un mensaje, denominadas asimtrica y simtrica. La primera (os sonar si habis
batalleado con gpg) est formada por dos claves distintas, una pblica y otra
privada. La pblica la puede tener cualquier persona, y la privada solo la tienen
personas autorizadas. Ambas pueden cifrar y descifrar un mensaje, pero si cifro el
mensaje con una clave, solo puedo descifrarlo con la otra clave. Supongamos que
cifro un mensaje con la clave pblica, si intento descifrar el texto cifrado con la
clave pblica, no obtendr nada, aparte de nmeros y letras sin sentido; necesito la
clave privada para descifrar el mensaje. Esto es reversible, es decir, tambin puedo
cifrar un mensaje con la privada, pero solo podr descifrarlo con la pblica. Qu
consigo con esto? Pues depende de cmo utilice las claves. Si utilizo la pblica
para cifrar y la privada para descifrar, tengo confidencialidad, solo el destinatario
puede averiguar el contenido del mensaje. Pero si utilizo la privada para cifrar y la
pblica para descifrar, obtengo la autenticacin del remitente e integridad del
mensaje, ya que solo la persona que dispone de la clave privada me ha podido
enviar el mensaje. La criptografa simtrica utiliza solo una clave tanto para cifrar
como para descifrar. Pero, qu tiene que ver la criptografa con tor? Mucho.

Hace dos prrafos he dicho que para que el anonimato sea prctico, tengo que
satisfacer varios requerimientos. El primero es la integridad del paquete y el
segundo es asegurar la identidad del servidor. Para asegurar estos dos
requerimientos, tor se basa en un modelo de redes telescpicas o redes de cebolla
de segundo orden. Lo primero que tenemos que saber es el esquema general de
funcionamiento de un circuito telescpico. Ya s que parece un poco abstracto, pero
en cuanto empecis a leer, comprenderis el significado de los nombres.
Empecemos por el principio: las cebollas. Algunos os habris preguntado por qu el
smbolo de tor es una cebolla, no es porque todos los desarrolladores sean

-7-
vegetarianos, sino porque las cebollas tienen capas.

Una cebolla esta formada por el ncleo y las capas externas. En el campo de las
redes de anonimato, el ncleo de la cebolla es el paquete TCP, y las capas externas
son envoltorios cifrados con clave simtrica. Es decir, supongamos que quiero hacer
una peticin de conexin a un servidor web, y que me conecto por tor. Para proteger
el paquete TCP, el cliente que se conecta a tor genera n capas, siendo n el nmero
de servidores intermedios. Cada capa ha sido creada con una clave simtrica
negociada entre cada servidor intermedio y el cliente. Una vez que el cliente ha
generado la cebolla, se enva a travs de la conexin tor, y empieza a recorrer los
diferentes servidores intermedios. Cada capa de la cebolla es pelada por el
servidor intermedio correspondiente a medida que la cebolla va pasando por los
servidores intermedios, de manera que la puerta de salida genera el paquete TCP
original y se lo enva al servidor que hospeda la pgina web. Veamos la siguiente
imagen de redescebolla para entenderlo mejor:

-8-
Alice es el cliente, la nube representa la red tor y los ordenadores que estn dentro
de ella representan los servidores intermedios. Podemos observar que Alice inicia la
conexin con la puerta de entrada, que est coloreada de verde. El paquete que le
manda Alice a la puerta de entrada es la cebolla completa, formada por el paquete
TCP (valo amarillo) y las diferentes capas cifradas mediante la clave simtrica,
que a su vez solo conocen Alice y el servidor intermedio correspondiente. Es decir,
que Alice primero consulta a todos los servidores intermedios que va a utilizar para
acordar una clave simtrica con cada uno de ellos, y una vez que tiene todas las
claves simtricas, genera la cebolla. Despus la enva y cada servidor intermedio
retira la capa correspondiente. Al final del camino, el servidor coloreado de amarillo
obtiene el paquete TCP original.
Ahora bien, el protocolo anteriormente descrito tiene un inconveniente: previamente
tengo que recolectar todas las claves simtricas. La recoleccin de las claves
simtricas es una desventaja bastante grande, porque en el lapso de tiempo que
transcurre entre que negocio la clave con el servidor y genero la cebolla, el proxy
puede que no est activo, y la conexin se vuelva imposible. Es decir, necesito un
sistema que me permita crear la conexin al mismo tiempo que negocio la clave;
este sistema es la red telescpica o red de cebollas de segunda generacin.
El funcionamiento de este sistema es el siguiente. Primero conecto con la puerta de
entrada, negocio con ella una clave y la utilizo para usarla como clave de sesin. Es
decir, creo un canal de comunicacin cifrado sobre el que voy a transmitir el
paquete.

Despus, con la conexin establecida con la puerta de entrada, conecto a travs de


sta con otro servidor, negocio la clave, y creo otro canal de comunicacin anidado
en el primero.

-9-
As sucesivamente hasta que llego a la puerta de salida, la cual enva al servidor
que hospeda la pgina web (Bob) el paquete TCP, sin saber la identidad de Alice, ya
que solo conoce la identidad del servidor inmediatamente anterior a l.

El esquema de la red telescpica, por tanto, crea un canal seguro sobre el que
mandar los paquetes TCP. Este canal seguro est protegido por una clave simtrica
generada entre el servidor intermedio correspondiente y el cliente. Ahora bien,
sabemos que se genera el canal y que est protegido por una clave simtrica, pero,
cmo demonios se crean las conexiones? Por ciencia infusa? La respuesta nos la
da el protocolo de seguridad TLS .Tls (transport layer security) es la evolucin del
protocolo ssl (secure sockets layer). Estos dos protocolos aseguran canales de
comunicacin seguros sobre internet mediante claves simtricas. A travs de este

-10-
protocolo, genero un tneles entre dos servidores sobre el que mando la
informacin. Es decir, tor utiliza el protocolo tls para establecer la conexin entre
los diferentes servidores.
Ahora ya sabemos cmo realiza tor la conexin dentro de la red tor. La realiza
mediante el protocolo tls y siguiendo el esquema de las redes telescpicas. De esta
forma garantiza tanto la integridad como la identidad de los comunicadores. Sin
embargo, todava falta una cosa bastante importante. Si habis sido observadores,
habris notado que siempre he dado por sentado un dato: la identidad de los
servidores intermedios. En todo el artculo parta de la premisa de que Alice conoca
la identidad de cada servidor intermedio. Sin embargo, nadie nace sabiendo, y Alice
tiene que consultar a alguien la identidad de todos los servidores intermedios, se
alguien es la autoridad de directorio, una base de datos distribuida.
Una autoridad de directorio es una base de datos que almacena todas las
direcciones de todos los retransmisores. En este momento hay seis autoridades de
directorio, lo que forma una base de datos distribuida. Supongamos que tengo la
base de datos de los retransmisores, y decido almacenarla en un nico servidor. Si
hay tres clientes que quieren acceder a ella, igual me empiezo a estresar, porque el
servidor se est empezando a sofocar, pero, y si en vez de tres son trescientos?
Puede que el servidor se ponga en huelga. Para evitarlo, duplico la base de datos y
descentralizo el sistema, de tal forma que los trescientos se repartan entre los seis
servidores. Eso es una base de datos descentralizada. Por tanto, el cliente accede
a la autoridad de directorio, cosulta la base de datos y crea el circuito tor.
Hasta ahora hemos visto el funcionamiento normal de tor. Sin embargo, el
funcionamiento normal de tor no es el adecuado bajo ciertas condiciones.
Imaginemos que resides en un pas cuyo gobierno censura ciertos sitios web.
Quieres visitar esos sitios, porque crees que hay informacin til almacenada en
ellos, pero no puedes acceder porque tu gobierno opina que no debes hacerlo. Si
conoces tor, lo podras usar, pero y si el gobierno ha bloqueado totalmente la red
tor? Lo pueden hacer? S, y de hecho numerosos gobiernos lo hacen
actualmente. Si alguien quiere bloquear tor, solo tiene que bloquear el acceso a las
autoridades de directorio, ya que sin las direcciones de los retransmisores, no
podemos construir un circuito tor. Por tanto, si quiero evitar el bloqueo de tor, tengo
que buscar una alternativa a las autoridades de directorio: los bridges relays.
Los bridges relays son retransmisores que no estn listados en las autoridades de
directorio. Para acceder a la direccin de un bridge, puedes acceder a esta pgina,
que te proporciona tres bridges de forma inmediata. Si la anterior pgina tambin
est bloqueada, no desesperes, porque el proyecto tor tiene la solucin. Si envas
un correo a la direccin bridges@torproject.org con la palabra clave get bridges
ellos te enviarn la direccin del bridge. As de fcil. Ahora os estaris preguntando
cmo configuro el servicio para usar los bridges, pero me temo que tendrs que
esperar al ltimo captulo.

-11-
Por ltimo, tengo que hablar de los servicios ocultos. Supongamos que ests en el
citado pas que censura la red de redes. Hasta ahora hemos visto cmo acceder a
sitios web externos que bloquea el gobierno, pero y si quiero montar un servidor
dentro del pas con contenido sospechoso? Me bloquear el gobierno mi
servidor? S, pero con tor, una vez ms, podemos evitarlo con los denominados
servidores de ubicacin oculta. No me voy a extender en el funcionamiento de esta
funcionalidad, pero s quiero explicaros cmo funcionan de forma muy breve.
Los servidores de ubicacin oculta solo pueden ser accedidos desde la red tor. Es
decir, tienes que montar un circuito tor para conseguir acceder al contenido del
servidor. Realmente no accedes al servidor, sino que accedes a la informacin del
servidor. Este detalle es importante, porque el cliente en ningn momento sabe la
direccin real del servidor, lo que le hace annimo. El servicio funciona de la
siguiente forma. Primero el servidor genera un par de claves pblica y privada. Con
la clave pblica genera un nombre de dominio, formado por la clave pblica y el
nombre de dominio superior onion, de tal forma que, por ejemplo, el nombre de
dominio generado es el siguiente: 982autocid2k45lo.onion . Luego elige un grupo de
retransmisores para que funcionen como Puntos de Introduccin, crea un paquete
que contenga su direccin .onion junto con las direcciones de los PI y lo cifra con la
clave privada. Este paquete generado es enviado a una base de datos distribuida
que proporciona tor. Cuando el cliente quiere acceder a la informacin del servidor,
primero tiene que averiguar por sus propios medios (a travs de una base de datos
de servicios ocultos) la direccin .onion del servidor. Una vez que haya conseguido
la direccin, se la entrega a la base de datos distribuida. Con la clave pblica, el
paquete generado con la privada se descifra, y la direccin de los PI es revelada. A
partir de aqu, el cliente se conecta a la red tor y pide a su puerta de entrada que
contacte con un PI, cuando contacta con uno de ellos le enva la direccin .onion
del servidor, el PI se pone en contacto con el servidor y la comunicacin empieza a
travs de la red tor.

-12-
Y esto ha sido todo por hoy, en el prximo captulo hablar de la configuracin de
las herramientas que nos proporciona tor para utilizar todas las funcionalidades que
he presentado en estos dos primeros captulos. Espero no haberos abrumado y nos
vemos en el siguiente captulo.

-13-
TOR (parte II)

En los dos artculos anteriores he intentado explicar cmo funciona, a grosso modo,
un programa que te proporciona anonimato. En ste me propongo poner en prctica
todos esos conocimientos estudiando las herramientas que nos proporciona el
proyecto tor. El uso ms habitual de tor es utilizarlo junto al navegador web, pero
tambin se puede utilizar con otras herramientas.
Antes de empezar, un resumen de los anteriores dos artculos. En el primero vimos
que un programa de anonimato bsicamente interpone servidores intermedios para
tapar nuestra direccin IP. Vimos la tipologa de los servidores y que tor trabaja con
paquetes TCP. En el segundo vimos que tor se basa en una red telescpica, que
utiliza el protocolo TSL para crear las conexiones y que para saber la identidad de
los retransmisores visitaba una base de datos distribuida denominada Autoridad de
Directorio. Tambin vimos que un Bridge es un retransmisor no listado en las
autoridades de directorio y que sirve para proporcionar un circuito tor a gente que
viva en un entorno en el que tor est bloqueado. Por ltimo, hice una mencin a los
servidores ocultos y cmo trabajan. Antes de aplicar todos estos conceptos, tengo
que explicar una ltima cosa.
Cuando navego por internet, tecleo en la barra de direcciones del navegador un
nombre, como pillateunlinux.com, google.es o red-sostenible.net. Como muchos
sabris, lo que tecleo en la barra de direcciones es un nombre de dominio. Un
nombre de dominio es un sinnimo de la direccin IP que aloja la pgina web. Los
nombres de dominio se inventaron para hacer ms fcil el acceso de los usuarios a
los diferentes servidores, es ms fcil recordar google.es que 74.125.230.84. Sin
embargo, los diferentes protocolos que componen internet trabajan con direcciones
IP, no con nombres de dominio, por lo que tiene que haber alguien o algo que
traduzca los nombres de dominio a direcciones IP, se traductor lo componen los
DNS (Domain Name Server o Servidor de Nombres de Dominio). Estos servidores
tienen tablas especiales que relacionan un nombre de dominio con su direccin IP.
Estn completamente jerarquizados, de manera que cuando escribo
pillateunlinux.com en la barra de direcciones, primero pregunto al servidor DNS de
mi ISP, o a OpenDNS o GoogleDNS si lo he configurado as. A partir de este
momento, el servidor DNS al que yo hago la peticin empieza a preguntar a otros
servidores por pillateunlinux.com, primero empezar por el dominio de ms peso (en
este caso .com) para luego encontrar la direccin IP del servidor que aloja
pillateunlinux.com. Todo esto lo cuento porque nunca sers annimo si la peticin
DNS no est anonimizada. Aqu es donde entran en juego los proxys como Privoxy o
Polipo.

-14-
Recordemos que un proxy es un servidor que se coloca entre el cliente (el
navegador web en el ejemplo) y el servidor. Supongamos que utilizo el proxy para
conectarme a internet, y que visito asiduamente la wikipedia; para ahorrar tiempo,
el servidor intermedio puede alojar una copia exacta de la wikipedia, para que la
prxima vez que le mande una peticin me enve la copia guardada de la wikipedia
y se reduzca el tiempo de espera. El espacio que destina el proxy para almacenar la
copia se denomina cach. Lo malo de disponer cach es que si el proxy no
actualiza frecuentemente, me enva una imagen de la web que no es la real, ya que
puede ser la de hace un segundo o un ao. Privoxy es un servidor intermedio sin
cach y polipo, por el contrario, dispone de cach. Una vez hecha la distincin, lo
ltimo que voy a puntualizar es que cuando yo me conecto a privoxy o polipo para
realizar las peticiones DNS lo hago mediante el protocolo SOCKS. El objetivo de
ste protocolo es facilitar el enrutamiento de paquetes de datos entre un cliente y
un servidor via proxies. SOCKS, por lo tanto, es el protocolo elegido que usa tor
para conectarse tanto a privoxy como polipo.
Que empiece el baile. Las herramientas que nos proporciona tor son el cliente que
inicia todo el proceso que he descrito, y vidalia, una frontend grfica para configurar
tor.
Para instalar el cliente, es decir, tor, seguid las indicaciones oficiales . Est
disponible para GNU/Linux, Windows y MAC OS X. Una vez que lo hayis instalado,
es muy recomendable que instalis o polipo o privoxy; aunque no es obligatorio,
pero tenis que saber que si no usis un proxy para las peticiones de DNS, os
servir de muy poco utilizar una red tor porque sois fcilmente localizables. Para
instalar cualquiera de estos dos proxies tambin os recomiendo que sigis la gua
oficial , porque est muy bien explicado y no es un proceso complejo. Yo he probado
en debian polipo y en arch privoxy y funcionan a la perfeccin, no he tenido ningn
problema. Son muy parecidos, as que instalad el que ms rabia os d. Pero si
instalis uno, aseguraros de que no tenis instalado el otro, porque de lo contrario
no os va a funcionar nada. Llegados a este punto, podemos empezar a utlizar tor
con cualquier navegador o con vidalia. Para utilizar tor con un navegador web,
tienes que instalar una extensin para controlar las conexiones, es decir, para
controlar si estis utilizando el cliente de tor y el proxy de DNS o no, este paso es
el nico que vara dependiendo del navegador.
Firefox o IceWeassel:

Hay que instalar el paquete torbutton que nos proporciona el propio proyecto tor.
Simplemente bjate el paquete del sitio oficial de firefox, instlalo, reinicia el
navegador y pulsa el botn que se encuentra en la Barra de Estado para habilitar o
deshabilitar la conexin a tor, as de complicado.

Chromium o Chrome:

La extensin elegida es Proxy Switchy . Bjatela e inslala, una vez que te salga el
icono de la bola del mundo, vete a la pestaa de configuracin de la citada
extensin. Cuando ests en la pestaa de configuracin, aade una nueva cuenta,
de nombre tor (por ejemplo), y rellena los campos tal y como se puede ver en la
siguiente imgen:

-15-
Cada vez que quieras ser annimo, pulsa en la bola del mundo y elije el perfil
asociado a tor, la bola se volver azul y sers annimo.
Opera:
La configuracin en Opera es un poco ms complicada porque no existe ninguna
extensin que proporcione soporte a tor y lo tenemos que configurar a mano, pero
no os desalentis. Primero abre el navegador y vete a las opciones de
configuracin, con la ruta Men->Configuracin->Opciones o pulsando la
combinacin de teclas Ctrl+F12, Vete a la pestaa llamada avanzado y en la lista de
la izquierda selecciona redes:

-16-
Ahora pinchamos en servidores proxy y nos saldr una tabla para configurar los
proxy que queramos que use cada protocolo, os recomiendo habilitar http y https,
aunque si queris podis habilitar todos, cada vez que queris usar tor, habilitis
esta configuracin:

-17-
Con estos sencillos pasos, tendris habilitado tor, pero cmo s si soy annimo?
Visitando varias pginas web para comprobar si realmente sois annimos:
- Tor test : Si ests usando una conexin tor, te aparecer una pantalla como esta:

- Si no te fas del anonimato que te proporciona tor, puedes ver que la IP que te
muestra tor en la anterior comprobacin no es la tuya (en el ejemplo 199.48.147.42
), pero si sigues siendo escptico, prueba a entrar en sta pgina:

-18-
Vaya! Parece que estoy en Dallas, qu curioso, porque nunca he viajado a EE.UU.
Adems, podis comprobar que la IP ha cambiado con respecto a la anterior
conexin del tor test, lo que demuestra que el cambio dinmico del circuito tor por
cada conexin funciona.
Ya sabemos cmo utilizar un navegador web para ser annimo, ahora voy a
introduciros en el funcionamiento de Vidalia, donde realmente se pueden aplicar
todos los conceptos que he ido explicando a lo largo de los artculos. Pasen y lean.
Para instalar Vidalia, podis consultar vuestros repositorios para buscar si est en
ellos o instalarlo desde el proyecto tor.
Antes de empezar a trabajar con Vidalia, empecemos por solucionar un error
bastante comn. Cuando instalas tor, aades el cliente a la lista de los daemons
que se van a iniciar en el arranque del ordenador. Sin embargo, al lanzar Vidalia
lanzas otro cliente tor, pero como ya lo has lanzado en el arranque, Vidalia no
puede iniciar y lanza un mensaje de error:

Lo que tienes que hacer es abrir el monitor del sistema, moverte a la pestaa de
procesos, buscar el de tor y copiar el PID, luego abres una terminal y matas el
proceso con el siguiente comando (desde superusuario):
# kill -9 PID
Ahora ya puedes iniciar Vidalia, vuelve a la ventana principal y clickea en Iniciar
Tor, la barra de progreso se debera completar y te debera aparecer en la bandeja
de iconos activos una cebolla verde.
Lo primero que hay que destacar de Vidalia es la documentacin. Est muy, pero
que muy bien, es muy fcil de comprender y te explica de forma magistral los
fundamentos de tor. Para acceder a ella, clickea en Ayuda.
Como he dicho al principio del artculo, Vidalia es una interfaz grfica que te ayuda
a configurar tor. Adems, nos provee de otras herramientas, como un mapa en el
que se refleja el circuito tor que tienes abierto, un monitor que realiza una lectura
del consumo de ancho de banda o el registro de mensajes.
Empecemos con la verdadera utilidad que nos ofrece Vidalia: la configuracin de
tor. A travs del botn Preferencias, accedemos a las opciones de configuracin de
tor. En la Pestaa general podemos determinar el demonio que tiene que ejecutar
Vidalia (til si tenemos diferentes versiones de tor), o un cliente de un proxy que
queramos ejecutar, sin embargo, si lanzis un proxy con Vidalia, os pasar lo mismo

-19-
que con el cliente de tor, tendris que matarlo para que Vidalia pueda arrancar, o
eliminarlo de los daemons que se inician en el arranque. En la siguiente pestaa
denominada Red, podis configurar el proxy que habas definido en la seccin
anterior, configurar tor para que use otros puertos si tu cortafuegos ha cerrado el
8118 (privoxy o polipo) y el 9050 (tor) y configurar tor para que utilice los bridges.
Ya expliqu en el artculo anterior cmo conseguir la direccin de un bridge, pero si
eres muy vago, Videlia proporciona un botn para buscar las direcciones de algunos
bridges, aunque puedes agregar t mismo los que quieras de manera manual.

Despus tenemos la seccin denominada Compartiendo. Aqu es donde vamos a


configurar nuestro ordenador como un simple cliente tor, un retransmisor o un
bridge. Si queris ser un retransmisor, elegid la opcin Repetidor de trfico para la
red Tor, la configuracin es bastante sencilla, se pide un nombre para el servidor,
una direccin de correo para ponerse en contacto contigo si hay algn problema, el
puerto por el que se van a realizar las peticiones y la posibilidad de habilitar el port
forwarding, que permite a clientes tor conectarse con otro puerto que no sea el
9050, es decir, si el cliente tiene habilitada la anterior opcin que rezaba as Mi
cortafuegos solo me permite conectarme a ciertos puertos; despus tenis que
determinar el ancho de banda disponible para tor y los protocolos que permits que
use el cliente tor. La opcin del bridge es igual, lo nico que cambia es que tor

-20-
genera la direccin IP que puedes darle a un cliente tor para que se conecte al
bridge que ests configurando.

-21-
La pestaa Servicios te permite configurar un servidor oculto. Una vez que tengas
montado el servidor, tienes que darle a tor un puerto por el que el cliente acceder
al servidor (Puerto Virtual), otro puerto opcional destinado a recoger las peticiones
de conexin (Destino), un directorio en el que tor guarde archivos de configuracin,
como la clave privada o la direccin .onion y un checkbox (Habilitado) que
determina si finalmente el servidor usa tor o no, para poder desactivarlo sin tener
que eliminar toda la configuracin. La direccin .onion del servidor la configura
automticamente tor.
Para acabar con la configuracin de los diferentes servicios que nos ofrece Vidalia,
tenemos la pestaa Avanzado. En el marco Puerto de Control determinamos la

-22-
direccin y el puerto que utiliza Vidalia para configurar tor. Es decir, si por ejemplo
tengo dos ordenadores, y tengo configurado en uno de ellos tor, puedo hacer que el
segundo ordenador utilice la configuracin del primero si pongo en el campo
Direccin la direccn IP del primer ordenador. La siguiente opcin del primer
marco es Autentificacin, que determina el proceso de autenticacin que tiene que
realizar una aplicacin para configurar tor. Imaginemos que una aplicacin quiere
configurar tor, para probar que es una aplicacin de confiar, tiene que aportar un
salto y sea que es lo que se determina en este campo. El salto y sea puede
ser un archivo (cookie), una clave o nada. Por ltimo, tenemos el archivo de
configuracin de tor y el directorio en el que tor guardar informacin adicional.

-23-
Si clickeas en Ver la Red en la ventana principal de Vidalia, se abrir una ventana
con un mapa, dos listas y un cuadro de texto inicialmente vaco. Como estaris
adivinando, la lista de la izquierda son todos los retransmisores que la red tor tiene
disponibles y la lista que tenis en la parte inferior central define el circuito tor que
estis usando. Cada una de las filas simboliza un retransmisor, y si pinchis en uno
de ellos se refleja cierta informacin del retransmisor seleccionado en el cuadro de
texto de la parte inferior derecha. Podis averiguar el pas en el que est situado el
retransmisor, el SO que tiene instalado (tengo que decir que la gran mayora usan
GNU/Linux), el tiempo que lleva disponible o el ancho de banda disponible. Al
mismo tiempo que seleccionas uno de los retransmisores a los que ests conectado
(los de la lista central inferior), en el mapa se dibujar una lnea en verde que
simboliza el tramo de la red tor que genera se retransmisor.

Otra herramienta que nos proporciona Vidalia es el Registro de Mensajes, que


genera un seguimiento de las operaciones que va realizando tor, adems te
proporciona informacin muy til si por cualquier motivo tor fallara. Puedes guardar
el log en un archivo externo y modificar el nivel de detalle de los mensajes; lo
aconsejable es marcar los mensajes de Error, Advertencia y Notificacin, ya que los
de Informacin y Depurar no tienen mucha relevancia.

-24-
Por ltimo, la Grfica de Ancho de Banda es un monitor que realiza una lectura de
tu consumo de ancho de banda. Funciona igual que cualquier otro monitor que
registre el consumo de ancho de banda y no tiene ninguna funcionalidad
destacable.
En el ltimo captulo de la saga que publicar la semana que viene analizar las
vulnerabilidades de tor y analizar muy por encima algunas alternativas. Espero
haber sido ameno y hasta la semana que viene.

-25-
TOR (parte II)

En esta ltima entrega intentar explicar las vulnerabilidades de tor y expondr dos
alternativas: FreeNet e I2P. Con este cuarto captulo acaba mi explicacin de un
sistema de anonimato altamente utilizado, en algunos aspectos formidable y en
otros mejorable. Empecemos pues.
Para comprender las vulnerabilidades que presenta tor, primero quiero hacer un
breve repaso de cul es el funcionamiento de esta popular herramienta.
Recordemos que tor garantiza nuestro anonimato mediante la interposicin de
servidores intermedios que escondan nuestra identidad. Estos servidores
intermedios podan ser la puerta de entrada a la red, retransmisores intermedios o
la puerta de salida. Recordemos tambin que tor se basa en la generacin de
circuitos telescpicos, de manera que un nodo solo conoce la identidad del servidor
anterior y posterior. Adems, los retransmisores son clientes tor que se han
configurado en ste modo, por lo que cualquiera puede convertirse en retransmisor.
La fuerza de tor reside en la imposibilidad del servidor destino de conocer la
identidad de la persona que est realizando la peticin. Pero que el servidor no
conozca tu identidad no implica que otra persona no pueda averiguar tu identidad.

Vulnerabilidades
Para romper el sistema de anonimato de tor, que yo sepa, hay cuatro grandes
caminos que puedes tomar: inyectar cdigo, analizar la red tor, explotar fallos de
seguridad del navegador y explotar vulnerabilidades de la red tor.
Inyectar cdigo:
Tor protege al cliente con los servidores intermedios, pero no hay nada que proteja
el servidor destino o la puerta de salida. Imaginemos que hay una persona que
quiere averiguar las identidades de las personas que visitan una pgina. Lo primero
que har ser buscar el servidor que aloja la pgina y controlarlo activa o
pasivamente. En definitiva, saber en todo momento lo que ocurre en el servidor para
monitorear las peticiones y analizarlas posteriormente. Ahora supongamos que el
espa se encuentra con que el servidor es visitado por numerosos clientes tor. No
sabe la identidad de los clientes ya que no son ellos los que visitan la pgina. Pero
puede hacer una cosa para delatarlos. Controla el servidor, por lo que puede alterar
el funcionamiento del mismo e introducir un trozo de cdigo en todos los paquetes
TCP. Ahora supongamos que introduce algn tipo de malware; todas las personas
que visiten la pgina se infectarn. Por ltimo, es fcil de suponer que el malware

-26-
puede acceder a tu direccin fsica, al funcionamiento de tu equipo, a tu ubicacin
Es decir, que el atacante puede identificarte cmodamente. Tan solo tiene que
inyectar cdigo en los paquetes TCP para introducir en tu sistema un malware que
te identifique entre la masa de ordenadores que forman internet.
Analizar la red tor:
Cuando te conectas a tor, te conectas a una red de ordenadores formada por
clientes y retransmisores. A travs de esta red te conectas al servidor que almacena
la pgina web. Sin embargo, la mayor virtud de tor es su mayor carencia. Tor es una
red relativamente pequea de sistemas interconectados, lo que errneamente
proporciona mayor confianza a los clientes. Ahora supongamos que alguien analiza
todo el trfico de la red tor, y que en base a estudios estadsticos puede determinar
que un cliente se ha conectado a un servidor externo por medio de una puerta de
salida. Es posible? S En serio? S, numerosos pases y operadoras de telefona
actualmente lo hacen. Se necesita una potencia de clculo inmensa, aunque es
menor si solo se estudian clientes tor concretos, es decir, aquellos que accedan a
unos servidores externos determinados o que pertenezcan a un pas determinado.
Lo que se hace con este mtodo es controlar la red tor, monitorear todas las
peticiones de todos los retransmisores y clientes para analizarlas posteriormente
con herramientas estadsticas y determinar qu clientes han accedido a qu
pginas. Como he dicho antes, se necesita una capacidad de clculo brutal, pero es
posible que empresas gigantes, que manejan miles de millones de dlares al ao,
acudan a esta tcnica para revelar la identidad de ciertas personas. La nica forma
de luchar con ste mtodo desemboca en un peligro mayor: aumentar la red tor.
Pero si aumento la red tor para dificultar las tareas de clculo, mayor nmero de
retransmisores no sern de confiar.
Explotar vulnerabilidades del navegador:
Supongamos que tienes tor instalado en un navegador. Pero en el navegador
tambin tienes instalado flash player, java, real media, quicktime, windows media,
shockwave o cualquier otro plugin. El hecho de que tor funcione bien, de que sea
seguro no implica que el navegador sea seguro. Si tienes habilitada tecnologa
flash, puedes darte por fastidiado. El propio proyecto tor pone especial inters en
dejar claro que para utilizar tor no se pueden tener habilitados plugins que puedan
comprometer la seguridad del navegador. Los plugins en los que tor hace especial
hincapi son los que he mencionado anteriormente. A travs de este tipo de
tecnologas, el atacante puede explotar las vulnerabilidades que presentan e
identificarte cmodamente. Repito: no habilites estos plugins cuando uses tor,
porque no eres annimo. Simplemente configura el navegador para que est lo ms
limpio posible. No conozco las tcnicas para explotar este tipo de vulnerabilidades,
ya que hay que tener conceptos de programacin avanzados, pero puedes visitar
diferentes estudios que as lo demuestran.
Explotar vulnerabilidades de la red tor:
En este apartado me refiero a atacar la propia red tor explotando vulnerabilidades
que presenten y que no he reflejado en los tres anteriores apartados. Por ejemplo
se pueden bloquear las autoridades de directorio, bloquear las puertas de salida,
introducir falsos retransmisores, realizar ataques de denegacin de servicio,
ataques de predecesor, ataques Sybil y un preocupante etctera. Algunos estn
solucionados, pero es viablemente imposible poder controlarlos todos, ms an
cuando son Gobiernos y agencias de inteligencia los que desarrollan tcnicas para
explotarlos.

-27-
Alternativas
Voy a analizar dos alternativas, aunque existen varias, como GNUnet, Rodi,
Omemo, Nodezilla, Bunzilla o Calypso. Aunque la gran mayora no son sustitutos de
tor, por eso en la introduccin he entrecomillado la palabra alternativa. Casi todos
se basan en clientes P2P annimos, como FreeNet; la nica que realmente puede
sustituir a tor es I2P.
FreeNet:
Segn el propio proyecto, FreeNet es:

Un proyecto de software libre que te permite compartir archivos


annimamente, navegar y publicar sitios libres (a los que
accedes a travs de FreeNet) y chatear en foros, sin el miedo de
la censura. FreeNet est descentralizado para hacerlo menos
vulnerablea a ataques y si es usado en el modo darknet, donde
los usuarios solo pueden conectarse con sus amigos, es muy
difcil de detectarlos.

Es decir, FreeNet es una iniciativa que proporciona una red en la que poder navegar
sin ser descubiertos. Pero siempre tienes que navegar dentro de la red, no existen
proxies de salida para acceder a internet. Es extremadamente til para crear redes
annimas, como la que actualmente utiliza WikiLeaks. Una vez que ya sabemos lo
que es, voy a comentar muy rapidito el funcionamiento para que nos hagamos una
idea.
Cuando accedes a la red, te conviertes en un nodo de la red. Cada nodo tiene que
contribuir con un ancho de banda y un espacio en disco determinado. Funciona
exactamente igual que un programa de P2P. Sin embargo, la diferencia es que est
totalmente descentralizado, no se depende de trackers y nadie sabe la identidad de
nadie (relativamente, luego ahondar un poquito ms). Simplemente se acceden a
recursos. Como es obvio, el ancho de banda que proporcionas se utiliza para que la
gente pueda descargarse los paquetes que quieran, pero el espacio reservado en
el disco duro? Pues en este espacio almacenas los recursos de la red.
Al igual que en un programa P2P, todos contribuyen con todos; cuando me descargo
un archivo, me lo descargo de varios ordenadores, no de uno solo y de varios
archivos, no de uno solo. FreeNet funciona de forma parecida. Primero, un nodo
sube un archivo a la red, la red lo divide en partes, y enva cada parte a varios
nodos (para replicar la informacin y que siempre est disponible). As , si hay
alguien que quiere descargarse el archivo que ha colgado el usuario, se lo
descargar bajndose todas las partes de diferentes nodos. Adems, todos los
paquetes estn cifrados, de manera que los nodos no pueden acceder al contenido
que almacenan y alterarlo. Tambin se deja claro que ninguna persona es
responsable de lo que almacene, por lo que si estoy almacenando un plano balstico

-28-
de un proyectil nuclear, legalmente no es mi culpa (aunque no impide que siga
estando muy intranquilo).
Por ltimo, puedes conectarte a un nodo de dos formas: mediante Opennet o
Darknet. Lo normal es que cuando quieres acceder a un archivo, te conectes a la
red FreeNet y preguntes a un nodo por el recurso. La red se encarga de buscar los
nodos que tienen el archivo, estableces una conexin y te lo bajas. Este tipo de
funcionamiento es la Opennet:

Sin embargo, si por ejemplo sabes que un nodo tiene el archivo, quieres hablar con
un amigo a travs de FreeNet o quieres acceder a un servidor interno, lo ms
normal es que le digas a la red FreeNet que quieres establecer una conexin con el
nodo X. Es decir, que estableces una conexin directamente, sin preguntar a los
diferentes nodos. Este mtodo de conexin es el DarkNet. Es muchsimo ms
seguro que el OpenNet, ya que el nodo se supone que es de confianza, pero solo lo
puedes utilizar en determinados casos.
Por ltimo, me gustara destacar que este proyecto no sustituye a Tor, aunque
puede ser un complemento buensimo, como as lo ha demostrado WikiLeaks.
Tambin es necesario destacar que no es escalable, en el momento en el que haya
muchos nodos, simplemente no funciona, ya que para encontrar un nodo que
contenga el archivo pueden pasar desde horas a milisegundos. Vuelvo a repetir que
FreeNet y cualquier servicio de P2P annimo no es un sustituto de tor, sino que ms
bien es un complemento.
I2P (Invisible Internet Protocol):

-29-
Como en el caso anterior, os presento la definicin del proyecto:

I2P es una red annima que ofrece una simple capa para que
ciertas aplicaciones que manejan informacin sensible puedan
usarla para comunicarse de una forma segura. Todos los datos
son envueltos en distintas capas de codificacin, adems la red
es distribuida y dinmica, sin que haya que confiar en una
tercera parte.

Es decir, que es igual que FreeNet (naci de ese proyecto) pero dispone de proxies
para poder comunicarse con el exterior. A travs de I2P podr usar clientes P2P,
chats, canales IRC o servidores de correo electrnico. Pero tambin podr usar la
red para conectarme a un proxy que realice la peticin a un servidor externo. Sin
embargo, el funcionamiento es diferente al que presenta Tor. I2P es sensiblemente
ms complejo, pero aparentemente ms seguro. En la definicin que he escrito
arriba pone que I2P proporciona una capa. Pero, qu capa? Lo voy a explicar muy
resumido, obviando varios detalles para que se comprenda mejor, por este motivo
hay tantas palabras entrecomilladas XD.
Para el funcionamiento de internet, existen diversos protocolos que actan en
diferentes capas. Estas capas tienen una funcin determinada por el modelo OSI
(capa fsica, capa de datos, capa de red, capa de transporte, capa de sesin, capa
de presentacin y capa de aplicacin). As por ejemplo, el protocolo IP se
encuentra en la capa de red. Lo que I2P hace es generar una capa de ms alto
nivel que utilizan las aplicaciones, y que se encuentra encima del protocolo IP
cuya misin es no revelar la identidad de los participantes en una conexin. As
mismo, esta capa asigna una clave cifrada que identifica a cada nodo, maneja las
diferentes claves para poner en contacto a los dos participantes de la conexin y
establece un flujo UDP entunelado entre los dos participantes. Es decir, que cuando
yo me conecto a I2P y realizo una peticin de conexin a un nodo, la aplicacin lo
identifica con la clave cifrada que le proporciona I2P, establece la conexin con
esas claves y a partir de entonces se genera una conexin protegida del protocolo
UDP (un protocolo para transmitir paquetes parecido al TCP).
Al igual que en tor existan las autoridades de directorio, en I2P existen las Network
Databases. La diferencia es que son muchsimo ms seguras que las autoridades
de directorio, estn bastante ms replicadas y el acceso a la informacin es ms
seguro. Estas bases de datos tienen dos tipos de archivos: los que se refieren a los
nodos de la red (RouterInfos) y los que se refieren a un servidor interno (LeaseSets
). Es decir, que si quiero acceder a un servidor externo, preguntar por diversos
RouterInfos, pero si quiero acceder a un servidor interno solo preguntar por los
LeaseSets. La consecuencia de este procedimiento es una total separacin entre la
actividad que muestra ms peligro (acceder a internet a travs de I2P) y las que se
supone que es ms confiable (acceder a un nodo interno para compartir un archivo,
para hablar con un amigo), por lo que la seguridad del sistema aumenta
considerablemente.
Ahora las consecuencias de este planteamiento. Es bastante ms complejo que tor
(solo con leer los dos prrafos anteriores queda reflejado), pero el hecho de que
toda la conexin est entunelada bajo un protocolo que no permite identificar a los
participantes de la conexin hace del sistema bastante ms seguro y annimo que
tor. Tambin hay que decir que I2P es mucho menos escalable que tor, tiene una
comunidad mucho ms pequea, su desarrollo es ms lento, la complejidad del

-30-
proyecto hace que haya menos aplicaciones dedicadas y puede caer a ataques a los
que tor es inmune.
Con este prrafo se acaban los cuatro artculos que pretenden explicar el
funcionamiento de tor. Quera agradecer especialmente a Joe Di Castro, lector de
PillateUnLinux, la aclaracin que realiz en la primera entrega y que ha posibilitado
que ste ltimo captulo se haya escrito. Tal y como coment Debish en otro
comentario,voy a pasar a un documento los cuatro artculos para que los podis leer
con ms tranquilidad. Colocar al final de este artculo un enlace para descargarlo
cuando tenga algo de tiempo (en unos das, supongo que para el sbado estar).
Conclusin:
Como dicen los desarrolladores de I2P, el anonimato es el incremento de tiempo y
dinero que tiene que realizar una organizacin para dar con tu identidad. No creo
que exista el anonimato en internet, siempre se puede llegar a identificar a una
persona. Sin embargo, con el uso de varias tecnologas, se puede llegar a ser
bastante annimo. Wikileaks as lo demuestra.
Fuentes:
RedesCebolla
Tor
FreeNet
I2P
Wikipedia
Zed A. Shaw
Artculos anteriores:
Tor (parte I)
Tor (parte II)
Tor (parte III)

-31-