
Como siempre, el twit que lo inició todo:
Daniel R. D4nnR
Tor project, infor errada! http://blog.dedalo.in/post/2014/10/27/Respuesta-al-video-de-exploiterco … por @SeguridadBlanca
El contexto es más o menos el siguiente: al igual que muchas personas últimamente, alguien se puso a comentar sobre Tor y su “privacidad” en video. Este primer video estaba, en efecto, lleno de impecisiones. Como respuesta a estas imprecisiones, otra persona, a motu-propio, decidio proactivamente “corregir” los errores de este primer video en otro video. Ironicamente, este segundo video tambien! Contenía varias imprecisiones, errores y nociones equivocadas que poco contribuian a aclarar el oscuro panorama que habia dejado el primer video. Mi comentario a toda esta polémica, como es usual, fue hacia motivar a la gente a estudiar más en profundidad señalando que ambos videos tenían muchas imprecisiones. Usualmente dejo que las personas que estan aprendiendo se esfuerzen un poco por su cuenta para aprender y profundizar (TRY HARDER), y no doy comentarios donde no me los han pedido. Sin embargo, la persona que publicó el segundo video me pidio educadamente que le indicara las imprecisiones en las que habia incurrido en los comentarios de su blog y pues con ánimos de ayudar a los principiantes que piden ayuda, decidí escribir este post. En los comentarios de su blog era imposible describir la cantidad de imprecisiones del video.

Sin más, comenzamos con los errores del segundo video.
Definición de proxy. En el segundo video no se dá una definición de proxy directamente, sin embargo, en el minuto 1:23, Dedalo (el autor del segundo video) afirma que el “señor define”
1:23 – De manera correcta lo que es un proxy.
Y no iba a comentar nada del primer video porque no me lo han pedido, pero como ésto es una referencia directa, me veo obligado a citar el primer video en donde se define un proxy como:
1:12 - "Software que permite realizar una salida a Internet con ciertas politicas."


