GNUnet
| |
---|---|
GTK-Oberfläche von GNUnet 0.10 | |
Basisdaten
| |
Maintainer | Christian Grothoff |
Entwickler | GNUnet e. V. |
Erscheinungsjahr | 2001 |
Aktuelle Version | 0.22.2[1] (29. Oktober 2024) |
Betriebssystem | offiziell: freie Betriebssysteme (Linux, FreeBSD, NetBSD, OpenBSD); inoffiziell: Andere Betriebssysteme (macOS, Windows) |
Programmiersprache | C[2] |
Kategorie | Anonymes P2P, Friend-to-friend |
Lizenz | GNU AGPLv3 oder neuer (Freie Software) |
deutschsprachig | ja |
gnunet.org |
GNUnet ist ein freies Framework für sicheres und anonymes Peer-to-Peer-Networking, das keine zentralisierten oder anderweitig vertraute Dienste verwendet.
Eine erste Implementation, die auf der Netzwerk-Schicht aufsetzt, erlaubt anonymes, zensur-resistentes Filesharing. GNUnet benutzt ein einfaches, Überschuss-basierendes Modell, um Ressourcen bereitzustellen. Teilnehmer des GNUnet-Netzwerkes überwachen das Verhalten der Anderen in Bezug auf Ressourcengebrauch; Teilnehmer, die zum Netzwerk beitragen, werden mit besseren Dienstleistungen belohnt.
Datenpakete wie Suchanfragen, Downloads, Uploads und Dateiteile werden nicht direkt von der Quelle, dem Uploader, zum Ziel, dem Downloader, geschickt, sondern über mehrere andere GNUnet-Netzwerk-Teilnehmer, die als Mittelsmänner fungieren. Somit gibt es keine direkte Netzwerkverbindung zwischen dem Uploader und dem Downloader; deren IP-Adressen bleiben einander und gegenüber anderen unbekannt. Dadurch, dass Pakete weitergeleitet werden, kann niemand wissen, ob ein bestimmter anderer Teilnehmer ein Paket (oder eine Datei) nur weitergeleitet oder selbst auf die Reise geschickt hat (zum Beispiel als Antwort auf eine Suchanfrage). Somit kann nicht nachgewiesen werden, welcher GNUnet-Benutzer der wahre Uploader oder Downloader einer Datei ist.[3] Durch GNUnet besteht die Möglichkeit Transportschicht zu abstrahieren. Die Kommunikation kann über bestehende Protokolle wie TCP, UDP, HTTP, SMTP erfolgen.[4] IPv4 und IPv6 kann wechselseitig getunnelt werden.[5]
Alle Daten im GNUnet-Netzwerk werden per Ende-zu-Ende-Verschlüsselung vom Absender zum Empfänger übertragen. Niemand, auch keiner der weiterleitenden Teilnehmer, kann die Kommunikation überwachen, stören oder zensieren.[6] Dazu kommt ein für GNUnet entwickeltes Verfahren zum Einsatz, das sogenannte Encoding for Censorship-Resistant Sharing (ECRS), das die vor Version 0.7 genutzten Verfahren Efficient Sharing of Encrypted Data[7] (ESED) und ESED II ablöst. Außerdem werden Suchanfragen und Suchbegriffe nicht im Klartext gespeichert und übertragen, sondern nur deren Prüfsummen, die nur schwer mit einem bestimmten Suchbegriff in Verbindung gebracht werden können, trotzdem jedoch eindeutig sind. Die Vertraulichkeit hat zum Ziel, dass niemals eine folgende Zuordnung möglich ist:
GNUnet-Teilnehmer ⇔ IP-Adresse (Rechner) ⇔ Benutzer ⇔ Suche, Download, Upload
Dateninhalte können im GNUnet auf die Festplatten anderer Teilnehmer gespeichert werden (sofern diese Funktion vom Benutzer aktiviert wurde). Selbst wenn jemand beweisen kann, dass auf einem PC bestimmte Daten gespeichert sind, kann nicht bewiesen werden, dass der Betreiber des PCs davon wusste. Die Daten können auch von einem völlig anderen GNUnet-Teilnehmer stammen und automatisch auf diesem PC gespeichert worden sein („Migration“).[7]
Um ein System lahmzulegen, bedienen sich Angreifer häufig der Möglichkeit des Floodings. Eine gesamte Tauschbörse kann mit Fälschungen (Dateiname entspricht nicht dem Inhalt, Spam) geflutet werden, einzelne Teilnehmer können mit zu vielen Anfragen geflutet werden. Um dies zu verhindern, muss sich im GNUnet ein Knoten „Vertrauen“ verdienen. Jeder einzelne Teilnehmer führt Buch, inwieweit er jemandem vertraut und belohnt ihn dann entsprechend mit besserer Behandlung (zum Beispiel durch einen Download hat ein Teilnehmer A bei B „etwas gut“).[8]
GNUnet hängt nur beim Start von zentralen Diensten ab, nämlich dann, wenn automatisch Kontaktdaten von anderen Teilnehmern (von den sogenannten „Hostlisten“) geladen werden. Ab dann werden keine zentralen Server benötigt, das Herunterladen und Suchanfragen laufen unter den Teilnehmern selbst ab. Auch die Inhalte bleiben nicht zentral bei einem Teilnehmer, sie „migrieren“ (siehe oben) zu anderen Teilnehmern und sorgen so auch dafür, dass der Veröffentlicher entlastet wird.
Optional kann GNUnet auch als ein privates verschlüsseltes Darknet oder Friend-to-friend-Rechnernetz verwendet werden. Mit der Friend-to-friend-Option bietet GNUnet die Funktion über die IP-Adressen der direkt verbundenen Freunde und wiederum deren Freunde usw. Informationen und Dateien anonym auszutauschen. GNUnet verbindet sich in diesen beiden Optionen nur mit autorisierten vertrauenswürdigen Knoten (Freunden). Die Authentifizierung der Benutzer erfolgt hierbei durch digitale Signaturen.
GNUnet umfasst eine Implementierung des GNU Name System (GNS), ein dezentralisierter und zensurresistenter Ersatz für das Domain Name System.[9] In GNS verwaltet jeder Nutzer seine eigene master-Zone, welche in den DNS-Namensraum unter der .gnu-Top-Level-Domain abgebildet wird. Nutzer können Subdomains zu Zonen zuordnen, die von anderen Nutzer verwaltet werden. Abfragen von Einträgen anderer Nutzer werden über GNUnets verteilte Hashtabelle abgewickelt. Ein großes Problem dieses Ansatzes ist, dass Namen nicht mehr weltweit einzigartig sind, wodurch die Nutzung von Proxyservern und anderen Behelfslösungen nötig wird, um den Anforderungen älterer Anwendungen gerecht werden zu können.[10]
GNUnet ist Teil des GNU-Projekts.[11] Es wurde von NLnet finanziell unterstützt.[12] Es handelt sich um ein überwiegend akademisches Projekt, das von der Deutschen Forschungsgemeinschaft gefördert wurde.[13]