Descargar Transparencias - ENJAMBRE
Transcripción
Descargar Transparencias - ENJAMBRE
http://marabunta.laotracara.com http://enjambre.laotracara.com David Gascón Cabrejas [email protected] http://www.laotracara.com ● Perspectiva Inicial – ¿Qué es Marabunta? ● – ¿Qué servicios ofrece actualmente Marabunta? ● – Intercambio de mensajes de forma anónima ¿Finalidad de Marabunta? ● ● – Plataforma P2P anónima y distribuida Contar con una red distribuida que no sea sensible a la censura Mandar mensajes a todos los nodos de forma, que en pocos segundos miles de nodos obtengan la información ¿Quién usa Marabunta? ● Toda aquella persona que quiere un canal de comunicación no controlado por las empresas de servicios de comunicación ni por organizaciones gubernamentales ● Perspectiva Inicial – ¿Intercambio de mensajes? ● – La idea es pensar en Marabunta como en un canal de distribución de mensajes de forma que la gente pueda expresar libremente sus ideas ¿Utilidad real? ● ● Programas similares se están usando en países como China, debido al control que el gobierno ejerce sobre la comunicación es ese país Cada día los gobiernos de los países occidentales, especialmente EEUU está aplicando censura a la hora de tratar temas conflictivos para el gobierno. Un ejemplo de esto es la censura aplicada sobre las páginas web de los soldados que estaban realizando misiones en Irak ● Redes P2P actuales: Conexiones – Directas ● Se establecen entre 2 nodos, los cuales conocen la información necesaria para conectar con su 'par' – + Puerto 155.210.229.244 : 80 ● Red GNUtella : esquema de P2P actual ● Redes anónimas (Perspectiva general): Conexiones – Indirectas (Topologías: anillo, chord, grid ...) ● La idea es poder establecer una conexión virtual entre A y C a través de B, de forma que A se conecta con B, y C se conecta con B (ambas conexiones de forma directa) – Hay que pensar en entornos limitados (NAT, Firewall ...) ● Marabunta: Conexiones Indirectas – Indirectas ● Es como en el esquema de las redes anónimas pero en este caso el destinatario es toda la red. – Queremos hacer broadcast de mensajes ● Marabunta: Conexiones Indirectas – La idea es que cada nodo se comporte como un servidor, de forma que además de ocuparnos de nuestras conexiones lo hagamos de las de los demás, reenviando los mensajes que le llegan, por lo que en cada paso incrementamos el anonimato ● Marabunta: Conexiones UDP/IP – Todas conexiones son mediante UDP/IP ,debido a que la comunicación de los datagramas se realiza NO orientada a conexión – Esto hace que sea imposible demostrar la veracidad del origen o destino de los mensajes que viajan por la red – La comunicación es tremendamente fluida – Las cuestiones de fiabilidad de las comunicaciones , y demás asuntos de conectividad y comunicación se relegan al nivel de aplicación ● Marabunta: Organización de la Red – Cada nodo conoce a un determinado número de hermanos de la red: Actualmente Máximo 15 nodos – Cada nodo sólo intercambia mensajes con sus hermanos – Cada 3 segundos , la aplicación manda un datagrama (de unos pocos bytes) a sus hermanos con 2 finalidades: ● Estoy vivo (ping ...) ● ¿Tienes nuevos hermanos que compartir conmigo? – Como la comunicación es UDP/IP y los mensajes se pueden perder pero a los 3 seg se volverá a mandar – Hay 10 min de TimeOut para eliminar a un hermano en caso de falta de respuesta ● Marabunta: Organización de la Red – Cada uno de los nodos decide si darse a descubrir o no – El tener un número máximo de nodos a los cuales nos podemos conectar como hermanos hace que la red se pueda ampliar guardando a su vez la identidad de gran parte de los nodos – NO hacemos reenvío de la petición “Busca Hermanos” a todos nuestros hermanos, se aplica un algoritmo de selección de hermanos a reenviar basado en la posición de los hermanos en la lista de almacenaje – Este algoritmo es la clave para mantener el anonimato en la red – Nunca reenviará mensaje de búsqueda de hermanos de un nodo conocido por el mismo método, haciendo que no pueda conocer a nodos más allá de 2 saltos ● Marabunta: Envío de Mensajes – Ante la llegada de un mensaje: ● Miramos el ID del mismo, a ver si ya lo hemos tratado ● En caso afirmativo se elimina ● En caso negativo lo reenviamos a TODOS nuestros hermanos – Como el envío en mediante datagramas UDP/IP la comunicación es tremendamente fluida y rápida – Como la difusión es total no nos tenemos que preocupar de reenviar los mensajes más de 1 vez – Los TimeOut's usados a la hora de realizar el envío de mensajes son de 1 seg, por lo que no sobrecargamos la red ● Marabunta: Envío de Mensajes – Conexiones actuales ● Marabunta: Envío de Mensajes – Envío de Mensajes ● Marabunta: Envío de Mensajes – Reenvío de Mensajes ● Marabunta: Accediendo a la Red – Conocer la IP de un nodo que está en la red – Cargar un fichero de IP's (histórico) que algún día estuvieron activas – Acceder a uno de los NIDOS de hormigas ● ● ● son listas que reflejan los últimos nodos que acceden a la red Utilizan el mismo algoritmo para su reparto que el que se usa en Marabunta para promocionar a un hermano en la red están implementados en php , y Marabunta accede de igual forma que lo haría un navegador web (de hecho realiza una petición http) ● Futuro de Marabunta – Problemas actuales ● ● ● Comunicación mediante redes cableadas, el acceso a la red sigue siendo un problema No podemos hacer broadcast a los nodos más allá de nuestro gateway principal en el mejor de los casos Las limitaciones de IPv4 ha hecho que se tengan que usar apaños como los NATS , lo que dificulta la comunicación si se usan routers que no soportan la creación de rutas de comunicación de entrada/salida para las comunicaciones UDP/IP ● Futuro de Marabunta – Desarrollo paralelo de “ENJAMBRE” (V.0.0 2006) ● Comunicación WIRELESS: – – – Posibilita el desarrollo de comunicación 100 % anónima Podemos hacer broadcast para entrar en la red Cada uno de estos “enjambres” tiene la posibilidad de ofrecer una serie de servicios ● Anonimato de los nodos ● ● Privacidad de la información : Cifrado, cifrado, cifrado ... Redes auto-organizativas ● ● Identificación Localización de los nodos ● El Entorno Adhoc – – Comunicaciones Directas ● Acceso libre al medio (el aire) ● Difusión Total en todo el radio de Acción (Broadcast) Redes autoorganizadas ● Ausencia de servidor centralizado ● Los nodos son encaminadores ● No hay capa de seguridad intermedia ● Exige un nivel de confianza entre ellos ● Anonimato – – Privacidad ● Proteger la Identidad Origen / Destino ● Proteger la Localización Espacial Origen / Destino ● Asegurar la NO trazabilidad de las comunicaciones Confidencialidad ● – Datos transmitidos Protección Ataques ● Evitar ataques personalizados ● Problemas Entorno Adhoc – Niveles de la Comunicación ● ● ● – Recursos Limitados ● ● – Están pensados para funcionar en entornos confiables Modelo TCP/IP sobre 802.11 no es válido Robo de Identidad : MAC e IP falseables Fuentes de Energía Limitadas CPU y memoria limitada (móviles, PDA's ...) Sensible ante Ataques ● Denegación de Servicio (DOS) ● Problemas de las soluciones de Anonimato – – Cifrado en las Comunicaciones ● Uso continuo del nivel de Aplicación para tratarlo ● Pérdida del encaminamiento a nivel de Red Gasto continuo de Recursos ● Acceso al nivel de Aplicación para la resolución de todo tipo de servicios (se sobrecarga el nivel más complejo) – Dominio de Confianza ● Necesidad de un sistema de claves común ● Objetivos de la Solución Propuesta – Anonimato eficiente ● Proceso Previo de Emparejamiento – ● Inundación Controlada – – Poner en común los secretos sin decirlos Aumento de la calidad del Anonimato Disponibilidad ● Filtros de Nivel de Enlace y Red – ● Técnicas eficientes frente a ataques (DOS) Múltiples Dominios de Confianza – Conseguir una red heterogénea ● Proceso Previo de emparejamiento: PAIRING – Broadcast ● Proceso Previo de emparejamiento: PAIRING ● Identificamos a que organizaciones pertenecemos con técnicas de conocimiento cero ● ● C (“27/03/2006/04”)CSx Se crea un canal seguro de comunicación y pueden intercambiarse las matrices de direcciones y la información para su transformación ( M0 M1 ... ... M j M j+1 ... ... M ni M ni+1 ... M i1 ... ... ... M j + i 1 ... ... ... M n1 )( , T0 T1 ... ... T j T j+1 ... ... T ni T ni+1 ... T i1 ... ... ... T j + i 1 ... ... ... T n1 ) ● Proceso Previo de emparejamiento: IP-FLOODING – Intercambio de Direcciones ● ● Una vez hemos establecido las conexiones seguras, intercambiamos las matrices de direcciones IP que usaremos para aumentar la Entropía de la Red medinate el proceso de “Inundación Falsa Controlada” Las direcciones IP intercambiadas van acompañadas de un valor probabilístico (0.0 .. 1.0) 155.210.229.244 = P(0.75) ● 201.150.189.007 = P(0.25) ● ● Filtrado de la Información – Modelo de mensaje TCP / IP sobre 802.11 MAC ● Filtrado de la Información : Nivel de Enlace ● Filtrado de la Información : Nivel de Enlace ● Filtrado de la Información : Nivel de Enlace ● Filtrado de la Información : Nivel de Red ProbEntrada(G) = "0.7" ProbSalida(B) = 0.35 < 0.7 > Reenvío ProbSalida(D) = 0.60 < 0.7 > Reenvío ProbSalida(E) = 0.85 > 0.7 > NO Reenvío Clave Pública Nodo @ IP Salientes Probabilidad PB 215 . 050 . 039 . 133 0.75 PB 234 . 152 . 203 . 076 0.35 PD 076 . 098 . 133 . 175 0.75 PD 136 . 238 . 073 . 128 0.25 ● Filtrado de la Información : Nivel de Red ● Generación de Nuevas Direcciones Secretas – Usamos la Información de Transformación intercambiada (en Pairing e IP-Flooding) – Finalidad: Mantener las conexiones seguras activas sin intercambiar nueva información – Implementación dependiente de los recursos finales de cada uno de los nodos Operaciones Matriciales ● Registros de Desplazamiento ● ● Búsqueda de Ficheros – Difusión Total: Entropía Máxima de la Red ● Respuesta a la Búsqueda de Ficheros – Encaminamiento con Inundación Falsa Controlada Resultados Obtenidos Inundación en la Red vs Camino Verdadero Nodos Accedidos ● 160 150 140 130 120 110 100 90 80 70 60 50 40 30 20 10 0 Encaminamiento Activo Encaminamiento Fantasma 10 50 100 Nodos en la Red 500 1000 Resultados Obtenidos 1000 900 800 Nodos Accedidos ● 700 600 Nodos Totales Nodos Accedidos 500 400 300 200 100 0 10 50 100 500 Nodos Totales 1000 ● Conclusiones – – Anonimato ● Entropía alta usando niveles bajos de comunicación ● Técnicas de Inundación Falsa Controlada Disponibilidad ● Gasto de Recursos mínimo ● Inmune a los ataques de denegación de Servicio (DOS) ● Múltiples Dominios de Confianza http://marabunta.laotracara.com http://enjambre.laotracara.com David Gascón Cabrejas [email protected] http://www.laotracara.com