1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte...
-
Upload
hartmann-leimer -
Category
Documents
-
view
105 -
download
0
Transcript of 1 Dezentrale Architekturen. Tinosch Ganjineh2 Übersicht Gnutella –Was ist Gnutella –Geschichte...
1
Dezentrale Architekturen
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
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)
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
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
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
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
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
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
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 :
Tinosch Ganjineh 11
Gnutella Protokoll [2]
• Payload (Nutzlast) der Deskriptoren– Ping : hat kein Payload
– Pong:
– Query :
– Query hit:
– Push Req :
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)
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
Tinosch Ganjineh 14
Gnutella Netz (GNet)
Knotengröße proportional zur Bandbreite
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 …
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
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?
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)
Christian v. Prollius 19
Auslastung Gnutella 0.4
Quelle : TU Ilmenau, Hauptseminar Telematik SS 2003
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
Verbindungsgraph bei Suchtiefe 4 (GraphViz von Gnucleus)
21
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
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
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)
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
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
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
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
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
Thomas Schwaier 30
Technische Angriffe
DoS-Attacken• Clients Xoloco & Qtraxmax führten zu
Netztüberlastung durch (query) flooding• Gezielte DoS-Attacken gegen Supernodes
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
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
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?
Thomas Schwaier 34
Ausblick [2]
Ungelöste Probleme • Traffic-Reduktion insbes. bei Suchanfragen• Verbesserte Netztopologie
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
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
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 !
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
Florian Greb 39
Freenet
Noch ein Protokoll! Warum?
- Sicherheit vor Zensur- Gewährleistung von Anonymität - Robustheit- Effizienz- Schutz vor juristischem Zwang
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
Florian Greb 41
Speichertabellen
Abb. 2, Speicher einzelner Knoten [2]
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
Florian Greb 43
Freenet - Datentransfer
Abb. 3, Routing zwischen Knoten, [3]
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
Florian Greb 45
Einfügen [2]
• Vorteile:– Beliebte Daten werden oft gecached– Keine Chance für gefälschte Daten (Kontrolle: Hash
->Daten)
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
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“
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)
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
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“
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
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
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
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
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
Florian Greb 56
Freenet - Ende
Danke für die Aufmerksamkeit!