PDF de programación - Marabunta y Enjambre

Imágen de pdf Marabunta y Enjambre

Marabunta y Enjambregráfica de visualizaciones

Publicado el 11 de Septiembre del 2018
152 visualizaciones desde el 11 de Septiembre del 2018
1,2 MB
42 paginas
Creado hace 13a (28/07/2006)
http://marabunta.laotracara.com

http://enjambre.laotracara.com

David Gascón Cabrejas

david@laotracara.com

http://www.laotracara.com



● Perspectiva Inicial

– ¿Qué es Marabunta?

● Plataforma P2P anónima y distribuida

– ¿Qué servicios ofrece actualmente Marabunta?

● Intercambio de mensajes de forma anónima

– ¿Finalidad de Marabunta?

● 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

● Identificación
● Localización de los nodos

● Privacidad de la información : Cifrado,

cifrado, cifrado ...
● Redes auto-organizativas



● 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

● 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

– Recursos Limitados

● 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

– Poner en común los secretos sin decirlos

● Inundación Controlada

– 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

( 

M 1
...

M i­1
...

...
M 0
...
...
... M j + i ­1
M j
...
...
M n­i M n­i+1 ...

M j+1

M n­1

...

...

 ),( 

T 1
...

T i­1
...

...
T 0
...
...
... T j + i ­1
T j
...
...
T n­i T n­i+1 ...

...
T n­1

T j+1

...

 )



● 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

PB

PD

PD

215 . 050 . 039 . 133

234 . 152 . 203 . 076

076 . 098 . 133 . 175



136 . 238 . 073 . 128

0.75

0.35

0.75

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)

– Finalid
  • Links de descarga
http://lwp-l.com/pdf13438

Comentarios de: Marabunta y Enjambre (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad