La red I2p proporciona una gran privacidad para las comunicaciones sobre Internet. Muchas actividades que podrían poner en riesgo su privacidad en Internet pueden hacerse anónimamente dentro de I2P.
I2P es una red anónima, que presenta una capa simple que las aplicaciones pueden usar para enviarse mensajes entre si de forma anónima y segura. La propia red está estrictamente basada en mensajes (a la IP), pero hay una librería disponible para permitir comunicación en streaming fiable sobre ella (a la TCP). Toda comunicación está cifrada extremo a extremo (en total hay cuatro capas de cifrado usadas cuando se envía un mensaje), e incluso los puntos de los extremos ("destinos") son identificadores criptográficos (esencialmente un par de claves públicas).
¿Cómo funciona?
Para a anonimizar los mensajes enviados, cada aplicación cliente tiene su "ruter" I2P que crea unos cuantos túneles" de entrada y salida - una secuencia de pares que pasan el mensaje en una dirección (hacia y desde el cliente, respectivamente ). A su vez, cuando un cliente quiere enviar un mensaje a otro cliente, el cliente envía ese mensaje a través de uno de sus túneles de salida hacia uno de los túneles de entrada del otro cliente, eventualmente alcanzando su destino.
La primera vez que un cliente quiere contactar con otro cliente, ambos hacen una consulta contra la, completamente distribuida, "base de datos de red" - una tabla de hash distribuida (DHT) con estructura adaptada basada en el algoritmo Kademlia. Esto se hace para encontrar eficientemente los túneles entrantes de los otros clientes, pero los mensajes subsiguientes entre ellos normalmente incluyen esos datos, así que no se requieren ulteriores búsquedas en la base de datos de red.
Tiene disponibles mas detalles de como funciona I2P.
¿Qué puede hacer con él?
Dentro de la red I2P las aplicaciones no tienen restricciones en como pueden comunicarse - aquellas que normalmente usan UDP pueden usar las funcionalidades básicas de I2P, y aquellas aplicaciones que normalmente usan TCP pueden utilizar la librería 'tipo TCP de streaming'. I2P incluye una aplicación genérica de puente TCP/I2P ("I2PTunnel") que permite enviar flujos TCP dentro de la red I2P, también recibir flujos TCP de fuera de la red y enviar estos a una dirección IP específica.
El I2PTunnel se usa actualmente para dejar que la gente ejecute sus propios sitios web anónimos ("eepsites") mediante la ejecución de un servidor web normal y apuntando hacia él un 'servidor' I2PTunnel, al que la gente pueda acceder anónimamente sobre I2P con un navegador web normal, ejecutando un proxy HTTP I2PTunnel ("eepproxy"). Además, usamos la misma técnica para ejecutar una red IRC anónima (donde el servidor IRC está alojado anónimamente, y los clientes IRC estándar usan un I2PTunnel para contactar con él). Hay otros esfuerzos de desarrollo de aplicaciones también en marcha, tales como uno para construir una aplicación optimizada de transferencia de ficheros en enjambre (estilo BitTorrent), un almacenamiento de datos distribuido (estilo Freenet / MNet), y un sistema de blogs (un LiveJournal completamente distribuido), pero aún no están listas para su uso.
I2P no es inherentemente una red "outproxy" (que haga de proxy de salida) - el cliente al que usted envía un mensaje es un identificador criptográfico, no una dirección IP, así que el mensaje debe estar dirigido a alguien que se encuentre ejecutando I2P. Sin embargo es posible que esos clientes sean un proxy de salida, permitiéndole hacer un uso anónimo de sus conexiones a Internet. Para realizar esto, el "eepproxy" aceptará URLs normales no-I2P (ej.: "http://www.i2p.net") y los redirigirá a un destino específico que ejecuta un proxy HTTP squid (calamar), que permite la navegación anónima por la web normal de forma sencilla. Los proxys de salida simples como ese no son viables a largo plazo por varias razones (incluido el coste de ejecutar uno, así como los problemas de anonimato y seguridad que conllevan), pero en ciertas circunstancias la técnica podría ser apropiada.
El equipo de desarrollo de I2P es un grupo abierto, todos los que estén interesados son bienvenidos a involucrarse en el proyecto, y todo el código es libre. El núcleo de I2P y la implementación del ruter están en java (actualmente trabajando con sun y kaffe, el soporte para gjc está planeado para mas adelante), y hay un API simple para acceder a la red desde otros lenguajes (con una librería C disponible, y con Python y Perl en desarrollo). La red está en estos momentos en desarrollo activamente y aún no ha alcanzado la versión 1.0, pero la actual hoja de ruta describe nuestro programa.
Descargar