GNUnet

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
GNUnet
programari
Logotip
GNUnet amb interfície gràfica GTK +
GNUnet amb interfície gràfica GTK +
Tipus Peer-to-peer anònim , Friend to Friend
Desenvolupador Projecte GNU
Data de la primera versió 05 de novembre del 2001 ; Fa 19 anys
Última versió 0.14.1 (4 d'abril de 2021)
Última versió beta 0.11.0pre66 (06 de juny de 2018 ; fa 3 anys [1] )
Sistema operatiu oficial: sistemes operatius de programari lliure ( GNU / Linux , FreeBSD , NetBSD , OpenBSD ); no oficial: Altres sistemes operatius ( OS X , Windows )
Llenguatge C.
Kit d'eines GTK
Llicència GNU AGPLv3 o posterior [2]
( llicència gratuïta )
Llengua Espanyol, anglès, rus, alemany, francès
Lloc web gnunet.org/

GNUnet és un framework gratuït per a xarxes peer-to-peer . Va ser dissenyat per oferir un protocol peer-to-peer anònim segur i la política de seguretat del seu protocol inclou una capa de seguretat anomenada "paranoica". [3]

El programari està escrit completament en C , però s’està intentant clonar una versió en Java per augmentar la portabilitat. El framework GNUnet, en la versió escrita en C, funciona a GNU / Linux [4] , BSD [5] , macOS [6] , Solaris i Microsoft Windows [7] . La versió Java és per definició compatible amb qualsevol sistema operatiu, sempre que estigui equipada amb una màquina virtual Java .

GNUnet és una part oficial del Projecte GNU .

GNUnet amb interfície gràfica Qt

Història

El projecte va néixer el 2001, amb l'objectiu principal de crear una xarxa per compartir fitxers completament anònima , resistent a la censura i que permetés als usuaris publicar i recuperar informació de tota mena. Des del principi va ser un projecte molt complex i ambiciós perquè pretenia reescriure completament tots els passos client - servidor en què es basa el que normalment es coneix com Internet . [8] Això ha conduït a la necessitat d'escriure una quantitat considerable de codi.

El desenvolupament es produeix principalment en l'àmbit universitari i acadèmic, que si d'una banda no fa que la seva evolució sigui especialment ràpida, de l'altra el fa extremadament rigorós en els seus objectius, filosofia i documentació.

Els desenvolupadors sempre han tingut en compte l’aspecte didàctic i divulgatiu, fins al punt que, per cada grapat de codi afegit, la documentació es divulga immediatament, amb tot l’esperit GNU . La secció Manual del desenvolupador del lloc web del projecte es troba entre els manuals de programació més profunds sobre un sol projecte en fase de desenvolupament que s’han escrit mai. [9] [10] Això es deu, sens dubte, també al fet que entre les esperances dels programadors hi ha la de fer viral no només l'ús de GNUnet, sinó també el seu propi desenvolupament, concebut amb aquest propòsit en una forma modular des del principi. De fet, es recomana a qualsevol persona que adopti la filosofia del projecte i mastegui una mica el llenguatge C que ampliï la seva funcionalitat tant com sigui possible mitjançant la creació de nous mòduls o treballant en els ja existents. [11]

Anonimat

La xarxa està estrictament descentralitzada (no hi ha servidors privilegiats en sentit absolut). Cada intercanvi d’informació es xifra “sobre la marxa” amb un alt nivell de seguretat i l’usuari no té manera de conèixer la IP del node amb què comparteix informació, perquè tot està moderat per un node intermedi. Al seu torn, el node intermedi pot conèixer les adreces IP dels dos nodes que intercanvien informació (i aquests són propis), però no pot esbrinar què realment intercanvien, perquè només ells coneixen les claus per desxifrar el contingut. En resum, en una xarxa GNUnet només és possible conèixer la IP d’un node o les dades que comparteix.

Intercanvi d'arxius

El servei per compartir fitxers utilitza el protocol GNUnet anònim per ordenar les sol·licituds i respostes. Per cercar continguts i blocs de dades, s’utilitzen missatges de sol·licitud redundants: segons la lectura del següent node, els missatges de fet es reenvien a zero o a més nodes.

Quan un node està sotmès a tensions, redueix les sol·licituds dels nodes veïns amb el valor de confiança intern més baix.

GNUnet també ofereix una opció " topologia F2F " per restringir les connexions només a usuaris de confiança. Amb aquesta opció, els amics d’usuaris simpàtics (etc.) poden, al seu torn, interactuar i intercanviar fitxers directament amb l’usuari, però mai utilitzant la seva adreça IP .

URI

Icona de la lupa mgx2.svg El mateix tema en detall: GNUnet (protocol) .

GNUnet utilitza un identificador de recursos uniforme que actualment no està aprovat per la IANA , la forma del qual ha canviat diverses vegades durant la història del projecte. La notació a què fa referència aquí és la que s’adopta oficialment a partir de la versió 0.7.0.

L' URI del protocol GNUnet consta principalment de dues seccions: el mòdul i l'identificador del mòdul (id). Un URI típic de GNUnet té la següent estructura de gnunet: // module / identifier , on module és el nom del mòdul i identificador és la cadena específica del mòdul.

El mòdul ECRS

Els fitxers compartits a través del protocol GNUnet estan codificats en ECRS ( An Encoding for Censorship-Resistant Sharing ). El mòdul 'identificador ECRS consta d'una de les instruccions següents: chk, sks, ksk o ro seguit d'una barra inclosa i un valor específic per a cada categoria.

  • chk identifica fitxers, normalment: gnunet: // ecrs / chk / [hash de fitxers, amb 0-9A-V]. [hash de consulta, amb 0-9A-V]. [mida en bytes]
  • sks identifica fitxers dins dels espais de noms, normalment: gnunet: // ecrs / sks / NAMESPACE / IDENTIFIER
  • ksk identifica les sol·licituds de cerca, normalment: gnunet: // ecrs / ksk / KEYWORD [+ KEYWORD] *
  • loc identifica dades en una màquina específica, normalment: gnunet: //ecrs/loc/PEER/RICHIESTA.TIPO.KEYWORD.DIMENSIONE

Exemples

Un URI per compartir fitxers típic de GNUnet que apunta a una còpia específica del text de la llicència GPL :

 gnunet: // ecrs / chk / 9E4MDN4VULE8KJG6U1C8FKH5HA8C5CHSJTILRTTPGK8MJ6VH \
ORERHE68JU8Q0FDTOH1DGLUJ3NLE99N0ML0N9PIBAGKG7MNPBTT6UKG.1I823C58O3L \
KS24LLI9KB384LH82LGF9GUQRJHACCUINSCQH36SI4NF88CMAET3T3BHI93D4S0M5CC \
6MVDL1K8GFKVBN69Q6T307U6O.17992

Un altre tipus d'URI per compartir fitxers per a GNUnet que apunta de manera més genèrica a tots els resultats de cerca de la paraula clau "gpl":

 gnunet: // ecrs / ksk / gpl

Sistema de noms GNU

GNUnet inclou una implementació de GNS (GNU Name System), un substitut descentralitzat i resistent a la censura del DNS actual. A GNS, cada usuari gestiona de forma autònoma i arbitrària la seva pròpia zona principal, que després es maparà a l’espai comú dels noms DNS que resideixen sota el domini de nivell superior .gnu . Els usuaris també poden delegar subdominis a zones gestionades per altres usuaris. La cerca de subdominis gestionats per altres usuaris es realitza mitjançant el mòdul GNUnet DHT .

El principal problema d’aquest enfocament és que no és possible garantir la singularitat dels noms a nivell mundial, cosa que requereix l’ús de proxies o altres solucions similars per satisfer les moltes necessitats de les aplicacions antigues creades per funcionar amb DNS i no amb GNS.

Pel que fa a la resta de dominis de nivell superior ja existents ( .com , .org , .it , etc.), GNS garanteix la mateixa funcionalitat que el DNS actual.

API social

Els primers dies de setembre de 2013, Gabor X Toth va publicar una tesi amb la qual presentava el projecte d’un servei de missatgeria social per al marc GNUnet peer-to-peer capaç d’oferir escalabilitat, extensibilitat i comunicació xifrada de punta a punta . [12] L’ escalabilitat s’hauria aconseguit mitjançant l’enviament de missatges multidifusió , mentre que l’ús de PSYC (Protocol for SYnchronous Communication), que proporciona una trucada de procediment remot amb sintaxi extensible i que pot evolucionar amb el pas del temps sense necessitat d’actualitzar el programari a tots els nodes de la xarxa haurien assegurat una forta extensibilitat. Una altra característica clau proporcionada per la integració amb el marc PSYC hauria estat els canals de multidifusió amb informació d’estat, que s’utilitzaven per emmagatzemar, per exemple, perfils d’usuaris. La comunicació xifrada d’ extrem a extrem estaria garantida pel propi servei de malla GNUnet, en el qual es basarien els canals de multidifusió. Els usuaris i els llocs socials del sistema tindrien identitats xifrades, identificades per la seva clau pública, de manera que tot es maparia en noms memorables humanament mitjançant GNS (GNU Name System), on cada pseudònim té una àrea que apunta als seus propis llocs. . Aquest mòdul transformaria el marc GNUnet en una plataforma de xarxes socials descentralitzada, completa i altament anònima.

Xat

Les darreres versions del marc també implementen un mòdul de xat experimental. [13] Al mateix temps, els programadors de PSYC (el marc en què també es basa el mòdul de notificació multiprotocol de Wikipedia ) van anunciar la seva intenció de fusionar el seu marc dins de la xarxa GNUNet, [14] oferint així el protocol GNUnet un dels més sistemes de missatgeria complexos i estructurats en circulació.

Nota

  1. ^ Lloc web de descàrrega de GNUnet , a gnunet.org . Consultat el 16 de juny de 2018 (arxivat de l' original el 12 de juny de 2018) .
  2. ^ Avís de llicència situat a la part superior d'un dels fitxers font del dipòsit del projecte, probablement a cadascun dels fitxers font , a gnunet.org . Consultat el 8 de juny de 2018 .
    "GNUnet és programari lliure: podeu redistribuir-lo i / o modificar-lo segons els termes de la Llicència Pública General GNU Affero publicada per la Free Software Foundation, ja sigui la versió 3 de la Llicència o, segons el vostre criteri, qualsevol versió posterior. " .
  3. ^ (EN) GNUnet en comparació amb altres aplicacions per compartir fitxers. Arxivat el 22 d'octubre de 2012 a Internet Archive .
  4. ^ (EN) GNUnet - ArchWiki
  5. ^ (EN) FreeBSD.net: gnunet Arxivat el 14 de juliol de 2014 a Internet Archive .
  6. ^ (EN) Instruccions de construcció per a plataformes Microsoft Windows - gnunet Arxivat el 14 de juliol de 2014 a Internet Archive .
  7. ^ (EN) Instruccions de construcció per a plataformes Microsoft Windows - gnunet Arxivat el 14 de juliol de 2014 a Internet Archive .
  8. ^ (EN) Vídeo: El sistema de noms GNU i el futur de les xarxes socials amb GNUnet Arxivat el 14 de juliol de 2014 a Internet Archive . [ podcast Arxivat el 14 de juliol de 2014 a Internet Archive . | diapositives Arxivat el 14 de juliol de 2014 a Internet Archive . ]
  9. ^ (EN) Manual del desenvolupador Arxivat el 30 d'abril de 2013 a Internet Archive .
  10. ^ (EN) Tutorial GNUnet C Arxivat l'1 de maig de 2013 a Internet Archive .
  11. ^ (EN) Filosofia de GNUnet
  12. ^ (EN) Gabor Toth X , Design of a Social Messaging System Using Multicast stateful , University of Amsterdam, 2013. Consultat el 18 de febrer de 2014 (arxivat per "URL original el 22 de febrer de 2014).
  13. ^ (EN) Xat de GNUnet enquestat Arxivat el 12 de març de 2012 a Internet Archive .
  14. ^ (EN) PSYC2

Articles relacionats

Altres projectes

Enllaços externs