1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte...

56
1 Dezentrale Architekturen

Transcript of 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte...

Page 1: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

1

Dezentrale Architekturen

Page 2: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 2

Übersicht

• Gnutella– Was ist Gnutella– Geschichte– Clients– Protokoll– Infrastruktur– Suche / Antwort– Kultivierung– Traffic Probleme

– Angreifbarkeit– Anonymität– Ausblick

• Freenet– Funktionsweise– Upload/Download– Routing– Hashes– Zusammenfassung

Page 3: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 3

Was ist Gnutella ?

• Ein Picknick, jeder bringt was mit …• Simples File-Sharing Protokoll• Komplett dezentral• Abstrahiert von der Netzstruktur• Knoten sind Servents (Client und Server)• Servents bilden die Netzstruktur• Funktioniert wie die reale Welt (Bsp. Folgt)

Page 4: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 4

Gnutella Philosophie

• Ein Netzwerk zum Suchen und Entdecken• Gedacht für Mensch und nicht Maschine• Total dezentral Nicht wirklich zu stoppen • Freie Interpretation der Anfrage

– Suchanfrage wird unverändert weitergeleiet– Antworten können verschiedenste Form haben

• Dateinamen• Werbe Nachrichten• URLs

• “Anonymes“ Suchen

Page 5: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 5

Gnutella History [1]

• 1999 Übernahme von Nullsoft durch AOL • Kleines Experiment (2 Mannwochen)• März 2000 Justin Frankel und Tom Pepper

von Nullsoft entwickelten Gnutella • Gnutella = (GNU + Nutella)• www.slashdot.org suchte einmalig Tester• Erfolg (1000 User innerhalb von Stunden)• AOL legte das Projekt auf Eis

Page 6: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 6

Gnutella History [2]

• Bryan Mayland überarbeitete das Gnutella Protokoll (total dezentral)

• gnutella.nerdherd.net und IRC #gnutella als Austauschplatz für Entwickler• Open-Source Projekt (GPL)• Justin Frankel gab Detailwissen preis • GDF (Gnutella Developer Forum) entstand• RFC-Gnutella (Request for Comments)• Geburtsstunde etlicher Clients

Page 7: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 7

Gnutella Clients

Windows

• Gnotella• Toadnode• Gnucleus• BearShare*• LimeWire• Shareaza*• PheX• Gnewtella

Linux/Unix

• Gnut• LimeWire• Gtk-Gnutella• Mutella• Phex• Qtella

* Closed source

Page 8: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 8

Cocktail Party Gnutella

• Eintritt• Hallo sagen• Suche die Bar• Frage nach Bar• Stille Post – Welle

• Erhalte Information• Laufe zur Bar

• Connect zu GNet• Ping• Suche „Martini“• Anfrage gestartet• Anfrage weitergeleitet• Antwort (Hit)• Starte Download

Page 9: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 9

Cocktail Party Napster

• Eintritt ins Foyer• Gastgeber + Freunde.• nur ein Informant• suche Bar• zurück zum Foyer

• Info „dahinten“• laufe zur Bar

• Connect to Napster • Riesiger File Index

• Nur ein Fileindex• Suche “Martini“• Zentrale Anfrage• Index liefert Verweis• Starte Download

Page 10: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 10

Gnutella Protokoll [1]

• Gnutella Deskriptoren regeln Kommunikation• Deskriptoren

– Ping : Netz aktiv erforschen– Pong : Antwort auf Ping– Query : Eigentliche Suchanfrage– Query hit : Positivantwort auf Suchanfrage– Push Request : Initiiert das Senden (Firewall)

• Header :

Page 11: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 11

Gnutella Protokoll [2]

• Payload (Nutzlast) der Deskriptoren– Ping : hat kein Payload

– Pong:

– Query :

– Query hit:

– Push Req :

Page 12: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 12

Gnutella Infrastruktur

• Setzt per Software auf dem Internet auf• Netz existiert nur durch seine Servents

– Aus Benutzern werden Operatoren