2:17 - Si bien el proxy sabe que vengo desde mi PC o sea desde mi IP, la WEB no sabe que estoy vieniendo desde mi PC... ahí hay un “anonimato”.
Tomando en cuenta las nociones corregidas sobre la definición de “proxy” que discutimos anteriormente, al referise a una intermediación entre su PC y la “WEB”, asumimos que Dedalo en realidad quería referirse a un “proxy HTTP” y no a un “proxy” en terminos generales. La diferencia sobre el tipo de proxy aquí es muy importante porque tiene incidencia directa sobre la forma cómo funciona y si provee o no "un" anonimato (o dos o tres o ninguno? #lol).

Ahora bien, hay otros proxies HTTP que se “alegan” anonimos. De hecho, muchas listas son compiladas por gente “acomedida” (para usar los mismos términos que usan los autores de los videos) que supuestamente verifican la “calidad de anonimato” de estos proxies. De esta forma, se publican listas con proxies “altamente anonimos”. Lastimosamente, muchas de estas “verificaciones” son tan pobres / mediocres que el único chequeo para declarar un proxy HTTP como “anonimo” es que no incluyan el encabezado X-Forwarded-For! Si se presta atención, creo que es obvio por qué este chequeo es sumamente mediocre. El servidor proxy HTTP puede agregar cualquier otro encabezado, incluso utilizar cualquier otro tipo de "side-channel" para pasar esta información a la “WEB” final. Todo esto sin contar, por supuesto, con simplemente almacenar el record de todas las peticiones y cuando el responsable de la “WEB” lo solicite, simplemente proveer la dirección IP original. En conclusión, NO, un proxy HTTP como el que aparece en el diagrama de Dedalo, a menos que tengas control directo tu mismo sobre él, difícilmente podría proveerte algún tipo de anonimato confiable.


Ahora bien, el siguiente punto que hace Dedalo es decir que usar una VPN “comprada” ya no puede ser anonima, puesto que:
4:03 - es un producto que “yo” estoy comprando.

Sin embargo, usar una VPN paga, aún comprandola de la forma descrita anteriormente, NO provee un nivel de anonimato muy distinto al uso de un proxy HTTP como el que comentamos en el punto anterior. De hecho, el principal riesgo al usar una VPN, paga o no, es el mismo que al usar el proxy HTTP. Explicitamente, el riesgo es que el administrador de la VPN esté almacenando tu información de origen y que la provea a quien se la pida en algún momento dado. De nuevo, a menos que uno mismo tenga control sobre el servidor VPN, no hay forma de confiar aceptablemente en la privacidad que te puedan proveer ninguna de estas dos soluciones por si solas.

4:36 – Tor ... No es un proxy, es una RED de proxies.
Lamentablemente, no. Si hablamos de “Tor”, es más preciso hablar que es un protocolo que blah, blah... Si hablamos del “PROYECTO Tor” es más preciso hablar de un proyecto para el desarrollo de una red de comunicación distribuida superpuesta sobre la Internet con objetivos bien precisos sobre la integridad y la privacidad de su contenido, blah, blah... etc. La definición de Dedalo no calza en ningún lado! De repente si hablaramos de la “RED Tor”, pero ni siquiera, realmente he tratado muy fuertemente encontrar algo que este relacionado con “Tor” y que pueda ser definido tan simplemente como “una red de proxies” y me ha sido imposible. En todo caso, los nodos que participan en la red Tor en efecto tienen cierta funcionalidad de proxies SOCKS (tarea para Dedalo, averiguar sobre el protocolo SOCKS y como se diferencia del protocolo HTTP y cuales son las caracteristicas del protocolo SOCKS implementadas en los nodos Tor y cuales caracteristicas NO están implementadas), pero de ninguna manera es la única funcionalidad que tienen presente. En consecuencia, definir a la red Tor como una red de proxies es una terrible sobre-simplificación, en el mejor de los casos. Como ejemplo de otras funcionalidades aparte de la de proxy, podemos citar resolución DNS para dominios .onion, puntos rendevous para servicios ocultos, y un gran etcetera. Mas tarea para Dedalo, averiguar toda la funcionalidad adicional que se encuentra presente en un nodo Tor por defecto.

5:00 – Explicacion de cómo funciona Tor.
Se presenta un diagrama de una cadena de 3 nodos que es la configuración por defecto de muchos clientes Tor. La longitud de esta cadena es en realidad parametrizable, y dependiendo de la forma en que usas Tor puede ser más conveniente cadenas de otras longitudes. Incluso, en ciertas situaciones, una cadena de un sólo salto es mejor que una de 3, pero necesitas saber y entender muy bien lo que estás haciendo. En consecuencia, decir que “Tor funciona así” como axioma, es simplemente incorrecto. Tarea para Dedalo, averiguar en qué situación es mejor utilizar una cadena de un sólo salto en lugar de tres.
En el minuto 5:38 se hace una anotación importante:
5:38 – Mi proveedor de internet empieza a escuchar a todos los sitios donde yo me conecto, para mi proveedor de Internet yo estoy yendo a un sitio en Francia.
Y se continua diciendo sobre las siguientes conexiones a los demás proxies en la cadena de 3 nodos Tor. Aquí hace falta apuntar algo muy importante, tu proveedor en efecto no sabe necesariamente o inmediatamente que te estas conectando en realidad a tu destino en Colombia, pero puede facilmente averiguar que te estas conectando a un nodo de “entrada” de la red Tor. Aún si usas un nodo de entrada no indexado, tu proveedor ISP puede verificar, interactuando directamente con el nodo Tor en francia, que en efecto la comunicación que estas llevando a cabo, tú Dedalo, es parte de la red Tor. Tarea para Dedalo, averiguar cómo se hace esto :-). Entonces a pesar que Dedalo, entediblemente, piensa que tu proveedor sólo sabe que te conectaste a Francia, en realidad ésto es incorrecto. Tu proveedor puede saber más que eso. Explicitamente, sabe además que estás usando Tor y puede medir la cantidad de tráfico que estás introduciendo a la red, el momento en que lo haces, etc. La importancia de ésto será evidente más adelante cuando hablemos de correlacionar estos datos con otros.
Similarmente, en el minuto 6:18, se comete el mismo error diciendo:
6:18 – Para el sitio en Colombia yo estoy viniendo de Ucrania. - Y todavía pregunta, en tono “challenging” - Yo quisiera que me expliquen aquí donde no hay anonimato. #lol, really? Here it goes.
De nuevo, igual que en el punto anterior, aquí hace falta darse cuenta que para el sitio en Colombia, no sólo vienes de Ucrania, sino que también vienes de un nodo de salida de la red de Tor. De hecho, aquí es peor! Aquí el sitio de colombia puede estar seguro! Que vienes de un nodo Tor sin necesidad de interactuar activamente con el nodo Tor. Tarea para Dedalo, estudiar el protocolo Tor y aprender por qué existe esta asimetría entre nodos de entrada y nodos de salida.
La pregunta mayeutica para Dedalo que responde a su muy grosero “Yo quiero que me expliquen aquí donde no hay anonimato” es simplemente la siguiente: Que pasa si alguien puede observar, analizar y correlacionar el tráfico de los dos últimos puntos descritos en este artículo?
Este es en efecto, el ataque más importante (y conocido) de la red Tor, que ni siquiera lo voy a explicar yo, lo dejaré a la gente de Tor, pero si se ha prestado atención a las dos explicaciones anteriores, en especial a los puntos para los que Dedalo no pudo identificar su importancia, entonces será muy fácil entender el siguiente punto sacado directamente del FAQ de Tor:
https://www.torproject.org/docs/faq.html.en#AttacksOnOnionRouting
What attacks remain against onion routing?
As mentioned above, it is possible for an observer who can view both you and either the destination website or your Tor exit node to correlate timings of your traffic as it enters the Tor network and also as it exits. Tor does not defend against such a threat model.
No me voy a molestar en traducir esto, si quieren pueden usar Google Translate. Sin embargo, quiero enfatizar que a diferencia de lo que mucha gente dice, Tor no te puede proteger adecudamente si no entiendes cómo funciona. Hay muchos otros casos en donde no es necesario observar estos dos puntos, incluso una seleccion incorrecta de nodos intermedios te puede traer problemas (Más tarea para Dedalo). En consecuencia, para usar Tor correctamente se hace necesario también un control cuidadoso de la selección de nodos en la cadena que permita oscurecer suficientemente las posibles correlaciones de tiempo y volumen del tráfico que estás generando. Como siempre, la verdad es mucho más complicada de lo que parece.
Por cierto, si alguien todavía está pensando que para una organización con respaldo gubernamental le es muy dificil monitorear los dos puntos descritos anteriormente, creo que no ha estado atento a las revelaciones de Snowden.

