Download - DUST: Sistemas RSS a prueba de balas
Once upon a time….
… y nos lo creímos…
• Internet es un espacio libre• Todas las opiniones permitidas• Libertad de prensa• Nadie controla Internet• Neutralidad• Anonimato• No Rules• ….
Nuestro mayor problema: Los trols
…y lo arreglamos con educación
Pero… un buen día….
Y entonces salimos de Matrix…
No nos gusta tu aspecto
No nos gusta tu aspecto
No nos gusta tu nombre
Muérete de hambre
Muérete de hambre
4nOym0us
HBGary Ownage
• Backdoors a la carta:– Task B y 12 monkeys
• «Incitadores» en FaceBook• Propaganda viral en Inet
Internet tiene puntos debiles
• Conexiones de red– Gran Firewall de China– Ataque BGP Egipto
• Sistemas DNS–Wikileaks.org– Tarjetaroja.org
• Legislaciones– Nacionales (LSSI, Ley Sinde, Código
Penal…)– Continentales (….)
Políticos…
¿Cómo estar conectados siempre?
• El objetivo es desconectar la fuente de la información con la audiencia– Arrancando de raíz la fuente
• Owneando el sistema
– Haciéndola inaccesible• DDOS
– Que no sea localizable• Quitando nombre de dominio• Eliminando cuentas de servicios
– Facebook, twitter, …
• Infosec war: Eliminación de Buscadores
– Por la ley y cerrado de cuentas
Algunas soluciones: OpenNIC
Algunas Soluciones: P2P DNS
Algunas Soluciones: OSIRIS CMS
Pero qué pasa si alguien tiene…
Cuidado con lo que dices…
Cuidado con lo que dices…
Ley Sinde
Cuidadín con lo que publicas.
Te sigo por RSS
Código Penal rima con Hemoal
Del Blog al lector
• Nombre de dominio– Entrada directamente a la web
• Suscripciones RSS– Lectores conectan al Feed XML
• Autoría– Cuenta del sistema de blogs– Nombre– Http Feed RSS
FeedBurner
¿Y si no les gusta lo que publicas?
• Si se cierra el blog, puedes cambiar el feed
¿Y si te cierran el Feed RSS?
DUST: Feeds RSS por P2P
• Sistema de publicación de feeds RSS firmados por redes P2P.
• Cliente de lectura de Feeds RSS– Http– P2P
• Republicación de contenido por P2P– Republicación de Feed RSS– Republicación de posts e imágenes
DUST: Cómo se hace todo
• Los feeds se manejan mediante las bibliotecas rome (desaparecerá) y jdom.– Son software libre.– Rome sólo sirve para leer feeds, no para
modificarlos.– Jdom es la biblioteca estándar para manejar
XMLs mediante DOM.
• Los feeds se reciben tanto por HTTP como por P2P de manera indiferente para el usuario (para el programador es bien distinto).
DUST: Cómo se hace todo
• La creación de claves, firma y comprobación de firmas se realiza con la biblioteca estándar de J2SE (java.security).– Sólo como prueba de concepto, se pretende
usar una biblioteca más segura (se está analizando Bouncy Castle).
– Java.security tiene (al menos) un CVE publicado, CVE-2008-5659
DUST: Cómo se hace todo
• La compartición de archivos se realiza a través de GNUTella usando la biblioteca Jtella.– Red totalmente decentralizada (a diferencia de
ed2k o bittorrent).– Jtella con una pequeña modificación echa por
nosotros.– Se comparten feeds e imágenes.– GNUTella es un protocolo para la búsqueda de
ficheros, no para la compartición. El busca en la red e informa (si encuentra) de que IP:puerto tiene el fichero.
DUST: Cómo se hace todo
• Para la descarga de los ficheros se ha implementado un servidor simplísimo.– Está a la escucha de nuevas conexiones.– Espera recibir un nombre de fichero y devuelve
la ristra de bytes correspondiente a ese fichero.
– Si no tiene el fichero pedido cierra la conexión.
• Sólo es una prueba de concepto, se está pensando eliminar y poner un servidor de ficheros más robusto, flexible y seguro.
DUST: Cómo se hace todo
• La interfaz gráfica usa SWT (Standard Widget Toolkit) de Java.– Bien documentada.– Suficientemente potente para lo que
necesitamos.– Implementación para múltiples plataformas.– Cada plataforma necesita su
implementación concreta de SWT, esto hace que Dust no sea un único paquete que corre múltiples plataformas, sino muchos paquetes, cada uno para una plataforma.
DUST: Recordatorio de qué hace
• Carácterísticas actuales de Dust:– Lector de feeds que permite leer los feeds
tanto de HTTP como firmados a través de P2P (e imágenes).
– Múltiples fuentes para un mismo feed para hacer más difícil la censura.
– Es (será en muy poco tiempo) software libre, probablemente bajo licencia Apache.
– Pensado para que la comunidad lo pueda “destripar” y proponer características (e incluso hacerlas ellos :).
DUST: Ideas para el futuro
• Mejorar el manejo de claves, utilizar una biblioteca más segura.
• Mejorar el cliente GNUTella, que un peer informa a sus peers de nuevos peers en la red según se conecten.
• Implementar un sistema de “ranking” de peers para evitar el file pollution. Si un peer te pasa muchos ficheros falsos (mal firmados) bajarle su ranking.
• Implementar un sistema para evitar que se llene el disco por bajarse demasiados ficheros.
• Cambiar el servidor de transferencia de ficheros por uno “de verdad”.
• Diseñar e implementar una interfaz decente.
DUST: Ideas para el futuro
• Refactorizar mucha parte del código (código que ya no se usa eliminarlo, código que no sigue las normas de estilo reescribirlo, documentar el código que no lo esté).
• Dejar de usar rome y usar sólo jdom (rome hace fácil la lectura de feeds, pero también hace falta modificación y no lo permite).
• Mejora de ciertos aspecto del Dust Internals.• DustDispatcher, DustTask, DustConf, DustLog.• Mejorar la forma de informar de la aparición
de excepciónes y/o situaciones de warning.
DUST: Ideas para el futuro
• Dar soporte a otros tipos de redes P2P (ed2k, bittorrent, etc…)
• Integrar con la red TOR.• Permitir exportar ficheros de perfiles de
otros lectores de feeds.• Mil características más.
Demo
DUST está en beta pero…
• Vamos a ponerle un logo chulo para que los «social media» se animen a usarlo mucho