• Dynamische Netzstruktur, was nun ?– Nutzer trennen sich laufend vom Netz– Es kommen ständig neue Nutzer hinzu– Große Disparität zwischen Bandbreite der Nutzer

(T3 ist ca. 1000 mal schneller als 56K)

Page 13: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 13

Selbstorganisierendes Netzwerk

• Platzierung im Netz hängt nicht von geographischer Lage sondern Bandbreite ab

• Leistungsstarke Knoten (T3) – tendieren zur „Mitte“ des Netzwerks– verbunden mit vielen/großen Knoten

• Leistungsschwache Knoten (56K) – tendieren zum „Rand des Netzes“– verbunden mit wenigen oder kleinen Knoten– Werden zu „Schwarzen Löchern“

• Dadurch entsteht ein stabiles ad hoc Backbone

Page 14: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 14

Gnutella Netz (GNet)

Knotengröße proportional zur Bandbreite

Page 15: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 15

Getting started

• Man muss nur erstmal reinkommen• Gewusst wie : IRC, Hostcaches (GWebCaches)• Einmal verbunden, werden weitere

Verbindungen aufgebaut ( ca. 5)• Pong Caching : Cachen von Hostlisten anderer

Servents (Freundes Freunde) • Lauschen und fleißig mitschreiben wer antwortet • Dead Links werden gelöscht• Nun kann das Suchen beginnen …

Page 16: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 16

Übersicht

• Gnutella– Was ist Gnutella– Geschichte– Clients– Protokoll– Infrastruktur– Suche / Antwort– Kultivierung– Traffic Probleme

– Angreifbarkeit– Anonymität– Ausblick

• Freenet– Funktionsweise– Upload/Download– Routing– Hashes– Zusammenfassung

Page 17: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 17

Eigenschaften von Suchanfragen

• Suchanfragen– enthalten eine UID – erreichen nur den Horizont– werden vom Servent interpretiert

• Gnutella Entwickler demonstrierten Mächtigkeit des Gnutella-Protokolls mit InfraSearch

• Alternative zur Suchmaschine?

Page 18: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 18

Verbreitung von Suchanfragen

• Suchen durch: Broadcasting (Flooding)– Jeder Host schickt zu n Hosts (n~4)– Jedes Packet hat TTL t (t~7)

• Time To Live (TTL) ist ein Zähler der bei jedem Weiterleiten verringert wird, bei 0 wird das Paket verworfen

• Netz wird entlastet durch– Unique Identifiers (UID) (verhindert Echos)– Time To Live (TTL)

Page 19: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 19

Auslastung Gnutella 0.4

Quelle : TU Ilmenau, Hauptseminar Telematik SS 2003

Page 20: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 20

Gnutella Horizont

• Bei TTL 7 erreichen die Suchanfragen

ca. 10 000 Hosts• Wieviele User hat Gnutella eigentlich?

– Millionen Menschen haben einen Gnutella Client runtergeladen bzw installiert

– Man selbst sieht jedoch nur einige Tausend um sich herum

Page 21: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Verbindungsgraph bei Suchtiefe 4 (GraphViz von Gnucleus)

21

Page 22: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 22

Dynamisches Routing für Antworten auf Suchanfragen

• Antwort ebenfalls nur mit UID• Host A merkt sich Host B , der die Suchanfrage

geschickt hat und schickt die Antworten zu ihm zurück

• Ob Host B die Suchanfrage gestartet hat oder nur weitergeleitet ist unbekannt anonymes Suchen

• Suchanfragen wurden anfangs zum anonymen Chatten benutzt

Page 23: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 23

Handling von zu vielen Suchanfragen

• Servents verwerfen Suchanfragen• Es werden keine Buffer oder ähnliches verwendet

(macht bei Suchanfragen keinen Sinn)• Dadurch können T3 Leitungen mit 56 K Modem

Nutzern nicht sinnvoll kommunizieren

Page 24: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 24

Gnutella Kultivierung

• Kleine Änderungen an der Clientsoftware können extrem große Auswirkungen auf das Netz haben

• Beispiel Reflector– Leiten Suchanfragen nicht weiter, sondern

