Você está na página 1de 6

Una implementacin para redes DC o Informe Final

Thomas Ernstorfer ternstor@inf.utfsm.cl Departamento de Informtica a Universidad Tcnica Federico Santa Mar e a
Resumen En este trabajo se explican el funcionamiento de las redes de anonimato, en particular de las redes del tipo DC (Dining Cryptographers). Luego se presenta el estado del arte sobre estos tipos de redes y la base terica que permite su funcionamiento. Finalmente, se presenta un modelo, protocolo e implementacin o o simples con nes ilustrativos y de prueba.

1.
1.1.

Redes de anonimato
Introduccin al problema o

El ocultar el contenido de los mensajes, usando criptograf no es suciente para hacer annima la a, o comunicacin, pues an se puede observar quien env los mensajes a quien, y en que instantes, siendo o u a posible as realizar anlisis de trco. Adems, mediante el control remoto, e.g. troyanos, del emisor o el a a a receptor, pueden saltarse las barreras criptogrcas y acceder a informacin (direccin) del otro participante a o o en la comunicacin [1]. o Las dos principales formas de hacer annima la comunicacin entre un emisor y un receptor son el o o mantener secretos el emisor y el receptor, o el hacer invinculables el mensaje enviado por el emisor con el mensaje recibido por el receptor [1, 2].

1.2.

Objetivos generales
DC networks are usually considered a more elegant but less practical anonymity scheme than Mix networks. Accordingly, the literature describing DC networks is mostly theoretical [3].

Al momento de realizar este trabajo, la unica implementacin conocida y disponible para uso libre [4] o es de Immanuel Scholz1 . Se discuti por email con el, la posibilidad de trabajar sobre su cdigo y ciertos o o aspectos del protocolo que el planteo, a lo que el accedi. o La propuesta de protocolo es bastante simple [5], pero su implementacin compleja para nes ilustrativos o y de reusabilidad [4]. Inicialmente la intencin era extender este cdigo, pero su complejidad y problemas de o o mantencin cambiaron el rumbo de este trabajo. o Posteriormente se decidio reimplementar esto en forma ms sencilla, minimizando el diseo, pero provea n yendo mayor extensibilidad y comprensin para usuarios externos. Esto se realizar utilizando el lenguaje o a python en vez de Java, disminuyendo el nmero de clases, y agregando nuevas abstracciones que faciliten el u agregar nuevas caracter sticas [6]. El objetivo principal es crear una base ilustrativa, slida y reusable para fomentar la investigacin y o o programacin en este tipo de redes. Una vez que el cdigo est lo sucientemente maduro, se pondr en la o o e a
1 Diplom

Informatiker en TU-Dresden, http://www.inf.tu-dresden.de/index.php?node_id=2043

red para el uso de quien desee, esperando recibir propuestas, comentarios, criticas y futuras extensiones. El alcance del proyecto es global, y su xito depender de la calidad de este y de la necesidad y curiosidad de e a otros usuarios hacia las redes de anonimato, y en particular hacia este tipo de redes [6].

1.3.

Objetivos espec cos


Probar y ver las funcionalidades y desventajas de la implementacin en [4]. o Crear una base de cdigo que sea ilustrativa y usable. Como comienzo, se decidi implementar solo o o una red que soporte publicacin de mensajes (chat). o Probar efectivamente el funcionamiento annimo de la red. Esto pretende realizarse mediante sniers, o al ver en los participantes de la red que efectivamente no puede determinarse el origen del mensaje publicado.

Los objetivos ms espec a cos son:

2.

Estado del arte

