GNUnet
GNUnet ist ein freies Framework für sicheres und anonymes Peer-to-Peer-Networking, das keine zentralisierten oder anderweitig vertraute Dienste verwendet.
GNUnet | |
---|---|
Basisdaten | |
Maintainer | Christian Grothoff |
Entwickler | Das GNUnet-Team |
Erscheinungsjahr | 2001[1] |
Aktuelle Version | 0.15.0[2] (8. August 2021) |
Betriebssystem | offiziell: freie Betriebssysteme (Linux, FreeBSD, NetBSD, OpenBSD); inoffiziell: Andere Betriebssysteme (macOS, Windows) |
Programmiersprache | C |
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.
GNUnet ist Teil des GNU-Projekts.
Eigenschaften
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. Durch den VPN-Dienst besteht die Möglichkeit, mit GNUnet versteckte Dienste auszuführen; diese können über viele Transport-Protokolle wie TCP, UDP, HTTP, HTTPS, WLAN, Bluetooth, IPv4 und IPv6 getunnelt werden.
Vertraulichkeit
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. 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 (ESED) und ESED II ablöst. Außerdem werden Suchanfragen und Suchbegriffe nicht im Klartext gespeichert und übertragen, sondern nur deren Prüfsummen (sogenannte Hashes, vergleichbar mit einer Quersumme), 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
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“).
Ökonomie/Buchführung
Um ein System lahmzulegen, bedienen sich Angreifer häufig der Möglichkeit des „Flutens“ (flooding). 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“).
Dezentralisierung
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.
Offenheit
Dass „anonyme Kommunikation“ ein Markt ist, haben einige zwielichtige Anbieter erkannt und bieten entsprechende Produkte an. Diese zeichnen sich oft dadurch aus, dass nur das fertige Programm heruntergeladen werden kann und der Quellcode und damit die konkrete Funktionsweise geheim bleibt. GNUnet ist eine echte Open-Source-Software, das heißt, es ist genau bekannt, wie sich die Software verhält und jede einzelne Erweiterung wird per E-Mail an eine große Gruppe von Interessierten und Spezialisten weltweit verteilt und auf mehreren Webseiten archiviert. So ist sichergestellt, dass keine Hintertüren eingeschmuggelt werden. Außerdem wurden fünf wissenschaftliche Publikationen, mehrere Fachvorträge und eine vollständige Dokumentation des Quellcodes angefertigt und stehen jedem zur Einsicht bereit.[3]
Friend-to-Friend / Darknet
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
GNUnet umfasst eine Implementierung des GNU Name System (GNS), ein dezentralisierter und zensurresistenter Ersatz für das Domain Name System. In GNS verwaltet jeder Nutzer seine eigene master-Zone, welche in den DNS-Namesraum 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.
Verwandte Projekte
Weblinks
Einzelnachweise
- GNU's Framework for Secure Peer-to-Peer Networking. (Nicht mehr online verfügbar.) In: gnunet.org. GNUnet e.V., archiviert vom Original am 17. April 2017; abgerufen am 27. März 2017 (englisch): „GNUnet used RSA 2048 since its inception in 2001, but as of GNUnet 0.10.0, we are "powered by Curve25519"“
- Martin Schanzenbach: GNUnet 0.15.0 released. 8. August 2021 (englisch, abgerufen am 8. August 2021).
- GNUnet-Publikationen (Memento vom 14. August 2007 im Internet Archive)