beantworten aus dem eigenen Gedächtnis

+ Reduziert Traffic

– Zerstört Charakteristik von Gnutella

(Hosts sollen Suchanfragen selber interpretieren)

Page 25: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 25

Gnutella Traffic-Probleme [1]

• Zelle: Menge von Hosts die sich untereinander kennen

• Bei Gnutella wird bei zu viel Traffic die Leistung stark reduziert, ähnlich Ethernet

• Lösung: Teilung einer Zelle in kleinere Zellen• Dadurch kennt man zwar weniger Hosts, kann

aber wieder vernünftig kommunizieren

Page 26: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 26

Gnutella Traffic-Probleme [2]

Host Caches: Gut gemeint, schlimme Auswirkungen– Web Site mit aktuellen Host-Listen– Problem trat am 26.07.2000 auf (Untergang von Napster)– Viele Tausend User erfragten beinahe gleichzeitig die

aktuellen Host-Listen ab– Folge : Ballung des gesamten Gnutella Netz um wenige

Hosts, die auf Internet-Seiten zu finden waren– Dadurch war Kommunikation praktisch unmöglich

Page 27: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Christian v. Prollius 27

Gnutella Traffic-Probleme [3]

• Lösung des Host-Cache Problem– Host-Caches prüfen ob die Hosts ausgelastet sind

und sorgen für eine gleichmäßige Verteilung

• Aber es gab noch die Local Host Catcher– Jeder der Servents hatte die anderen noch im

„Gedächtnis“. Dadurch blieb die Ballung erhalten.– Deswegen hat sich das Netz nur langsam entzerrt, da

jeder Servent selber von Hand seinen Local Host Catcher löschen musste

Page 28: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Tinosch Ganjineh 28

Übersicht

• Gnutella– Was ist Gnutella– Geschichte– Clients– Protokoll– Infrastruktur– Suche / Antwort– Kultivierung– Traffic Probleme

– Angreifbarkeit– Anonymität– Ausblick

• Freenet– Funktionsweise– Upload/Download– Routing– Hashes– Zusammenfassung

Page 29: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 29

„Rechtliche“ Angriffe

• Zentralisierte P2P Netzwerke (Napster) sind rechtlich belangbar und können so aus geschaltet werden

• Dezentrale P2P Netzwerke (Gnutella) nicht belangbar, da kein zentraler Betreiber des Netzwerkes existiert

Page 30: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 30

Technische Angriffe

DoS-Attacken• Clients Xoloco & Qtraxmax führten zu

Netztüberlastung durch (query) flooding• Gezielte DoS-Attacken gegen Supernodes

Page 31: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 31

Anonymität

• Gnutella ist nicht anonym (!) – Suchanfragen sind niemandem zuordenbar und

damit anonym – ABER : bei einem Transfer kennen die beteiligten

Nutzer die jeweilige IP-Adresse des Anderen, also nicht anonym

• Beispiel Hall of Shame

Pseudoanonymität

Page 32: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 32

Pseudoanonymität

• Weitere Gründe für Pseudoanonymität– Großteil der messages enthalten keine IPs (nur die

Antworten auf queries)– Dynamische Routing Tabellen– Zur Identifikation ist Überwachung des gesamten

Internet Traffic nötig

Page 33: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 33

„Next Generation“ / Ausblick

Nächster GDF Release ? (aktuell Gnutella Protokoll 0.6)

• zukünftige Features– Community-Feature– Encryption – (bereits implemtiert in BearShare) – Privacy– Caching of popular content– Magma-Links - Multiple-file-magnets– What's New?

Page 34: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 34

Ausblick [2]

Ungelöste Probleme • Traffic-Reduktion insbes. bei Suchanfragen• Verbesserte Netztopologie

Page 35: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 35

Weitere Entwicklungen[1]

Gnutella2 (G2)• Alleinentwicklung von Mike Stokes (Shareaza) • Komplette Überarbeitung von Gnutella

– Viele Schwächen bzw. Probleme beseitigt

• Ablehnung von GDF da Alleinentwicklung – Gnutella2 daher auch bekannt als Mike‘s Protocol