Estados del arte ms en profundidad, con ms detalles y relativamente ms actualizados se encuentran a a a en [7, 4, 8]. Los papers que se mencionan a continuacin son los que ms han inuido en el desarollo de las o a redes DC y sus variantes: 1. Las redes del tipo DC fueron propuestas por David Chaum en el ao 1988 [9]. En este paper se plantea n el caso base con bits, se generaliza a n participantes, se demuestra el anonimato incondicional para este caso y se detallan algunos problemas de implementacin como la deteccin de colisiones y uso indebido o o de la red. Para esto propone un sistema de trampas. 2. En 1989, Michael Weidner [10] publica la demostracin del funcionamiento de la red para grupos o abelianos, intuido desde antes por Chaum. Sugiere tambin un modelo fail-stop al hacer broadcast e cuando los clientes detectan datos incongruentes. 3. En 1990, Michael Waidner y Birgit Ptzmann [11] identican una debilidad en el protocolo que permite permear el anonimato de clientes honestos. Proponen una ronda de reservacin con trampas, similar a o la propuesta de Chaum para solucionar este problema. 4. El ao 2000, en [12] es propuesto un modelo similar a una red DC pero con menor tiempo de uso al n amortizar la complejidad del intercambio de llaves. 5. El ao 2004, muchas mejoras en el mecanismo de rondas y deteccin de clientes deshonestos son n o mejoradas y propuestas en [7]. 6. El ao 2006, se plantean las Anonymous Veto Networks, una mejora a las redes DC que manejan en n forma eciente colisiones, intrusos y clientes requiriendo solo dos rondas [8].

3.
3.1.

Base terica o
Caso base

Tres criptgrafos estn cenando en una mesa circular. Ellos desean saber si quien esta pagando la cena o a es la NSA, o alguno de ellos. Si es alguno de ellos, desean mantenerlo annimo. o Para esto, cada criptgrafo arroja una moneda sin sesgo, y permite verl, tras el men, solo a si mismo o a u y al criptgrafo de la derecha. Luego, cada criptgrafo anuncia en voz alta si la moneda que el lanzo, ms o o a la moneda de la derecha, cayeron en caras iguales o distintas. Si uno de los criptgrafos esta pagando, el o 2

0 B 0 B 0 B 0 B 0 B '$ '$ '$ '$ '$ A 0 A 0 A 0 A 0 A 1

&% &% &% &% &% 0 C 1 C 0 C 1 C 1 C


(a) NSA paga, 0 diferencias. (b) NSA paga, 2 diferencias. (c) C paga, 0 diferencias, pero C las deja en 1. (d) C paga, 2 diferencias, pero C las deja en 1. (e) Similar a (1d), pero distinta distribucin. o

Figura 1: Distintas distribuciones de monedas que muestran todos los casos posibles de diferencia e igualdad para cada criptgrafo. Los dos nmeros a los costados de cada criptgrafo son conocidos por el y comparados o u o para determinar la igualdad o diferencia. dice lo contrario de lo que realmente ve. Si el nmero de diferencias es impar, la NSA est pagando, y por u a el contrario, si el nmero de diferencias es par, un criptgrafo esta pagando [9, 1]. u o Para ver porque el protocolo es incondicionalmente seguro, basta ver las situaciones para las cuales un criptgrafo, que no est pagando, desea averiguar que criptgrafo esta pagando: o a o Si las dos monedas que B ve son la misma, uno de los criptgrafos dijo diferentes y el otro dijo o iguales. Si la moneda que B no ve es la misma que las dos monedas que el ve (caso (1c)), entonces el criptgrafo que dijo diferentes es el que esta pagando. Si la moneda que B no ve es distinta a las o que si ve (caso (1d)), entonces el criptgrafo que dijo iguales es el que paga. Pero como la moneda o oculta a B es no sesgada, los dos casos son equiprobables. Si las dos monedas que A ve son distintas, y los otros dos criptgrafos dijeron diferente (caso (1e)), o entonces quien paga esta ms cerca a la moneda que es la moneda que A no ve. Si los otros dos a criptgrafos dicen iguales (caso (1d)), entonces el que paga esta ms cerca de la moneda distinta a o a la moneda oculta. As para cada caso, un criptgrafo que no esta pagando la cena, no aprende nada sobre cual de los otros , o dos esta pagando [9, 1].

3.2.

Generalizacin o

Considerando ahora n criptgrafos, P = {P1 , . . . , Pn }, sentados alrededor de una mesa circular. Sea b(h,i) o los bits compartidos entre los criptgrafos Ph y Pi . As cada criptgrafo Pi , conocer dos secuencias de o o a bits de informacin, las llaves b(h,i) y b(i,j) , de un total de n llaves. Estas llaves deben ser establecidas entre o los pares a travs de un canal seguro. e Cada criptgrafo computa un valor vi = b(h,i) b(i,j) si , donde si es el mensaje que el criptgrafo desea o o comunicar annimamente. Este valor vi es comunicado a todas las personas en la mesa, anlogamente a las o a igualdades y diferencias. Cuando todos los vi han sido hecho pblicos, la existencia del mensaje si puede ser u detectada mediante la operacin XOR de cada vi [7, 1]. o s = v1 vn s = (b(n,1) b(1,2) s1 ) (b(n1,n) b(n,1) sn ) s = (b(n,1) b(n,1) s1 ) (b(n1,n) b(n1,n) sn ) s = s1 sn Visualizando el problema como un grafo, cada participante corresponde a un vrtice y cada llave compartida e a una arista. Los vrtices unidos por una arista, corresponderan a los participantes que comparten la llave e asociada a dicha arista que los une. Las ideas de grafo y mesa redonda pueden ser usadas por igual, pues, 3

