GNUnet

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
GNUnet
software
Siglă
GNUnet cu interfață grafică GTK +
GNUnet cu interfață grafică GTK +
Tip Anonim de la egal la egal , Prieten la prieten
Dezvoltator Proiect GNU
Data primei versiuni 2001 05 noiembrie ; Acum 19 ani
Ultima versiune 0.14.1 (4 aprilie 2021)
Ultima versiune beta 0.11.0pre66 (06 iunie 2018 ; acum 3 ani [1] )
Sistem de operare oficial: sisteme de operare software gratuit ( GNU / Linux , FreeBSD , NetBSD , OpenBSD ); neoficial: Alte sisteme de operare ( OS X , Windows )
Limba C.
Set de instrumente GTK
Licență GNU AGPLv3 sau o versiune ulterioară [2]
( licență gratuită )
Limbă Spaniolă, engleză, rusă, germană, franceză
Site-ul web gnunet.org/

GNUnet este un cadru gratuit pentru rețelele peer-to-peer . A fost conceput pentru a oferi un protocol anonim peer-to-peer sigur, iar politica de securitate a protocolului său include un strat de securitate numit „paranoic”. [3]

Software-ul este scris în întregime în C , dar se încearcă clonarea unei versiuni în Java pentru a crește portabilitatea. Cadrul GNUnet, în versiunea scrisă în C, funcționează pe GNU / Linux [4] , BSD [5] , macOS [6] ,Solaris și Microsoft Windows [7] . Versiunea Java este prin definiție compatibilă cu orice sistem de operare, atâta timp cât este echipată cu o mașină virtuală Java .

GNUnet este o parte oficială a Proiectului GNU .

GNUnet cu interfață grafică Qt

Istorie

Proiectul s-a născut în 2001, având ca principal obiectiv crearea unei rețele de partajare a fișierelor complet anonime , rezistentă la cenzură și care să permită utilizatorilor să publice și să recupereze informații de tot felul. De la început a fost un proiect foarte complex și ambițios, deoarece intenționa să rescrie complet toate etapele client - server pe care se bazează ceea ce se numește în mod obișnuit Internet . [8] Acest lucru a dus la necesitatea de a scrie o cantitate considerabilă de cod.

Dezvoltarea are loc mai ales în domeniile universitar și academic, care, pe de o parte, nu face evoluția sa deosebit de rapidă, pe de altă parte, o face extrem de riguroasă în obiectivele, filozofia și documentarea sa.

Dezvoltatorii au avut întotdeauna aspectul didactic și informativ în special, atât de mult încât, pentru fiecare mână de cod adăugat, documentația este dezvăluită imediat, în spiritul GNU deplin. Secțiunea Manual pentru dezvoltatori a site-ului web al proiectului se numără printre cele mai aprofundate manuale de programare referitoare la un singur proiect aflat în mare dezvoltare, care au fost scrise vreodată. [9] [10] Acest lucru se datorează, fără îndoială, și faptului că printre speranțele programatorilor se numără aceea de a face virală nu numai utilizarea GNUnet, ci și propria dezvoltare, concepută în acest scop într-o formă modulară de la început. Oricine îmbrățișează filosofia proiectului și mestecă un pic de limbaj C este, de fapt, puternic încurajat să-și extindă funcționalitatea cât mai mult posibil prin crearea de module noi sau de lucru pe cele existente. [11]

Anonimat

Rețeaua este strict descentralizată (nu există servere privilegiate în sens absolut). Fiecare schimb de informații este criptat „din mers” cu un nivel ridicat de securitate și utilizatorul nu are nicio modalitate de a cunoaște IP-ul nodului cu care împarte informațiile, deoarece totul este moderat de un nod intermediar. La rândul său, nodul intermediar poate cunoaște IP-urile celor două noduri care fac schimb de informații (și acestea sunt ale sale), dar nu poate afla ce schimbă de fapt, deoarece doar ei cunosc cheile pentru decriptarea conținutului. Pe scurt, într-o rețea GNUnet este posibil să se cunoască fie IP-ul unui nod, fie datele pe care le partajează.