(MP)– G2 inkompatibel zu G1

• G2 Clients u.a. Morpheus, Shareaza, MLdonkey

Page 36: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 36

Weitere Entwicklungen[2]

Mittelfristige Entwicklungen• Integration der verschiedenen Protokolle

G1 und G2 zeichnet sich nicht abEntwicklung von Clients die mehrere Protokolle

beherrschen (z.B. Shareaza, Morpheus)

• Nächster Durchbruch– Gleichzeitiger, Multipler Download einer Datei aus

verschiedenen P2P-Netzwerken

Page 37: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Thomas Schwaier 37

Weitere Entwicklungen[3]

• FUtella – P2P Netzwerk für den Austausch Wissenschaftlichen

Arbeiten und Ergebnisse aller Art (Publikation, Essays, Papers, Übungsaufgaben, etc..)

– Basiert auf Prinzipien bzw. Elementen von Gnutella, JXTA,JXTA Search, Freenet und erweitert diese

– Wird ein Stockwerk über uns in der Technischen Informatik entwickelt !

Page 38: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 38

Gnutella - Quellen

[1] Adam Langley, „Gnutella“, Peer-to-Peer: Harnessing the Power of Disruptive Technologies, A. Oram(ed.), O‘Reilly and Assoc., Sebastopol, Californien, 2001, Chapter 8

[2] Farhad Manjoo „Gnutella Bandwidth Bandits“, Salon.com 08.08.2002

http://www.salon.com/tech/feature/2002/08/08/gnutella_developers/print.html

[3] Gnutella² Developers Network

http://www.gnutella2.com

[4] Gnutella Protocol Development

http://rfc-gnutella.sourceforge.net

[5] „Gnutella“ bei Wikipedia

http://en.wikipedia.org/wiki/GnutellaStand: 05.05.2004

Page 39: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 39

Freenet

Noch ein Protokoll! Warum?

- Sicherheit vor Zensur- Gewährleistung von Anonymität - Robustheit- Effizienz- Schutz vor juristischem Zwang

Page 40: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 40

Freenet - Funktionsweise

• Verteilter, vielfach redundanter Speicher• Message Passing Network• Verbindungen: Knoten kennt

– Direkten Vorgänger– Direkten Nachfolger– Request-Key

• Außerdem: Knoten hat Tabelle mit– Schlüsseln– (Daten)– Adressen Abb. 1, Sichtweite einzelner Knoten

Page 41: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 41

Speichertabellen

Abb. 2, Speicher einzelner Knoten [2]

Page 42: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 42

Freenet - Download

• Ablauf einer Suche / eines Downloads:– Anfrage beim nächsten Knoten X nach Hashwert– X hat Dokument: X liefert Dokument– X hat Dokument nicht: X leitet Anfrage an Y weiter– Ende wenn

• Dokument gefunden oder• Timeout (TTL=0)

• Timeouts und Daten werden wie auf dem Hinweg zurückgeschickt

• Zwischenstationen cachen Daten

Abb. 1, Sichtweite einzelner Knoten

Page 43: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 43

Freenet - Datentransfer

Abb. 3, Routing zwischen Knoten, [3]

Page 44: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 44

Einfügen [1]

• Ablauf eines Uploads / eines Einfügens:– Zuerst wie Suche– Dokument gefunden: Daten werden geliefert– Dokument nicht gefunden: InsertRequest– Alle Knoten bis zum InsertRequest-Sender cachen

Daten

Page 45: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 45

Einfügen [2]

• Vorteile:– Beliebte Daten werden oft gecached– Keine Chance für gefälschte Daten (Kontrolle: Hash

->Daten)

Page 46: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 46

Freenet - Routing

• Routing ist Zielgerichtet– Weiterleitung von Anfragen an Besitzer des

Dokuments mit ähnlichstem Schlüssel– Prinzip wie Suche eines Dorfs im Mittelalter

• Man geht von Dorf zu Dorf• In jedem Dorf wird nach der Richtung gefragt• Recht effizient