sin prdida de generalidad, se puede asumir que el grafo es conexo, i.e., existe una ruta entre todos los nodos e que lo componen, y por lo tanto, puede construirse un circuito que simule una mesa redonda [9]. As una , red overlay puede formar el circuito circular necesario para simular una red de criptgrafos comensales [1]. o

3.3.

Prueba de anonimato incondicional

Esta tcnica en la cual el mensaje es oculto al ser enviado con un conjunto de datos, a los cuales se les e realiza cierta operacin para revelar el mensaje original se llama envio superpuesto. Se puede demostrar que o la tcnica de envio superpuesto garantiza anonimato incondicional, no tn solo para el caso anterior con bits e a y la operacin XOR, sino para cualquier grupo abeliano. o Denicin (Grupo y Grupo Abeliano). Un grupo (A, ) es un conjunto A para el cual se ha denido o la operacin binaria , y satisface las siguientes propiedades: o Operacin interna: x, y A : x y A. o Asociatividad: x, y, z A : x (y z) = (x y) z. Elemento neutro: x A : !e : e x = x e = x. Elemento simtrico: x A, A : x x = x x = e. e e Para que un grupo sea abeliano, debe adems cumplir con la propiedad conmutativa: a a, b A : a b = b a. El caso mencionado anteriormente corresponde al grupo abeliano GF (2) = ({0, 1}, ). Sea (F, +) un espacio abeliano. Llamaremos a F un alfabeto. La idea de la prueba es demostrar que, un atacante con control sobre un conjunto de T criptgrafos, no obtiene informacin sobre quien envia el mensaje al recibir o o las llaves. Para cada suma parcial vi T conocida (se conocen las llaves que la crearon) y para cada sospecha a priori de quien sea el emisor consistente con vi , existir la misma cantidad de combinaciones de llaves bj a que sean consistentes con la sospecha. As las sospecha son equiprobables, y por lo mismo, intiles, pues no , u revelan informacin de quien envi el mensaje [3]. o o Teorema (Anonimato incondicional del envio superpuesto). Para cada vector de mensajes enviados (s1 , . . . , sn ) F n que sea consistente con el conocimiento a priori del atacante sobre el mensaje a enviar, i.e., satisfaciendo la condicin o
n n

vj =
j=1 j=1

sj ,

se cumple que el mismo nmero de combinaciones consistentes de llaves son posibles para todos los casos de u vj conociendo s. Es decir, la probabilidad condicional de conocer el mensaje (s1 , . . . , sn ) vistas todas las sumas parciales (v1 , . . . , vj ) (posteriori) es igual a la probabilidad condicional de conocer (s1 , . . . , sn ) dada solo las sumas parciales conocidas por el atacante (a priori) [10]. Demostracin. La demostracin para GF (2) en [9] utiliza un sistema de ecuaciones solucionable para deo o mostrar la igualdad de las probabilidades a priori y posteriori. Para el caso ms general, se utiliza induccin a o estructural sobre el grafo de la red [10]. Las pruebas requieren un entendimiento ms profundo sobre teor a a de grupos y escapan a el alcance de este trabajo.

4.
4.1.

Aspectos destacables del desarollo


Implementacin en Java o