Continuando, en el minuto:
7:07 – Tor te da anonimato, te ayuda a ser anonimo en la red.
Aunque es tentador otorgarle un perdon misericordioso a lo que se quiere decir en la anterior frase, lamentablemente, ésto también es impreciso. Es cierto que el protocolo Tor ha sido construido con muchas caracteristicas que buscan conseguir anonimato. Lamentablemente, estas caracteristicas también requieren de ciertas condiciones para que estas caracteristicas provean la funcionalidad esperada. Por ejemplo, supongamos que el grupo de criminales informáticos Lulzsecperu quiere atacar la red del PCM. Para esto pretenden usar Tor porque piensan que, como dice Dedalo, “Tor da anonimato”. Imaginemos (irrealmente, pero sirve para hacer el punto clave del anonimato que realmente provee Tor), que la única persona que usa Tor en el Perú es Dedalo. El PCM fácilmente podría detectar que sus atacantes utilizaron la red Tor. Si la única persona que usa Tor en el Peru fuera Dedalo, de qué le sirvio utilizar Tor? Despues de hacer el perfil criminalístico y otros indicadores (no necesariamente cibernéticos) de los atacantes de la red PCM, como mínimo, la policia militar tendría causa probable para visitar la casa de Dedalo y revisar sus equipos, si Dedalo en realidad hubiera llevado a cabo estos ataques, de que le sirvio utilizar Tor? De absolutamente nada. Aquí viene el punto clave que quiero hacer: El anonimato que te da Tor, no te lo da tanto por su protocolo y su criptografía y demás, si no por el hecho que trata de confundir tu tráfico con el de los demás usuarios, asumiendo que no hay ninguna entidad omnipresente que puede escuchar todo el tráfico de toda la Internet, todo el tiempo. Es por esta razón que muchos “zealot power users” de Tor son tan vehementes en decirte que uses Tor (tienen una agenda oculta, propia), y te afirman y confirman que es super “seguro” (a pesar de que no lo es tanto como hemos visto en el FAQ, y por muchas otras razones, que para explicarlas se necesitarían muchísimos más posts, mucho mas largos). En realidad el verdadero interés de muchos de estos usuarios es simplemente no quedarse siendo los únicos que están usando Tor. Para un miembro de una comunidad pequeña, usar Tor, de hecho, es CONTRAPRODUCENTE, puesto que basicamente le pinta una diana en la espalda. Particularmente, pienso que es sumamente inmoral por parte de estas personas andar engrandeciendo maliciosamente los poderes de anonimato que provee Tor sin advertir sobre sus riesgos simplemente porque tienen sus propios intereses, i.e. el de protegerse ellos mismos a costa de los más desposeidos en términos de conocimiento técnico. A estos tipos no les interesa que te metas en lios porque no te advirtieron que debías usar Tor de forma cuidadosa. Lo más irónico es que ni siquiera la gran mayoría de estos “power users” se ha tomado la molestia de entender en profundidad el protocolo para hablar con propiedad sobre su privacidad o la falta de ella. Lamentable, pero cierto.
8:07 – Está cifrada y no se puede leer.
Este tipo de afirmaciones son temerarias. El riesgo obvio aquí es que si el generador de números aleatorios no es bueno, o si, para llevarlo a nuestros tiempos, alguien ha envenenado la implementación de los algoritmos de generación de números aleatorios, por más cifrada que esté esta información, los responsables de haber hecho este envenenamiento podrán leer esta información sin ningún problema. No viene al caso de lo que quiere ejemplificar con el tema que habló el expositor del primer video, pero es sin embargo, una afirmación al menos imprecisa. Paranoia? Para ejemplo, un botón: http://www.theregister.co.uk/2013/09/05/nsa_gchq_ssl_reports/
9:06 – No todos los exit nodes les van a robar la información, de hecho la mayoría van bien.
Esta es una de las peores afirmaciones que he escuchado en toda mi vida. La peor recomendación que se le puede dar a alguien es: “confia en los exit nodes”. Por el contrario, lo que se debería asumir, es que TODOS los exit nodes son maliciosos, y en consecuencia usar SIEMPRE HTTPS desde tu PC, como lo dice (imprecisamente) Dedalo. La manera correcta de decirlo es que hay que proteger SIEMPRE TODO el tráfico, no solo el HTTP, desde el punto de origen. De hecho, hay que asumir que todo el tráfico que sale por los exit nodes puede ser espiado, pero PEOR AUN, puede ser MODIFICADO. Si leen mi TL de twitter, pueden encontrar al menos un caso de un exit node ruso que estaba modificando binarios de forma transparente al vuelo sin que los usuarios se dieran cuenta. Las consecuencias de un ataque como éste son tarea para Deadalo, ésta es la tarea más facil de todo el post probablemente. Adicionalmente, la afirmación sobre que “la mayoría” de exit nodes "van bien" (no son maliciosos?), en general, no sólo es atrevida, sino que es una de las peores prácticas que se puede asumir. Es mas, aún si no usas Tor, hoy en día, tal como estan las cosas, si no te preocupas cada vez que visitas una página web sin usar TLS, realmente no estas prestando atención a lo que esta pasando alrededor tuyo. Tarea para Dedalo, investigar cuales son los peligros de usar HTTP en lugar de HTTPS, aún cuando no estas usando Tor.
9:41 – Si el señor sabe como decifrar este tráfico, que lo comparta, porque sería una brecha de seguridad en Tor...