Distribuire a unui fisier

Serviciul de partajare a fișierelor folosește protocolul GNUnet anonim pentru a sorta cererile și răspunsurile. Pentru a căuta conținut și blocuri de date, se utilizează mesaje de cerere redundante: în funcție de citirea de către nodul următor, mesajele sunt de fapt redirecționate în continuare către zero sau către mai multe noduri.

Atunci când un nod este sub tensiune, acesta reduce cererile de la nodurile învecinate cu cea mai mică valoare de încredere internă.

GNUnet oferă, de asemenea, o opțiune „ topologie F2F ” pentru a restricționa conexiunile numai la utilizatorii de încredere. Cu această opțiune, prietenii utilizatorilor prietenoși (și așa mai departe) pot, la rândul lor, să interacționeze și să schimbe fișiere direct cu utilizatorul, fără a utiliza însă niciodată adresa IP a acestuia .

URI

Pictogramă lupă mgx2.svg Același subiect în detaliu: GNUnet (protocol) .

GNUnet folosește un identificator de resurse uniform care nu este aprobat în prezent de IANA , a cărui formă s-a schimbat de mai multe ori în istoria proiectului. Notarea menționată aici este cea adoptată oficial începând cu versiunea 0.7.0.

URI-ul protocolului GNUnet constă în principal din două secțiuni: modulul și identificatorul modulului (id). Un URI tipic GNUnet are următoarea structură gnunet: // modul / identificator , unde modul este numele modulului și identificatorul este șirul specific modulului.

Modulul ECRS

Fișierele partajate prin protocolul GNUnet sunt codificate în ECRS ( An Encoding for Censorship-Resistant Sharing ). „Identificator Modulul este format din ECR una dintre următoarele instrucțiuni: CHK, SKS, KSK sau ro , urmată de o bară oblică și o valoare specifică pentru fiecare categorie.

  • chk identifică fișiere, de obicei: gnunet: // ecrs / chk / [hash fișier, folosind 0-9A-V]. [hash interogare, folosind 0-9A-V]. [dimensiune în octeți]
  • sks identifică fișierele din spațiile de nume, de obicei: gnunet: // ecrs / sks / NAMESPACE / IDENTIFIER
  • ksk identifică solicitările de căutare, de obicei: gnunet: // ecrs / ksk / KEYWORD [+ KEYWORD] *
  • loc identifică date pe o anumită mașină, de obicei: gnunet: //ecrs/loc/PEER/RICHIESTA.TIPO.KEYWORD.DIMENSIONE

Exemple

Un URI tipic de partajare a fișierelor pentru GNUnet care indică o copie specifică a textului licenței GPL :

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

Un alt tip de URI de partajare a fișierelor pentru GNUnet care indică mai generic toate rezultatele căutării pentru cuvântul cheie „gpl”:

 gnunet: // ecrs / ksk / gpl

Sistem de nume GNU

GNUnet include o implementare a GNS (GNU Name System), un înlocuitor descentralizat și rezistent la cenzură pentru DNS-ul actual. În GNS, fiecare utilizator își gestionează în mod autonom și arbitrar propria zonă principală, care va fi apoi mapată în spațiul comun al numelor DNS care se află sub domeniul de nivel superior .gnu . Utilizatorii pot, de asemenea, să delege subdomenii în zone gestionate de alți utilizatori. Căutarea subdomeniilor gestionate de alți utilizatori se efectuează utilizând modulul GNUnet DHT .

Principala problemă cu această abordare este că nu este posibil să se garanteze unicitatea numelor la nivel global, ceea ce necesită utilizarea de proxy sau alte soluții similare pentru a satisface numeroasele nevoi ale aplicațiilor vechi create pentru a funcționa sub DNS și nu sub GNS.

În ceea ce privește celelalte domenii de nivel superior deja existente ( .com , .org , .it , etc.) GNS garantează aceeași funcționalitate identică cu DNS-ul curent.

API social