El protocolo implementado en [4] utiliza un servidor, que lleva una mtrica de ticks (intervalos) de tiempo e para coordinar que las siguientes etapas se realizen atmicamente: o 1. Conseguir lista de participantes y sus llaves. 2. Preparar y enviar el mensaje nuevo 3. Recibir el mensaje despues que todos los clientes enviaron. 4. Conrmar que todos los clientes han recibido el mensaje. Cada una de estas operaciones lleva un nmero de ronda asociado, pues estas requieren que todos los u clientes operen entre si circularmente. El servidor y los clientes estn programados en Java. Cuando existen a colisiones en el envio de mensajes, los clientes utilizan backo exponencial para reenviar, con un timeout nal mximo. La comunicacin entre los clientes y el servidor se realiza mediante llamadas XML-RPC. El a o intercambio de llaves se realiza utilizando Die-Hellman Para crear una red, se utilizan las siguientes primitivas: join: Si el cliente es el primero, inicializa una sesin de gathering. Si no, se une a la sesin. o o gathering: Devuelve la identicacin de la red creada para ser dada a join. o create: Finaliza la sesin de gathering y crea una red. o Para cuando ya se ha creado la red, se denen las siguientes primitivas: information: Devuelve informacin esttica sobre la red. o a round: Devuelve el nmero de la ronda. u send: Env un mensaje. a

5.

Implementacin en Python o

La implementacin en python tambin utiliza un servidor de coordinacin y es similar a [4] pero utiliza o e o un modelo two phase commit protocol [13] para cada etapa. Es decir, se asegura que todos los clientes hayan realizado sus operaciones pertinentes antes de continuar. Esto diere del modelo utilizado en [4] en el cual si las rondas no calzan, se intenta repetir la operacin. o Este modelo tiene un grafo de estados asociados en el servidor. Las llamadas de los clientes tambien son realizadas utilizando XML-RPC. Se elimin la sesin de gathering, inicindose la primera ronda inmediatao o a mente cuando se conectan un nmero de clientes denido. u Se alcanz a implementar hasta el intercambio de llaves, faltando an el envio del mensaje y comprobar o u que lleg a todos los clientes. o

6.

Pruebas y resultados
El desarollo no fue completo, por lo que no se pudo probar el anonimato de esta red utilizando sniers.

7.

Conclusiones

Se puede concluir que el modelo utilizado es ms simple en su cdigo y para entenderlo desde el punto a o de vista de un usuario externo o un principiante en este tipo de redes. Es decir, se logro el objetivo de ser ilustrativo. Lamentablemente no se ha podido completar el desarollo an, pero la mayor parte del trabajo u (creacin del modelo y intercambio de llaves) ya esta hecha. Tampoco se cumpli con poder comprobar este o o anonimato con sniers al no nalizar el desarollo. La aparicin de las redes annimas de veto [8] son una solucin ptima a este problema y representan el o o o o futuro de las redes del tipo DC.

Referencias
[1] Thomas Ernstorfer. Sistemas de comunicacin: Redes annimas, 2008. o o [2] Andreas Ptzmann and Michael Waidner. Networks without user observability design options. In Proceedings of EUROCRYPT 1985. Springer-Verlag, LNCS 219, 1985. [3] David M. Martin and Jr. A framework for local anonymity in the internet, 1998. [4] Immanuel Scholz. Immanuel Scholz SVN repository. http://www.eigenheimstrasse.de/svn/dc/. [5] Immanuel Scholz. Dining cryptographers, the protocol. In 24th Chaos Communication Congress, 2007. [6] Thomas Ernstorfer. Taller de redes: Una implementacin para redes DC, 2009. o [7] Philippe Golle and Ari Juels. Dining cryptographers revisited. In Proceedings of Eurocrypt 2004, May 2004. [8] Feng Hao and Piotr Zieliski. A 2-round anonymous veto protocol. In the 14th International Workshop n on Security Protocols, 2006. [9] David Chaum. The dining cryptographers problem: Unconditional sender and recipient untraceability. Journal of Cryptology, 1:6575, 1988. [10] Michael Waidner, Birgit Ptzmann, and Interner Bericht. Unconditional sender and recipient untraceability in spite of active attacks - some remarks, 1989. [11] Michael Waidner and Birgit Ptzmann. The dining cryptographers in the disco: Unconditional sender and recipient untraceability. In Proceedings of EUROCRYPT 1989. Springer-Verlag, LNCS 434, 1990. [12] Shlomi Dolev and Rafail Ostrobsky. Xor-trees for ecient anonymous multicast and reception. ACM Trans. Inf. Syst. Secur, 3(2):6384, 2000. [13] Ral Monge. Sistemas distrubuidos: Diapositivas de clase, 2009. u

Você também pode gostar