Y bueno, con ésto cierro este largo post, despues de una larga ausencia en la escritura de este blog, con unos comentarios parecidos a los de Dedalo:

Sobre un fragmento de tu post:
ResponderEliminarY mucho más importante, si alguien sabe de una forma de vulnerar catastróficamente la red Tor que no sea bien conocida y bien documentada, en realidad crees que le puedes pedir a alguien “que lo diga”? LOL. O sea, en serio, quien en su sano jucio haría algo así? De repente hace 15 años que viviamos en una utopia naciente de donde existía el “full disclosure”, todavía, lo encontraría más razonable. Hoy en día la gente hace millones y millones de dolares en un mercado de vulnerabilidades que se mueve entre compradores con mayor y menor ética.
Preguntas: Si tu encuentras un fallo catastrófico en Tor, publicarías el fallo, o harías Millones ? Quiero pensar que tu respuesta sería publicar.
Saludos,
Excelente pregunta. Muchas gracias por hacerla. Probablemente podría escribir todo un post respecto al tema. Sin embargo, puedo dar un adelanto por aquí. Primero, una vez descubierta una vulnerabilidad, es un imperativo moral dejarle saber a los responsables del software para que lo arreglen. Adicionalmente, se convierte en algo igualmente importante prevenir que esa información caiga en manos de inescrupulosos que vayan a hacer daño a los usuarios. En consecuencia, "publicarla" al público en general está totalmente fuera de consideración, a menos que se tenga suficiente evidencia como para creer que los responsables no tienen la intención de arreglarla. Sólo en ese caso, se podría considerar publicarla al resto del mundo, esperando que el riesgo adicional sea atenuado por los beneficios que se puedan conseguir, por ejemplo, estudio y publicación de medidas atenuantes, parches no-oficiales, etc. Sin embargo, ninguno de esos sucesos está garantizado y en consecuencia la decisión de publicar requiere un análisis muy dificil y muy delicado en el que se tiene que sopesar todas las consecuencias. Entonces, entregarla a los responsables para que lo arreglen es lo indicado y siempre debe ser tu primera intención. Ahora bien, mi punto en el post, no se si fue pasado por alto, es que vivimos en un mundo sumamente complicado. Tomar la decisión de publicar no sólo es difícil desde el punto de vista ético personal y profesional sino que ademas puede traer consecuencias muy indeseables. Los casos de retaliación judicial contra los investigadores y hasta muertes inesperadas de mucha sospecha a su alrededor (como el caso que mencioné en el post) son cada vez más y más comunes. Afortunadamente, descubrir una vulnerabilidad no es algo que te sucede "por suerte", y realmente siempre se puede tener el control de lo que haces responsablemente. Hasta aquí la respuesta genérica. Ahora, específicamente, lo que hago yo:
ResponderEliminarSimplemente, nunca reviso o evalúo un software/sistema sin que me lo pidan los responsables y trato de cobrar lo que vale mi trabajo. De esta forma, nunca me veo en la encrucijada moral de decidir si debo publicar o no, y espero hacer millones de a poquitos. :-)