GNUnet

framework für dezentralisierte Peer-to-Peer-Netz, das Teil des GNU-Projekt ist

GNUnet ist ein freies Framework für sicheres und anonymes Peer-to-Peer-Networking, das keine zentralisierten oder anderweitig vertraute Dienste verwendet.

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)
Programmier­sprache C[2]
Kategorie Anonymes P2P, Friend-to-friend
Lizenz GNU AGPLv3 oder neuer (Freie Software)
deutschsprachig ja
gnunet.org

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.

Eigenschaften

Bearbeiten

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]

Vertraulichkeit

Bearbeiten

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

Glaubhafte Abstreitbarkeit

Bearbeiten

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]

Ökonomie/Buchführung

Bearbeiten

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]

Dezentralisierung

Bearbeiten

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.

Friend-to-Friend / Darknet

Bearbeiten

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.

GNU Name System

Bearbeiten

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]

Förderung

Bearbeiten

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]

Bearbeiten

Einzelnachweise

Bearbeiten
  1. Martin Schanzenbach: GNUnet 0.22.2 released. 29. Oktober 2024 (englisch, abgerufen am 30. Oktober 2024).
  2. The gnunet Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 18. Juli 2018).
  3. Krista Bennett, Christian Grothoff: gap – Practical Anonymous Networking. Springer, Berlin, Heidelberg 2003, ISBN 978-3-540-40956-4, S. 141–160, doi:10.1007/978-3-540-40956-4_10.
  4. R.A. Ferreira, C. Grothoff, P. Ruth: A transport layer abstraction for peer-to-peer networks. 2003, S. 398–405, doi:10.1109/CCGRID.2003.1199393.
  5. GNUnet-VPN tunnelt IPv6 Traffic über IPv4 Netzwerke und umgekehrt. In: Pro-Linux. 3. Januar 2012, abgerufen am 7. Januar 2023.
  6. R.A. Ferreira, C. Grothoff, P. Ruth: A transport layer abstraction for peer-to-peer networks. 2003, S. 398–405, doi:10.1109/CCGRID.2003.1199393.
  7. a b Krista Bennett, Christian Grothoff, Tzvetan Horozov, Ioana Patrascu: Efficient Sharing of Encrypted Data. Springer, Berlin, Heidelberg 2002, ISBN 978-3-540-45450-2, S. 107–120, doi:10.1007/3-540-45450-0_8.
  8. Christian Grothoff: Resource allocation in peer-to-peer networks. In: Wirtschaftsinformatik. Band 45, Nr. 3, 2003, ISSN 1861-8936, S. 285–292, doi:10.1007/BF03254946.
  9. Sebastian Grüner: Alternatives DNS in GNUnet 0.9.4. In: golem.de. 6. November 2012, abgerufen am 8. Januar 2023.
  10. Matthias Wachs, Martin Schanzenbach, Christian Grothoff: A Censorship-Resistant, Privacy-Enhancing and Fully Decentralized Name System. Springer International Publishing, Cham 2014, ISBN 978-3-319-12280-9, S. 127–142, doi:10.1007/978-3-319-12280-9_9.
  11. Entwicklung von GNUnet 0.9 hat begonnen. In: Pro-Linux. 21. März 2010, abgerufen am 8. Januar 2023.
  12. Hans-Joachim Baader: NLnet unterstützt GNUnet-Entwicklung finanziell. In: Pro-Linux. Abgerufen am 8. Januar 2023.
  13. Hans-Joachim Baader: DFG fördert GNUnet-bezogene Forschung. In: Pro-Linux. 8. September 2009, abgerufen am 8. Januar 2023.