În primele zile din septembrie 2013, Gabor X Toth a publicat o teză cu care a prezentat proiectul unui serviciu de mesagerie socială pentru cadrul GNUnet peer-to-peer capabil să ofere scalabilitate, extensibilitate și comunicare criptată end-to-end . [12] Scalabilitatea ar fi fost realizată prin livrarea de mesaje multicast , în timp ce se utilizează PSYC (Protocol for SYnchronous Communication), care oferă un apel de procedură la distanță cu sintaxă extensibilă și care poate evolua în timp, fără a fi nevoie de actualizarea software-ului pe toate nodurile din rețea ar fi asigurat o extensibilitate puternică. O altă caracteristică cheie oferită de integrarea cu cadrul PSYC ar fi fost canalele multicast cu informații de stare, utilizate pentru a stoca, de exemplu, profilurile utilizatorilor. Comunicarea criptată end-to-end ar fi garantată chiar de serviciul mesh GNUnet, pe care s-ar baza canalele multicast. Utilizatorii și locurile sociale din sistem ar avea identități criptate - identificate prin cheia lor publică - astfel încât totul ar fi mapat în nume memorabile uman prin intermediul GNS (GNU Name System), unde fiecare pseudonim are o zonă care indică propriile sale locuri. . Acest modul ar transforma cadrul GNUnet într-o platformă de rețele sociale descentralizată, cuprinzătoare și foarte anonimă.

conversație

Cele mai recente versiuni ale cadrului implementează și un modul experimental de chat. [13] În același timp, programatorii PSYC (cadrul pe care se bazează și modulul de notificare multiprotocol Wikipedia ) și-au anunțat intenția de a fuziona cadrul lor în rețeaua GNUNet, [14] oferind astfel protocolului GNUnet unul dintre cele mai multe sisteme de mesagerie complexe și structurate în circulație.

Notă

  1. ^ Site-ul de descărcare GNUnet , la gnunet.org . Adus la 16 iunie 2018 (arhivat din original la 12 iunie 2018) .
  2. ^ Notificare de licență plasată în partea de sus a unuia dintre fișierele sursă ale depozitului proiectului, probabil în fiecare fișier sursă al acestuia , pe gnunet.org . Adus la 8 iunie 2018 .
    „GNUnet este un software gratuit: îl puteți redistribui și / sau modifica în condițiile Licenței publice generale GNU Affero publicate de Free Software Foundation, fie versiunea 3 a licenței, fie (la alegerea dvs.) orice versiune ulterioară. " .
  3. ^(EN) GNUnet în comparație cu alte aplicații de partajare de fișiere Depus la 22 octombrie 2012 în Internet Archive .
  4. ^(EN) GNUnet - ArchWiki
  5. ^(EN) FreeBSD.net: gnunet Filed 14 iulie 2014 în Internet Archive .
  6. ^(RO) Instrucțiuni de compilare pentru platformele Microsoft Windows - gnunet Filed 14 iulie 2014 în Internet Arhiva .
  7. ^(RO) Instrucțiuni de compilare pentru platformele Microsoft Windows - gnunet Filed 14 iulie 2014 în Internet Arhiva .
  8. ^(EN) Video: Sistemul Nume GNU și viitorul Social Networking cu GNUnet Filed 14 iulie 2014 în Internet Archive . [ podcast Arhivat 14 iulie 2014 la Internet Archive . | diapozitive Arhivat 14 iulie 2014 la Internet Archive . ]
  9. ^(EN) Manual pentru dezvoltatori Depus la 30 aprilie 2013 în Internet Archive .
  10. ^(EN) GNUnet C Tutorial Filed la 1 mai 2013 , în Arhiva pe Internet .
  11. ^(EN) Filosofia GNUnet
  12. ^(EN) Gabor Toth X , Design of a Social Messaging System Using Multicast stateful , University of Amsterdam, 2013. Accesat la 18 februarie 2014 (depus de „Original url 22 februarie 2014).
  13. ^(EN) Polled GNUnet Chat Filed la 12 martie 2012 , la Internet Archive .
  14. ^(RO) PSYC2

Elemente conexe

Alte proiecte

linkuri externe