Tres cosas que todo el mundo puede hacer ahora:
- Por favor considere ejecutar
un repetidor para ayudar a crecer a la red Tor.
- ¡Dígaselo a sus amigos! Consiga que ejecuten repetidores. Consiga que ejecuten
servicios ocultos. Consiga que se lo digan a sus amigos.
- Estamos buscando financiación y esponsors. Si le gustan los fines de Tor,
por favor tomese un momento para donar para apoyar
el nuevo desarrollo de Tor. Además, si conoce compañías, NGOs, agencias,
u otras organizaciones que quieran seguridad en las comunicaciones, hágales
saber de nosotros.
- Necesitamos buenas maneras de interceptar peticiones DNS para que
no se filtre su petición a un observador local mientras intentamos ser
anónimos. (Esto pasa porque la aplicación hace la resolución DNS antes
de ir al proxy SOCKS.)
- Asuntos de Tsocks/dsocks:
- Necesitamos aplicar
todos nuestros parches de tsocks y mantener un nuevo fork. Nosotros lo hospedaremos
si quiere.
- Deberíamos parchear el programa "dsocks" de Dug Song para que use las
órdenes mapaddress de Tor desde el interfaz de control, para que
no desperdiciemos un viaje de ida y vuelta dentro de Tor haciendo la
resolución antes de conectar.
- Necesitamos hacer que nuestro script torify detecte cuál de tsocks o
dsocks está instalado, y llamarlos apropiadamente. Esto probablemente significa
unificar sus interfaces, y podria suponer compartir código entre ellos o
descartar uno enteramente.
- La gente que ejecuta repetidores nos dice que quieren tener un BandwidthRate
durante una parte del día, y un BandwidthRate diferente en otras partes
del día. Mejor que codificar esto dentro de Tor, deberíamos tener un pequeño
script que hable via el Interfaz de Control de Tor,
y que use setconf para cambiar el ancho de banda usado.
Hay uno ya para Unix y Mac (usa bash y cron), pero los usuarios de Windows
todavía necesitan una solución.
- Tor puede salir
de la red Tor desde un nodo de salida particular, pero deberiamos poder
especificar simplemente un país y que se elija uno automáticamente. Lo
mejor es obtener el directorio de Blossom también, y ejecutar un cliente
Blossom local que obtenga este directorio de forma segura (via Tor y comprobando
la firma), que intercepte hostnames .country.blossom, y que haga
lo correcto.
- A propósito de datos de geolocalización, alguien debería dibujar un
mapa de la tierra con una marca para cada repetidor Tor. Bonus si se
actualiza conforme la red crece y cambia. Desafortunadamente, las formas
fáciles de hacer esto es enviar todos los datos a Google y hacer que te
dibuje el mapa. ¿Cuánto impacto tiene esto en la privacidad, y tenemos
alguna otra opción buena?
- Hemos oído que los usuarios de Tor pueden ser víctimas de ataques
que rompen el anonimato desde javascript, java, activex, flash, etc,
si no los desactivan. ¿Existen plugins (como NoScript para Firefox) que
hagan más fácil a los usuarios controlar este riesgo? ¿Cuál es el riesgo
exactamente?
- ¿Hay un conjunto completo de plugins que reemplacen toda la funcionalidad
de Privoxy para Firefox 1.5+? Hemos oído que Tor es mucho más rápido cuando
sacas a Privoxy del conjunto.
- Por favor ayude a Matt Edman con la documentación y howtos de su
controlador Tor,
Vidalia.
- Evalúe y documente
nuestra
lista de programas que pueden ser configurados para usar Tor.
- Necesitamos mejor documentación para interceptar dinámicamente conexiones
y enviarlas a través de Tor. tsocks (Linux), dsocks (BSD),
y freecap (Windows) parecen buenos candidatos, y también lo sería usar mejor
nuestra nueva característica de TransPort.
- Tenemos una lista enorme de programas
potentialmente útiles que son interfaz con Tor.
¿Cuáles son útiles en cada situación? Por favor ayudenos a probarlos y
documentar sus resultados.
- Ayudenos a traducir la página web y la documentación a otros idiomas.
Vea las guías de traducción si quiere ayudar.
Necesitamos especialmente traducciones al árabe o al farsi, para los muchos usuarios de Tor en áreas con censura.
- Los repetidores Tor no funcionan bien en Windows XP. En
Windows, Tor usa la llamada al sistema estandar select(),
que usa espacio en la zona no paginada. Esto significa que un repetidor
Tor de tamaño medio vaciará la zona no paginada, causando
el caos y colgando el sistema. Probablemente deberíamos estar usando E/S
solapada en su lugar. Una solución sería enseñarle a libevent a usar
E/S solapada en lugar de select() en Windows, y luego adaptar Tor a
la nueva interfaz de libevent.
- Como los repetidores Tor tienen que almacenar-y-reenviar cada célula
que manejan, los repetidores Tor de gran ancho de banda terminan usando
docenas de megabytes de memoria sólo para buffers. Necesitamos mejores
heurísticas para cuándo encojer/expandir los buffers. ¿Quizás esto debería
de modelarse siguiendo el diseño de buffers del kernel de Linux, en donde
tenemos muchos buffers pequeños enlazados entre sí, en lugar de buffers
monolíticos?
- Necesitamos un sitio central oficial que responda preguntas del tipo
"¿Es esta dirección IP un repetidor Tor de salida?". Debería dar varias
interfaces, incluyendo una interfaz web y una interfaz de estilo DNSBL.
Puede dar las respuestas más actualizadas guardando un mirror local de la
información del directorio Tor. Lo más lioso es que ser un repetidor de salida
no es un valor lógico: así que la pregunta es en realidad "¿Es esta
dirección IP un repetidor Tor de salida que puede salir a mi dirección:puerto IP?"
El interfaz DNSBL recibirá probablemente cientos de peticiones por minuto,
así que se necesitan algoritmos inteligentes. Puntos de bonus si hace testing
activo a cada nodo de salida para averigura de qué direcciones IP está
realmente saliendo.
Lea más aquí.
- Algunas veces los repetidores Tor se cuelgan, o a los ordenadores en los
que están se les cae la red, u otros accidentes pasan. Algunos operadores Tor
han expresado un interes en inscribirse en un servidio "de notificación"
que compruebe periódicamente si sus repetidores Tor están saludables y
les envíe un correo de recuerdo si no lo están. ¿Alguien quiere escribir
unos cuantos scripts cgi, unas cuantas páginas web, y configurar algún tipo
de hack con wget y/o algo más complejo como Nagios para hacer la monitorización?
La primera versión podría comprobar sólo el puerto de directorio, e.g.
mirar la página de stado de la red cacheada para la dirección IP y el
puerto correctos y luego pedir la página "/tor/server/authority".
- Sería estupendo tener un LiveCD que incluya las últimas versiones
de Tor, Polipo o Privoxy, Firefox, Gaim+OTR, etc. Hay dos retos aquí:
primero documentar el sistema y las elecciones lo suficientemente bien
para que la gente de seguridad pueda formarse una opinión sobre si debería
ser seguro, y la segunda es averiguar cómo hacerlo fácilmente mantenible,
para que no se quede obsoleto rápidamente como AnonymOS. Puntos de Bonus
si la imagen de CD cabe en uno de esos CDs de tamaño pequeño.
- Relacionado con la imagen de LiveCD, deberíamos trabajar en una
imagen USB que sea intuitivamente segura y bien documentada para Tor
y las aplicaciones de soporte. Bastante de la parte difícil es decidir
qué configuraciones son seguras, documentar esas decisiones, y hacer
algo que sea fácil de mantener en el futuro.
- Nuestro interfaz gráfico preferido para Tor, llamado
Vidalia, necesita todo tipo
de trabajo de desarrollo.
- Necesitamos constuir realmente nuestro diseño de resistencia al bloqueo. Esto incluye
rellenar el diseño, modificar muchas partes distintas de Tor, adaptar
Vidalia para que soporte las
nuevas características, y planificar la implantación.
- Necesitamos un entorno de simulación flexible para estudiar los
ataques de confirmación de tráfico de punta a punta. Muchos investigadores
han creado rápidamente simuladores ad-hoc para dar soporte a sus intuiciones
o bien de que los ataques funcionan muy bien o de que alguna defensa funciona
bien. ¿Podemos construir un simulador que esté documentado claramente y
lo suficientemente abierto para que todo el mundo sepa que está dando
una respuesta razonable? Esto generará mucha investigación nueva.
Vea la entrada debajo sobre ataques de confirmación
para detalles sobre el aspecto de investigación de esta tarea —
quién sabe, cuando esté hecho quizás usted pueda escribir un artículo o
varios también.
- Necesitamos un estudio que mida Polipo
contra Privoxy. ¿Es Polipo en
realidad significativamente más rápido, una vez que se tiene en cuenta
la ralentización debida a Tor? ¿Son los resultados los mismos tanto en Linux
como en Windows? Relacionado, ¿maneja Polipo más sitios web correctamente que
Privoxy, o vice versa? ¿Hay problemas de estabilidad en alguna plataforma
común, e.g. Windows?
- Relacionado con lo dicho arriba, ¿querría ayudar a portar Polipo para que
se ejecute de forma estable y eficiente en Windows?
- Necesitamos un entorno de test distribuido. Tenemos test de unidad,
pero sería excelente tener un script que arranque una red Tor, la use
durante un rato, y verifique que al menos parted de ella funcionan.
- Ayude a Mike Perry en su biblioteca TorFlow
(TODO):
Es una biblioteca python que usa el protocolo de control de
Tor para indicar a Tor que construya circuitos de formas variadas,
y luego mide el rendimiento e intenta detectar anomalías.
- Tor 0.1.1.x y posteriores incluyen soporte para aceleradores criptográficos
hardware via OpenSSL. Sin embargo, nunca nadie los ha probado. ¿Alguien quiere
conseguir una tarjeta y decirnos cómo va?
- Perform a security analysis of Tor with "fuzz". Determine
if there are good fuzzing libraries out there for what we want. Win fame by
getting credit when we put out a new release because of you!
- Tor usa TCP para el transporte y TLS para encriptación del enlace.
Esto es bonito y simple, pero significa que todas las celdas de un enlace se
retrasan cuando se pierde un solo paquete, y significa que sólo podemos
permitir flujos TCP. Tenemos una lista
de razones por las que no hemos cambiado a transporte UDP, pero sería excelente
ver que esa lista se hace maś corta. También tenemos una propuesta de especificación
para Tor y UDP — por favor díganos qué problemas tiene.
- No estamos tan lejos de tener soporte IPv6 para las direcciones
de destino (en los nodos de salida). Si le importa mucho IPv6, ése es
probablemente el primer sitio para empezar.
- ¿No le gusta ninguna de éstas? Mire el plan de desarrollo Tor
para más ideas.
- ¿No ve su idea aquí? ¡Probablemente la necesitemos de todas formas!
Contáctenos y averígüelo.
- El "ataque de fingerprint de sitios web": hacer una lista de unos
cuantos cientos de sitios web populares, descargar sus páginas, y hacer
una serie de "firmas" para cada sitio. Entonces observar el tráfico de
un cliente Tor. Conforme lo observa recibiendo datos, rápidamente se
puede adivinar cuál de esos sitios está visitando (si los visita).
Primero, cómo de efectivo es este ataque en el código Tor? Después
empezar a explorar defensas: por ejemplo, podríamos cambiar el tamaño
de celda de Tor desde 512 bytes a 1024, podríamos usar técnicas de
relleno como descarte defensivo,
o podríamos añadir retrasos al tráfico. ¿Cuánto impacto tienen éstos,
y cuánto impacto en la usabilidad (usando alguna métrica adecuada)
tiene una defensa exitosa en cada caso?
- El "ataque de confirmación de tráfico de punta a punta":
mirando el tráfico de Alicia y de Bob, podemoscomparar
las firmas de tráfico y convencernos de que estamos mirando el mismo
flujo. Por ahora Tor acepta esto como un hecho consumado y asume que
este ataque es trivial en todos los casos. Lo primero de todo, ¿es eso
realmente cierto? ¿Cuánto tráfico de qué tipo de distribución se necesita
para que el adversario tenga confianza en que ha ganado? ¿Hay escenarios
(e.g. no transmitir mucho) que enlentecen el ataque? ¿Algunos esquemas
de relleno de tráfico o control de tráfico funcionan mejor que otros?
- El "ataque de las zonas de enrutado": la mayoría de la literatura
piensa en el camino en la red entre Alice y su nodo de entrada (y entre
el nodo de salida y Bob) como un enlace simple en algun grafo. En la
práctica, sin embargo, el camino atraviesa muchos sistemas autónomos
(ASes), y es común
que el mismo AS aparezca tanto en el camino de entrada como en el de salida.
Desafortunadamente, para predecir con precisión si un cuádruple Alice, entrada,
salida, Bob será peligrosos, necesitamos descargar una zona de enrutado de Internet
entera y hacer operaciones caras en ella. ¿Hay aproximaciones prácticas, como
evitar direcciones IP en la misma red /8?
- Otras preguntas de investigación sobre la diversidad geográfica consideran
la compensación entre elegir un circuito eficiente y elegir un circuito aleatorio.
Mire el
artículo de posición de Stephen Rollyson sobre cómo descartar elecciones
particularmente lentas sin dañar el anonimato "demasiado". Esta línea de
razonamiento necesita más trabajo y más ideas, pero parece muy prometedora.
- Tor no funciona muy bien cuando los repetidores tienen ancho de banda
asimétrico (e.g. cable o DSL). Como Tor tiene conexiones TCP separadas
para cada salto, si los bytes de entrada llegan bien y los bits de salida
se están descartando todos, los mecanismos de ralentización de TCP no
transmiten realmente esta información de vuelta a los flujos de entrada.
¿Quizás Tor debería detectar cuándo está descartando muchos paquetes de
salida, y limitar la velocidad de los flujos de entrada para regular esto
él mismo? Puedo imaginar un esquema de subida y bajada de la velocidad
en el que elegimos un límite conservativo, lo incrementamos despacio hasta
que se pierdan paquetes, lo bajamos y repetimos. Necesitamos alguien que
sea bueno con las redes para simular esto y ayudar a diseñar soluciones;
y/o necesitamos entender la extensión de la degradación del rendimiento,
y usar esto como motivación para reconsiderar el transporte UDP.
- Un tema relacionado es el control de congestión. ¿Es nuestro
diseño actual suficiente una vez que tengamos un gran uso? Quizá
deberíamos experimentar con ventanas de tamaño variable en lugar
de ventanas de tamaño fijo? Eso pareció ir bien en un experimento
de rendimiento de ssh. Necesitaremos medir y hacer cambios, y quizás
reestructurar si los resultados son buenos.
- Para permitir a disidentes de paises remotos usar Tor sin ser
bloqueados en el cortafuegos del país, necesitamos una forma de conseguir
cientos de miles de relays, no sólo unos cuantos cientos. Podemos imaginar
un GUI del cliente Tor que tenga un botón de "Tor para la Libertad" arriba
que abra un puerto y reenvie unos cuantos KB/s de tráfico a la red Tor.
(Unos cuantos KB/s no deberían ser mucha molestia, y hay pocos casos de abuso
ya que no son nodos de salida.) ¿Pero cómo distribuimos una lista de estos
clientes voluntarios a los disidentes buenos de un modo automático que no deje
a los cortafuegos a nivel de país interceptarlos y enumerarlos? Probablemente
necesite funcionar en el nivel de confianza entre humanos. Vea nuestro
documento de diseño inicial de
resistencia al bloqueo y nuestra
entrada
de la FAQ sobre esto, y luego lea la sección
de restencia a la censura de anonbib.
- Los circuitos Tor se construyen un salto cada vez, así que en teoría tenemos
la habilidad de hacer que algunos flujos salgan del segundo salto, algunos del
tercero, y así sucesivamente. Esto parece bueno porque rompe el conjunto de
flujos de salida que un repetidor dado puede ver. Pero si queremos que cada flujo
esté seguro, el camino "más corto" debería ser al menos de 3 saltos de acuerdo con
nuestra lógica actual, así que el resto serán aún más largos. Necesitamos examinar
este intercambio forzado entre rendimiento y seguridad.
- No es tan difícil hacer DoS a repetidores Tor o autoridades de directorio.
¿Son los puzzles a los clientes la respuesta correcta? ¿Qué otros enfoques prácticos
hay? Bonus si son compatibles hacia atrás con el protocolo Tor actual.
¡
Háganoslo saber si ha hecho progreso en algo
de esto!