– Andere P2P-Netze: oft wahlloses Fluten• Das entspräche dem Schicken von Boten in alle Dörfer• Das ist sehr ineffizient

Page 47: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 47

Freenet - Routing

Wieso funktioniert es?• Pos. Feedback-Schleife: Knoten spezialisieren

sich auf einen bestimmten Schlüsselbereich• Dadurch werden sie häufiger referenziert• Knoten spezialisieren sich weiter auf diesen

Bereich. • Knoten cachen mehr Daten aus diesem Bereich• Außerdem: „Small-World-Effect“

Page 48: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 48

Freenet - Hashes

• Wie kommt man an den Hash einer Datei?– Durch separate Mitteilung via Web, Email, News, ...

(CHK, SSK)– Durch raten und rechnen (KSK)

• Grund: Unterschiedliche Schlüsselarten– Content Hash Key (CHK)– Keyword Signed Key (KSK)– Signed Subspace Key (SSK)

Page 49: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 49

Freenet – CHK Hashes

• Form: freenet:CHK@tiUTF8Gfb01jGf103hHl• Schlüssel ist eindeutiger Hash der Datei• Feste Länge• Fälschungssicher• Problem: schlecht zu merken

Page 50: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 50

Freenet – KSK Hashes

• Form: freenet:KSK@text/books/1984.html• Erzeugung eines Schlüsselpaares aus

„text/books/1984.html“• Hash des öffentlichen Schlüssels ist Key• Feste Länge• Datei wird mit privatem Schlüssel signiert

(Integritätscheck)• Begrenzt Fälschungssicher: „Wer zuerst kommt,

mahlt zuerst“

Page 51: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 51

Freenet – SSK Hashes

• Schafft einen persönlichen Namensraum• Schafft pseudonymes Filesharing

Vorgehen:• Erzeugen eines pers. Schlüsselpaares• Auswählen einer Beschreibung (wie KSK)• Key = Hash(Hash(Pub. Key), Hash(Beschreibung))

• Datei wird mit priv. Schlüssel signiert

Page 52: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 52

Freenet - Filterzwang?

• Wenn Knotenbetreiber den Cacheinhalt kennen würden, müßten sie Filtermaßnahmen ergreifen

• Also: Daten werden verschlüsselt gespeichert• Schlüssel nur Suchendem bekannt• Brute Force dauert ewig• Knotenbetreiber kennen den Cache-Inhalt nicht• Ergebnis: Filtern unmöglich

Page 53: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 53

Zusammenfassung [1]

Eigenschaften von Freenet - Vorteile:

• Weitgehende Anonymität der Benutzer• Zensur nahezu unmöglich• Recht effizientes Routing und Caching• Dezentrale Architektur• Kein „Single Point of Failure“• Guter Tradeoff zwischen Paranoia und Effizienz

Page 54: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 54

Zusammenfassung [2]

Eigenschaften von Freenet – Nachteile

• Keine ordentliche Suchfunktion, fehlende Wilcards

• Ineffizienterer Datenverkehr als bisherige P2P-Applikationen

• Verbesserung des Routings möglich

Page 55: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 55

Freenet - Quellen

[1] Ian Clarke et al., „Freenet: A Distributed Anonymous Information Storage and Retrieval System“, Designing Privacy Enhancing Technologies, Lecture Notes in Computer Science 2009, H. Federrath (ed.), Springer-Verlag, Berlin, 2001, S. 46-66

[2] Adam Langley, „Freenet“, Peer-to-Peer: Harnessing the Power of Disruptive Technologies, A. Oram(ed.), O‘Reilly and Assoc., Sebastopol, Californien, 2001, S. 203-241

[3] Ian Clarke et al., „Protecting Free Expression Online with Freenet“, IEEE Internet Computing Article, Jan./Feb. 2002, S.40-49, URL geprüft 02.05.2004: http://freenet.sourceforge.net/papers/freenet-ieee.pdf

Page 56: 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte –Clients –Protokoll –Infrastruktur –Suche / Antwort –Kultivierung.

Florian Greb 56

Freenet - Ende

Danke für die Aufmerksamkeit!