Entwurf und Implementierung eines verteilten Systems zur Suche
Transcription
Entwurf und Implementierung eines verteilten Systems zur Suche
Diplomarbeit Entwurf und Implementierung eines verteilten Systems zur Suche und Analyse von Dateien in Peer-to-Peer Netzen Michael Wagner #653287 Alter Wetzlarer Weg 3 35392 Giessen wagn4701@uni-trier.de Betreuer : Prof. Peter Sturm (Universität Trier) Dr. Martin Steinebach (Fraunhofer IPSI) Eingereicht am : 8. Januar 2007 Erklärung Hiermit erkläre ich, dass ich die Diplomarbeit selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt und die aus fremden Quellen direkt oder indirekt übernommenen Gedanken als solche kenntlich gemacht habe. Die Diplomarbeit habe ich bisher bei keinem anderen Prüfungsamt in gleicher oder vergleichbarer Form vorgelegt. Sie wurde bisher auch nicht veröffentlicht. Trier, 8. Januar 2007 ” Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.“ Albert Einstein Für meine Eltern. Und Anke. Danksagung: Ich danke meinen Eltern, die mir dieses Studium ermöglicht haben und die mir auch in schweren Zeiten zur Seite gestanden haben. Weiter gilt mein Dank meiner Liebe Anke, die immer für mich da ist. Eine besondere Anerkennung verdient Herr Dr. Martin Steinebach, der mich während der ganzen Diplomarbeitsphase sehr geduldig unterstützt hat. Nicht zu vergessen an dieser Stelle ist Herr Professor Peter Sturm, der durch seine unterhaltsamen und zugleich lehrreichen Vorlesungen, mein Interesse für das Gebiet der verteilten Systeme geweckt hat. Zudem gilt ihm mein Dank für die Unterstützung und Betreuung während der Diplomarbeit. Ein letzter Dank gilt meinen Geschwistern, die mir, wo sie nur konnten, geholfen haben und meinen Korrekteuren für ihre gründliche Arbeit. VI Kurzfassung Trotz aller Versuche der Musik- und Filmindustrie gegen angebliche Datenpiraten und Tauschbörsennutzer vorzugehen, wird Filesharing immer beliebter. Wasserzeichen stellen dabei eine gute Methode dar, um urheberrechtlich geschütztes Material zu markieren. Damit ist es möglich, unerlaubte Kopien zu identifizieren und gegen den Benutzer vorzugehen. Um diese Identifizierung durchführen zu können, müssen zuerst einmal in der entsprechenden Filesharing-Software von jedem anbietenden Benutzer die Datei bzw. ein Teil der Datei heruntergeladen werden. Ziel der Diplomarbeit ist es, eine verteilte Lösung zum Download von diesen Dateien auf der Basis einer von Schlüsselworten gesteuerten Suche zu entwerfen. Hierzu wird ein geeignetes Netzwerk ausgewählt und ein als Open Source vorliegender Client so modifiziert, dass er (a) automatisiert abhängig von Schlüsselworten Dateien herunterladen kann und (b) diesen Suchvorgang mit anderen Clients gleichen Typs synchronisieren und Kollisionen auflösen kann. VII Abstract Despite all attempts of the Music and Film industries to fight them, data piracy and the use of file sharing programmes are becoming increasingly popular. Watermarks offer a good possibility of identifying illegal copies and to prosecute their users as they can be used to mark copyrighted materials. Preliminary to this identification, users have to have downloaded the concerned data at least partially by use of the corresponding file sharing software. The aim of this Diplomarbeit is to find a distributed solution to download said data based on a keyword-driven search. For this thesis, a suitable network must be chosen and an Open Source Client must be modified in such a way that it a) is able to automatically download files appropriate to the given keyword, and that it b) is able to synchronise this search with other clients of a similar type whilst preventing collisions. IX Inhaltsverzeichnis Erklärung III Kurzfassung VI Abstract VII Abkürzungsverzeichnis XV 1 Einleitung 1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Aufbau der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Grundlagen und Analyse 2.1 Piraterie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Geschichte der Schwarzkopie . . . . . . . . . . . . . . . . 2.1.2 Motivation und Psychologie des Schwarzkopierens . . . . 2.1.3 Rechtliche Aspekte . . . . . . . . . . . . . . . . . . . . . 2.1.4 Maßnahmen gegen Schwarzkopierer . . . . . . . . . . . . 2.1.5 Ökonomische Folgen . . . . . . . . . . . . . . . . . . . . 2.1.6 Existierende Lösungsansätze zur Pirateriebekämpfung . . 2.2 Digitale Wasserzeichen . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Eigenschaften eines Wasserzeichen-Verfahrens . . . . . . 2.2.2 Anwendungsgebiete digitaler Wasserzeichen . . . . . . . 2.2.3 AlgorithmManager . . . . . . . . . . . . . . . . . . . . . 2.3 Verteilte Systeme . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Peer-to-Peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1 Tauschbörsen . . . . . . . . . . . . . . . . . . . . . . . . 2.4.1.1 Napster . . . . . . . . . . . . . . . . . . . . . . 2.4.1.2 Bittorrent . . . . . . . . . . . . . . . . . . . . . 2.4.1.3 eDonkey . . . . . . . . . . . . . . . . . . . . . . 2.4.1.4 Kademlia . . . . . . . . . . . . . . . . . . . . . 2.4.2 JXTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2.1 Wichtige Grundbegriffe der JXTA-Technologie . 2.4.3 Klassifizierung von Peer-to-Peer-Systemen . . . . . . . . 1 1 2 . . . . . . . . . . . . . . . . . . . . . 4 4 5 7 8 10 11 13 15 18 18 19 20 23 24 26 28 28 31 31 32 34 3 Entwurf 3.1 Zielsetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Ablauf der Suche und Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X Inhaltsverzeichnis 3.3 3.4 3.5 3.6 3.7 . . . . . . . . 39 41 42 43 44 44 45 45 . . . . . . . . . . . . . . 47 47 47 48 49 54 55 55 56 57 57 59 60 60 61 . . . . 62 62 64 65 66 6 Zusammenfassung und Ausblicke 6.1 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Ausblicke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 68 69 A Klassendiagramme 71 B Die optimale Konfiguration von eMule 73 C Anleitung zur Nutzung des entwickelten Systems 75 D Inhalt der CD-ROM zur Arbeit 77 E Kuriositäten-Sammlung 78 Literaturverzeichnis 80 3.8 Anforderungen . . . . . . . . . . . . . . . . Ausnahmefälle . . . . . . . . . . . . . . . . . Lastverteilung . . . . . . . . . . . . . . . . . Schnittstelle zu Internet-Tauschbörsen . . . Wahl der verwendeten Komponenten . . . . 3.7.1 Wahl der Tauschbörse . . . . . . . . 3.7.2 Wahl der Kommunikationsplattform Datei-Identifikation . . . . . . . . . . . . . . 4 Implementierungsaspekte 4.1 Entwicklungsumgebung . . . . . . . . 4.2 Aufbau des Prototypen . . . . . . . . 4.2.1 Basisklasse Peer . . . . . . . . 4.2.2 Datenverwaltung . . . . . . . 4.2.3 Aufbau des Masters . . . . . . 4.2.3.1 Monitoring . . . . . 4.2.3.2 Dispatcher . . . . . 4.2.3.3 Dienste des Masters 4.2.3.4 Benutzerschnittstelle 4.2.4 Aufbau eines Slaves . . . . . . 4.2.4.1 Anbindung an eMule 4.2.4.2 Systeminformationen 4.2.4.3 AlgorithmWorker . . 4.2.4.4 Dienste des Slaves . 5 Evaluation und Leistungsbeurteilung 5.1 Testumgebung . . . . . . . . . . . 5.2 Funktionstests . . . . . . . . . . . 5.3 Laborversuch . . . . . . . . . . . 5.4 Praxistest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI Abbildungsverzeichnis 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 Verbreitungspyramide . . . . . . . . . . . . . . . . . . Gründe gegen eine Nutzung kommerzieller Angebote . Umsatzverluste durch Piraterie . . . . . . . . . . . . . Nutzung verschiedener Kanäle für den Musik-Download Einbetten und Auslesen eines digitalen Wasserzeichens algoDescription.xml . . . . . . . . . . . . . . . . . . . . Middleware . . . . . . . . . . . . . . . . . . . . . . . . Serverbasiertes und serverloses Peer-to-Peer-Netz . . . Aufbau des Napster-Netzwerkes . . . . . . . . . . . . . BitTorrent-Netzwerk . . . . . . . . . . . . . . . . . . . eDonkey-Netzwerk . . . . . . . . . . . . . . . . . . . . Die JXTA-Architektur . . . . . . . . . . . . . . . . . . . . . . . . im . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 11 12 17 20 22 25 28 29 30 33 3.1 3.2 3.3 3.4 3.5 Digitales Wasserzeichen zur Identifikation . Blackbox Wasserzeichen-Analyse . . . . . Systemübersicht . . . . . . . . . . . . . . . Ablauf der Suche und Analyse . . . . . . . Schnittstelle zu Internet-Tauschbörsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36 37 38 43 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Überklasse Peer . . . . . . . . . . . . . Schnittstelle zur Datenbank . . . . . . Peer Monitor . . . . . . . . . . . . . . Dispatcher . . . . . . . . . . . . . . . . Benutzerschnittstelle . . . . . . . . . . Benutzerschnittstelle Slave - Übersicht Benutzerschnittstelle Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 49 55 56 58 58 59 5.1 5.2 5.3 5.4 5.5 Testumgebung 1 . . . . . Testumgebung 2 . . . . . Testumgebung 3 . . . . . Ergebnisse Laborversuch Feldversuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 63 64 66 67 A.1 Klassendiagramm Master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.2 Klassendiagramm Slave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 72 C.1 Einstellungsassistent des Slaves . . . . . . . . . . . . . . . . . . . . . . . . . 75 E.1 Buch: The Crow Who Could Fly . . . . . . . . . . . . . . . . . . . . . . . . 78 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XII Abbildungsverzeichnis E.2 Buch: The Pig And The Box . . . . . . . . . . . . . . . . . . . . . . . . . . . E.3 Parodie RIAA - Plakat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 79 XIII Tabellenverzeichnis 2.1 Klassifizierung der Peer-to-Peer-Systeme . . . . . . . . . . . . . . . . . . . . 34 3.1 Kriterien zur Lastverteilung . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 peers.xml . . . . . results.xml . . . . . searches.xml . . . . server.xml . . . . . files.xml . . . . . . wm results.xml . . algorithms.xml . . peer downloads.xml settings.xml . . . . 50 50 51 51 52 52 53 53 54 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XV Abkürzungsverzeichnis Business Software Alliance (BSA) Compact Disc (CD) Distributed Hashtable (DHT) Digital Rights Management (DRM) Digital Subscriber Line (DSL) eDonkey2000 (ed2k) File Exchange Protocol (FXP) Graphical User Interface (GUI) Globally Unique Identifier (GUID) Gesellschaft zur Verfolgung von Urheberrechtsverletzungen e.V. (GVU) Hypertext Markup Language (HTML) Integrierten Entwicklungsumgebung (IDE) International Federation of the Phonographic Industry (IFPI) Instant Messager (IM) Fraunhofer-Institut für Integrierte Publikations- und Informationssysteme (IPSI) Integrated Services Digital Network (ISDN) Internet Service Provider (ISP) Kademlia (Kad) Mediensicherheit in der IT (MERIT) Network Address Translation (NAT) Organisation for Economics Co-operation and Development (OECD) Peer-to-Peer (P2P) XVI Pipe Binding Protocol (PBP) Peer Discovery Protocol (PDP) Peer Endpoint Protocol (PEP) Peer Information Protocol (PIP) Peer Resolver Protocol (PRP) Recording Industry Association of America (RIAA) Rendezvous Protocol (RVP) Strafprozeßordnung (StPO) Telekommunikationsgesetz (TKG) Gesetz über Urheberrecht und verwandte Schutzrechte (UrhG) Uniform Resource Locator (URL) World Wide Web Consortium (W3C) World Wide Web (WWW) Extensible Markup Language (XML) Abkürzungsverzeichnis 1 1 Einleitung In den letzten Jahren veränderte die Peer-to-Peer Technologie das Internet und dessen Gebrauch. Peer-to-Peer ist zu einem Synonym für Internet-Tauschbörsen geworden und viele denken dabei an den Tausch von Bildern, Musik oder Filmen. Durch die Zunahme der unerlaubten Verbreitung von urheberrechtlich geschütztem Material über Internet-Tauschbörsen erlangt die Pirateriebekämpfung einen immer höheren Stellenwert für die Medien- und Softwareindustrie. Das Kapitel 1.1 motiviert zunächst die wissenschaftliche Auseinandersetzung mit dieser Problematik und das Kapitel 1.2 skizziert den Aufbau dieser Arbeit und die damit verbundene Vorgehensweise. 1.1 Motivation Bild-, Ton- und Filmmedien sind in unserer heutigen Informationsgesellschaft allgegenwärtig und nicht mehr wegzudenken. Seitdem die digitalen Medien die analoge Technologie abgelöst haben, ist es möglich, Kopien dieser Medien in unbegrenzter Stückzahl mit gleichbleibender Qualität anzufertigen. Durch das digitale Format sind Werke nicht mehr an ein Trägermedium wie eine Video- oder Audiokassette gebunden, sondern können ohne großen Aufwand über Datennetzwerke, wie z.B. das Internet, verbreitet werden. 1999 programmierte der Student Shawn Fanning eine Software zum Austausch von Musikdateien über das Internet. Das Programm wurde innerhalb von wenigen Monaten weltweit unter dem Namen Napster“ bekannt. Fanning legte mit seiner Entwicklung den Grundstein ” für eine bis heute anhaltende, fortwährende Verbreitung von Internet-Tauschbörsen. Fannings System basierte auf der einfachen Idee der dezentralen Datenhaltung. Dadurch wurde ermöglicht, dass Nutzer Dateien direkt von einem anderen Computer herunterladen konnten. Der zentrale Internet-Server diente dabei lediglich der Indexierung der Datenbestände. Inzwischen existieren zahlreiche, verschiedene Internet-Tauschbörsensysteme. Dank immer schnellerer Internet-Verbindungen und der fortwährenden Weiterentwicklung der Übertragungs- und Komprimierungstechnologien und der Tauschbörsen ist es aber heute nicht mehr 2 1 Einleitung nur möglich, Audio-Dateien zu tauschen, sondern auch Filme, Bücher und Computerprogramme. Allerdings lässt die einfache Möglichkeit der Vervielfältigung und Verbreitung digitaler Medien viele Tauschbörsen-Nutzer über rechtliche Aspekte hinwegsehen. Eine Verbreitung der Dateien in Tauschbörsen ist allerdings nur erlaubt, wenn dies vom Urheber explizit genehmigt wurde. Schließlich möchte der Urheber in der Regel mit seinem Werk Geld verdienen. Weiterhin betrachten viele Tauschbörsennutzer den unentgeltlichen Tausch als Kavaliersdelikt und weniger als Straftat (vgl. dazu Kapitel 2.1.2). Aus diesen Gründen beschäftigt sich die Wissenschaft mit Internet-Tauschbörsen und dem Verhindern von strafrechtlichen Handlungen in diesen. Weiterhin untersucht die Wissenschaft Methoden zur nachträglichen Aufdeckung solcher Verstöße. In diesem Bereich ist auch diese Arbeit einzuordnen. Viele Schutzmechanismen für digitale Medien führen zu Restriktionen. Somit ist allerdings auch eine legale Kopie nicht mehr möglich. Teilweise unterbinden solche Systeme sogar das Abspielen auf bestimmten Geräten. Ein nicht-restriktiver Ansatz ist die Einbettung von digitalen Wasserzeichen etwa mit einer Kundennummer. Dadurch wird zum Einen ein sogenannter psychologischer Kopierschutz“ aufgebaut, zum Anderen ermöglicht ” das Wasserzeichen eine Rückverfolgung bei einer eventuellen Rechtsverletzung. Um derartige Rechtsverletzungen aufzudecken, müssen alle Dateien aus Tauschbörsen erst lokal verfügbar gemacht und im Anschluss auf ein etwaiges Wasserzeichen untersucht werden. Durch die große Menge an Dateien in Internet-Tauschbörsen bietet ein verteiltes System zur Suche und Analyse dieser Dateien eine schnelle und gut erweiterbare Möglichkeit, um diesen Anforderungen gerecht zu werden. Diese Arbeit weist die Aspekte der nachträglichen Aufdeckung von unberechtigten Vervielfältigungen und Veröffentlichungen von Dateien in Internet-Tauschbörsen unter Zuhilfenahme von digitalen Wasserzeichen in einem verteilten System auf. Der Schwerpunkt dieser Arbeit liegt dabei beim Entwurf eines verteilten Systems zur Suche und zur Verfügbarmachung von Dateien aus Tauschbörsen. Die anschließende Analyse nach Wasserzeichen wird skizziert. 1.2 Aufbau der Arbeit Der Einstieg in die Thematik erfolgt im nächsten Kapitel 2. In diesem Kapitel werden die Grundlagen angesprochen und es erfolgt eine erste Analyse der Ausgangssituation. Das Kapitel gliedert sich in die vier Teilbereiche Piraterie, Digitale Wasserzeichen, Verteilte Systeme und Peer-to-Peer. 1.2 Aufbau der Arbeit 3 Im anschließenden Kapitel 3 wird der Entwurf eines verteilten Systems zur Suche und Analyse von Dateien in Internet-Tauschbörsen vorgestellt. Die Idee zu diesem System beruht auf einem Konzept des Fraunhofer Instituts für Integrierte Publikations- und Informationssysteme (IPSI). In diesem Kapitel wird zunächst die Zielsetzung dieser Arbeit erläutert. Im Anschluss erfolgt eine Darstellung über den Ablauf einer möglichen Suche und Analyse. Zudem werden Anforderungen, mögliche Ausnahmefälle und weitere Aspekte des zu entwickelnden Systems beschrieben. Das Kapitel 4 beschreibt verschiedene Implementierungsaspekte. Hierbei erfolgt die Darstellung des Systemaufbaus sowie die Beschreibung der verschiedenen implementierten Komponenten. Zum Abschluss erfolgt im Kapitel 5 eine Evaluation und Leistungsbewertung des Systems. Dabei gilt es lediglich einen ersten Eindruck über Potenzial und Effizienz des Systems zu vermitteln. Eine Zusammenfassung und Ausblicke für zukünftige Entwicklungen bilden den Abschluss der Arbeit. 4 2 Grundlagen und Analyse Dieses Kapitel soll einen Überblick über die verwendeten Techniken und über den aktuellen Stand der Technik liefern. Nach einer Einführung in das Thema Piraterie“ werden in ” den folgenden Abschnitten der Stand der Technik in Bezug auf digitale Wasserzeichen als auch in Bezug auf Peer-to-Peer beschrieben. Dabei erfolgt eine erste für eine solche Arbeit unerlässliche Analyse. 2.1 Piraterie In diesem Abschnitt erfolgt eine Einführung in die verschiedenen Aspekte der InternetPiraterie. Nach einer kurze Einführung in ihre Geschichte werden die rechtlichen Aspekte, die ökonomischen Folgen und die möglichen Gegenmaßnahmen behandelt. Das Internet hat die Produktion, die Nutzung und den Vertieb von digitalen Medien (z.B. Bilder, Musik oder Film) revolutioniert. Betroffen von dieser Revolution sind alle Mitglieder der Wertschöpfungskette, u.a. die Konsumenten, Produzenten und der Vertrieb. Insbesondere die Möglichkeit, Medien in nicht physischer Form zu vertreiben, hat neue legale und illegale Geschäftsfelder entstehen lassen. Auf den folgenden Seiten sollen hauptsächlich die illegalen Seiten – die sogenannten Raubkopien1 – beleuchtet werden. Nichtsdestotrotz sollen relevante legale Seiten nicht verschwiegen werden. 1 Im Folgenden wird der Ausdruck Raubkopie“ durch den Ausdruck Schwarzkopie“ ersetzt. Dieser Aus” ” druck beschreibt wesentlich treffender die begangene Straftat. §249 (1) des Strafgesetzbuch definiert einen Raub wie folgt: [...] mit Gewalt gegen eine Person oder unter Anwendung von Drohungen mit gegen” wärtiger Gefahr für Leib oder Leben eine fremde bewegliche Sache einem anderen [...] wegnimmt [...]“. 2.1 Piraterie 5 2.1.1 Geschichte der Schwarzkopie Zu Beginn der Computerentwicklung bestand das Hauptaugenmerk auf der Weiterentwicklung der Hardware. Software galt als frei verfügbar und wurde beliebig kopiert und verändert.2 Einer der Vorreiter kommerzieller Software war Bill Gates, der 1975 zusammen mit Paul Allen Microsoft gründete mit dem Ziel, Software zu verkaufen. Das erste Microsoft-Produkt war eine Weiterentwicklung der Programmiersprache BASIC. Da zahlreiche Programmierer weiterhin ihrer alten Praxis der freien Vervielfältigung treu blieben, schrieb Bill Gates den sogenannten Open Letter“3 , in dem er jeden des Diebstahls bezichtigte, der die Software ” ohne Bezahlung nutzte und kopierte4 . Mit dem Aufkommen von sogenannten Home-Computern in den 1980er Jahren wandelte sich der Computer vom Spiel- und Arbeitsgerät für Wissenschaftler und Freaks“ zu einem ” Gerät für das gemeine“, wenn auch weiterhin technisch versierte Volk. Durch diesen Wandel ” wurde das Kopieren zu einer Art Volkssport“. So sahen und sehen es noch heute viele als ” Hobby an, einen Kopierschutz zu umgehen. War dieses anfangs noch eher trivial, so wurde der Kopierschutz bis heute immer ausgeklügelter. Die Schwarzkopie wurde anfangs hauptsächlich im Schulhoftausch verbreitet. Mit dem Aufkommen der ersten Kopierschutzmechanismen entstanden die ersten Cracking Groups.5 In diesen Gruppen vereinigten sich Cracker, um gemeinsam dem Hobby des Kopierschutzentfernens nachzugehen. Das Aufkommen des World Wide Web (WWW) wirkte wie eine Revolution der bisherigen Szene rund um die Schwarzkopie. Wurde früher Software über langsame Modems und Disketten getauscht, veränderte sich durch Integrated Services Digital Network (ISDN), Digital Subscriber Line (DSL) und das WWW einiges. Erst durch die neuen Technologien wurde es möglich, auch bis dahin viel zu große Werke, wie Audio, Video und Software, zu tauschen. Selbstverständlich spielten für diese Entwicklung auch noch weitere Technologien eine wichtige Rolle. Die Entwicklung der Compact Disc (CD), von Komprimierungsverfahren und nicht zuletzt die Entwicklung immer schnellerer Computer sind nur einige Beispiele. Zudem nahm die Qualität der Kopie von analogen Medien mit der Anzahl der hergestellten Kopien ab. Dieses Problem existiert bei digitalen Medien nicht mehr. Heute ist das Anfertigen 2 (Vgl. (Vgl. 4 (Vgl. 5 (Vgl. 3 Krömer und Sen 2006, S.22) Gates 1976) Krömer und Sen 2006, S.26) Krömer und Sen 2006, S.32) 6 2 Grundlagen und Analyse Abbildung 2.1: Verbreitungspyramide (Vgl. Krömer und Sen 2006, S.48) von beliebig vielen Kopien ohne Qualitätsverlust möglich. Parallel zu diesen technologischen Entwicklungen bildete sich eine Szene, wie sie in Abbildung 2.1 zu sehen ist. In dieser Verbreitungspyramide soll der typische Weg von sogenannten Warez“6 gezeigt werden. ” Im Folgenden werden die einzelnen Gruppierungen kurz beschrieben: Die Release-Szene bzw. Cracker-Szene ist zuständig für die Versorgung der ganzen Schwarzkopie-Szene mit neuen Warez. Es sei dabei angemerkt, dass ein Großteil der Gruppen dieser Szene nicht aus kommerziellen Zwecken handeln. Zwischen den Gruppen herrscht ein reger Wettbewerb um die meisten 0-Days-Releases. Mit diesem Namen werden Warez bezeichnet, die mit oder sogar vor dem offiziellen Marktstart veröffentlicht werden. Die FXP-Szene7 sorgt für die Verbreitung der durch die Release-Szene in Umlauf gebrachten Warez. Auch hier herrscht ein reger Wettbewerb innerhalb der Szene um die Anzahl der verbreiteten Warez. Die Filesharing-Szene umfasst die Gelegenheitskopierer, sozusagen die Konsumenten der Schwarzkopie-Szene. Diese Szene entwickelte sich erst 1999 mit der Veröffentlichung der Internent-Tauschbörse Napster“. ” 6 Warez“ ist ein Sammelbegriff für Schwarzkopien, der in der Filesharing-Szene Verwendung findet. Mehr ” zum Szenejargon unter (Krömer und Sen 2006, S.36) 7 Der Name dieser Szene kann auf das File Exchange Protocol (FXP) zurückgeführt werden. Dabei handelt es sich um ein zur schnellen Daten-Übertragung zwischen FTP-Servern unterlässliches Protokoll. 2.1 Piraterie 7 2.1.2 Motivation und Psychologie des Schwarzkopierens In diesem Abschnitt soll über Motive des Schwarzkopierens und über die Psychologie des Kopierens gesprochen werden. Es würde allerdings zu weit gehen, über die Zubringer“ bzw. ” Lieferanten“ (also die Release-Szene und FXP-Szene) zu sprechen. Dazu sei auf Krömer und ” Sen (2006) S.175 ff verwiesen. Die Motive für das Tauschen sind sehr unterschiedlich. Sie reichen von wirtschaftlichen über ideologische bis zu sozialen Motiven. Zu den wirtschaftlichen Motiven zählt u.a. die Theorie des Homo oeconomicus, d.h. das Handeln zum größtmöglichen Nutzen. Dies unterstreicht auch eine Studie der Universität Zürich aus dem Jahr 2004, in der unter anderem die Gründe, warum keine kommerziellen Angebote genutzt werden, untersucht wurden (siehe Abbildung 2.2). Abbildung 2.2: Gründe gegen eine Nutzung kommerzieller Angebote (Vgl. Bamert u. a. 2004, S.5) Ein Beispiel für ideologische Gründe ist die Meinung: Freie Information für alle“. Zu den ” sozialen Motiven zählt u.a. sozialer Druck, der beispielsweise durch Freunde und Bekannte ausgeübt wird, die etwas kopiert haben wollen. Weitere Motive sind u.a. ein Sammeltrieb oder einfach Gewohnheit. Diese Motive können aber nicht zu 100% auf Internet-Tauschbörsen übertragen werden. Hier greifen weitere Motive, wie mangelndes Unrechtsbewußtsein. Zudem vermuten die Filesharer kein Risiko und fühlen sich anonym und unbeobachtet. Diesen Tatbestand belegen 8 2 Grundlagen und Analyse mehrere Studien. Unter anderem geht aus der Studie Digitale Mentalität“ der Universi” tät Witten/Herdecke herbor, dass es ein verbreitetes Bewusstsein für die Tatsache, dass ” Raubkopieren eine Straftat ist, die wirtschaftlichen Schaden verursacht [gibt]“. Weiter heißt es, dass dieses Bewusstsein [. . . ] jedoch meist nur geringen Einfluss auf das tatsächliche ” Raubkopierverhalten [hat]. Im Falle der Urheberrechtsverletzung, die durch digitale Vervielfältigung begangen wird, bleibt ein intuitives Geständnis für das damit verbundene Unrecht aus, weil das Tatbestandsmerkmal der Wegnahme fehlt, das unseren historisch gewachsenen Vorstellungen von Diebstahl zu Grunde liegt“.8 Markus Giesler zeigt zudem in seiner Studie Rethinking Consumer Risk“, dass das Risiko, ” einer Straftat in Form eines Urheberrechtsvergehens überführt zu werden, gegen Null tendiert. Dies führt er in seiner Studie auf das Prinzip der Kollektivierung von Risiko zurück. Das bedeutet: Je größer die Zahl der Nutzer in einer Tauschgemeinschaft ist, desto geringer ist das Risiko für den Einzelnen.9 2.1.3 Rechtliche Aspekte Um eine Analyse der rechtlichen Situation durchführen zu können, müssen zunächst einmal die rechtlichen Grundlagen erläutert werden. Das in Deutschland wichtigste Gesetz in diesem Zusammenhang ist das Gesetz über Urheberrecht und verwandte Schutzrechte (UrhG) . Der erste Paragraph dieses Gesetzes lautet: Die Urheber von Werken der Literatur, Wissenschaft ” und Kunst genießen für ihre Werke Schutz [...].“10 Durch dieses Gesetz sind u.a. auch alle digitalen Medien geschützt.11 Grundgedanke des Urhebergesetzes ist die Ermöglichung eines wirtschaftlichen Ertrags für den Urheber aus seiner geistigen Leistung12 . Das Gesetz soll den Urhebern die rechtliche Grundlage dafür geben, Art und Umfang der Nutzung ihrer Werke zu kontrollieren. Tauschbörsen werden vermehrt zum Tausch von urheberrechtlich geschützten Medien genutzt. Tauschbörsennutzer verstoßen daher häufig gegen das Urhebergesetz. So bedeutet eine Veröffentlichung eines urheberrechtlich geschützen Mediums in einer Tauschbörse für den Anbieter einen Verstoß gegen §15 (2) und §19 des UrhG. In diesen Paragraphen wird das Recht der öffentlichen Zugänglichmachung beschrieben. 13 8 (Vgl. (Vgl. 10 (Vgl. 11 (Vgl. 12 (Vgl. 13 (Vgl. 9 für Strategieentwicklung in Kooperation mit der Universität Witten/Herdecke 2004, S.4) Giesler 2004, S.35) GesetzUeberUrheberrechtUnd, §1) GesetzUeberUrheberrechtUnd, §2) Krömer und Sen 2006, S.190) GesetzUeberUrheberrechtUnd, §15(2) u. §19) 2.1 Piraterie 9 Lädt dagegen der Tauschbörsennutzer urheberrechtlich geschützes Material aus einer Tauschbörse herunter, so verstößt der Nutzer gegen §16 des UrhG. Dieser Paragraph billigt dem Urheber Rechte zu, ob und wie sein Werk veröffentlicht, vervielfältigt und verbreitet werden darf.14 Das Urheberrecht hat allerdings auch viele Ausnahmen, um die Informationsfreiheit und das Entstehen von neuen Werken nicht zu gefährden. Unter anderem erlaubt der §53 Nutzern Filme und Musikstücke für den privaten Gebrauch zu kopieren. Zudem ist eine Weitergabe von Kopien im Kreise der Familie und Freunde legal, an Arbeitskollegen und Nachbarn allerdings nicht. Des Weiteren ist das Kopieren nur in geringen Stückzahlen erlaubt.15 Die Gesetzesänderung des UrhG zum 13.09.200316 brachte zwei wichtige Einschränkungen für die Privatkopie. Grund für die Gesetzesänderung war eine EU-Richtlinie von 200117 . Nach der Gesetzesänderung sind Privatkopien von offensichtlich rechtswidrig hergestellten ” Vorlagen“ illegal.18 Zudem ist eine Privatkopie nur erlaubt, wenn hierfür kein Kopierschutz umgangen werden muss.19 Die Gesetzesänderung von 2003 setzte allerdings nur diejenigen Teile der EU-Richtlinie um, die zwingend nötig waren. Des Weiteren ist die Regelung der Privatkopie seit der Novellierung sehr missverständlich. Wie bereits erwähnt, ist die Vervielfältigung zum privaten Gebrauch unter Verwendung einer offensichtlich rechtswidrig hergestellten Vorlage explizit verboten. Die meisten in Tauschbörsen verfügbaren Vorlagen sind allerdings keine rechtswidrig hergestellten, sondern nur“ unerlaubt zugänglich gemachten Vorlagen. ” Daher herrscht seitdem eine rege Diskussion über weitere Anpassungen, den sogenannten zweiten Korb. Doch gehen auch hier die Meinungen stark auseinander. So befürworten einige, vor allem die Vertreter der Musik- und Filmindustrie, die Abschaffung der Privatkopie. Dadurch befürchten allerdings viele eine Kriminalisierung der Tauschbörsen, was wiederum einen weiteren technologischen Fortschritt verhindert könnte. Weitere Diskussionspunkte des zweiten Korbes sind eine sogenannte Kulturflatrate“ und eine sogenannte Bagatellklausel“. Unter der ” ” Kulturflatrate versteht man eine Pauschalabgabe, wodurch aber Downloads aus jeglichen Quellen legalisiert werden. Die Bagatellklausel sieht eine Straffreiheit bei rechtswidrigem 14 (Vgl. GesetzUeberUrheberrechtUnd, §16) (Vgl. iRights.info 04.02.2005) 16 (GesetzUeberUrheberrechtUnd, Vgl.) 17 (Vgl. Richtlinie2001/29/EGDesEuropaeischen:22.05.2001 22.05.2001) 18 (Vgl. GesetzUeberUrheberrechtUnd, §53 Abs. 1) 19 (Vgl. GesetzUeberUrheberrechtUnd, §95a) 15 10 2 Grundlagen und Analyse Kopieren in geringer Stückzahl und ausschließlich zum privaten Gebrauch vor. Dies würde vor allem Polizei und Staatsanwaltschaften entlasten. 2.1.4 Maßnahmen gegen Schwarzkopierer Schwarzkopieren ist nicht nur eine Ordnungswidrigkeit, wie etwa ein Parkvergehen, sondern stellt eine Straftat dar. So drohen Schwarzkopierern neben Geldstrafen auch Freiheitsstrafen. Zusätzlich zur strafrechtlichen Verfolgung von Schwarzkopierern können diese auch noch zivilrechtlich belangt werden. Hier drohen dann zudem hohe Schadensersatzforderungen. In der Praxis wird allerdings nur ein Bruchteil der Vergehen verfolgt. Polizei und Staatsanwaltschaft haben selten Interesse und Zeit, kleinen Fischen“ das Handwerk zu legen. Darauf ” weisen auch die Befürworter der Bagatellklausel“ hin. ” Gefahr droht diesen kleinen Fischen“ allerdings von Seiten der Industrie und den Urhe” bern. Hier haben sich zahlreiche Industrieverbände gebildet, um gemeinsam gegen Verstöße zivilrechtlich vorzugehen. So verfolgt die Business Software Alliance (BSA) als eine ihrer Hauptaufgaben Unternehmen, die nicht korrekt lizensierte Software einsetzen. Hinter der BSA stehen Unternehmen wie Microsoft, Apple und IBM.20 Für die Musikbranche sind als wichtigste Verbände der Verband der US-Musikindustrie Recording Industry Association of America (RIAA) sowie der Weltverband der Phonoindustrie International Federation of the Phonographic Industry (IFPI) genannt. Für die deutsche Filmbranche und Unterhaltsungsindustrie tritt zusätzlich häufig die Gesellschaft zur Verfolgung von Urheberrechtsverletzungen e.V. (GVU) in Aktion. Anfangs beschränkte sich die Pirateriebekämpfung auf die großen Fische“, die Release” Groups. Dann ging man dazu über, auch gegen Tauschbörsen vorzugehen. 2002 veröffentlichte die RIAA erste Pläne, gegen Nutzer von Tauschbörsen vorzugehen.21 Um ein Exempel zu statuieren, wurden 261 Tauschbörsennutzer verklagt.22 Allerdings mussten mehrere Klagen unter dem Druck der Öffentlichkeit fallen gelassen werden und der Großteil der restlichen Klagen wurde außergerichtlich nach Schadensersatzzahlungen beigelegt.23 Unter anderem weisen aber Messungen der britischen Firma CacheLogic darauf hin, dass sich keinerlei Erfolge dieser Maßnahmen einstellen. Aktuelle Messungen weisen auf eine anhaltend 20 (Vgl. (Vgl. 22 (Vgl. 23 (Vgl. 21 BSA 2000) Schotzger 03.07.2002) Wilkens 08.09.2003) IFPI) 2.1 Piraterie 11 hohe Nutzung von P2P-Systemen hin.24 2.1.5 Ökonomische Folgen Eine Studie von PriceWaterhouseCoopers25 weist für 2004 zwar einen Rückgang des Wertes der illegal getauschten Musik auf, allerdings ist dieser mit 820 Millionen Euro immer noch immens. 2003 betrug nach dieser Studie der Wert sogar 1,1 Milliarden Euro. Zudem besagt die Studie, dass 2004 der Anteil der illegal getauschten Musik an den Gesamtausgaben für traditionelle Tonträger 42% betrug. Abbildung 2.3 zeigt die Verteilung der Umsatzverluste auf Teilverluste durch Tausch im Internet, durch Schulhoftausch und durch traditionellen Tausch. Dabei kann festgestellt werden, dass der Internettausch immer noch mit Abstand den größten Posten stellt. Abbildung 2.3: Umsatzverluste durch Piraterie (Vgl. Müller u. a. Oktober 2005, S.37) Eine der wichtigsten Quellen für Gewinnausfälle bzw. -verluste durch Schwarzkopierer ist die Piracy Study der BSA26 . Allerdings ist bei diesen Quellen immer auch eine genaue Analyse der Datengewinnung durchzuführen, um eine objektive Sicht zu erhalten. Um den Schaden 24 (Vgl. CacheLogic 2005) (Vgl. Müller u. a. Oktober 2005) 26 (Vgl. BSA 2005) 25 12 2 Grundlagen und Analyse zu berechnen, wurden beispielsweise bei der Piracy Study von einem Marktforschungsinstitut zuerst aufwendige Marktforschungen durchgeführt. Dabei wurde ermittelt, welche Software für einen durchschnittlichen Computer benötigt wird. Diese Daten wurden dann mit den Verkaufszahlen verglichen und so der Gesamtschaden berechnet. Laut IFPI stehen derzeit rund 775 Millionen Musikstücke in Tauschbörsen illegal zum Download bereit.27 Zudem zeigte eine Studie von 2005 über einen Zeitraum von 5 Monaten, dass 94% der Hollywood-Produktionen vor oder kurz nach dem Kinostart verfügbar waren.28 Ähnliche Studien wie zur Musikindustrie existieren auch für Film und Software29 . Eine Studie der Universität Zürich von Dezember 2004 belegt zudem, dass Tauschbörsen ungebrochen die beliebteste Quelle für Musik aus dem Internet sind (vgl. Abbildung 2.4 ).30 Abbildung 2.4: Nutzung verschiedener Kanäle für den Musik-Download im Internet (Vgl. Bamert u. a. 2004, S.4) Die Organisation for Economics Co-operation and Development (OECD) stellte in ihrer Studie Digital Broadband Content: Music“ zwei unterschiedliche Hypothesen für die ökono” mische Relevanz auf.31 Die erste Hypothese lautet, dass die heruntergeladenen Musikstücke von den Tauschbörsennutzern als vollwertiger Ersatz genutzt werden und anschließend nicht mehr gekauft werden. Diese Hypothese bestätigt die Meinung der Musikindustrie. Die zweite 27 (Vgl. (Vgl. 29 (Vgl. 30 (Vgl. 31 (Vgl. 28 IFPI) Krempl 12.07.2005) Deutschland 2006) Bamert u. a. 2004) OECD 13.12.2005, S.77) 2.1 Piraterie 13 Hypothese besagt, dass die heruntergeladene Musik nur zum Probehören genutzt wird und somit der Absatz durch die Tauschbörsen gefördert wird. Diese These wird durch mehrere andere Studien gestützt.32 Die Musikindustrie kritisierte diese Studien33 und gab als Antwort wiederum eigene Studien in Auftrag34 . Zusammenfassend kann dies wie folgt gedeutet werden: Die meisten Studien kommen zum Ergebnis, dass Internet-Tauschbörsen sowohl positive wie auch negative Einflüsse auf den Umsatz der Tonträger haben.35 2.1.6 Existierende Lösungsansätze zur Pirateriebekämpfung Es gibt verschiedene Ansätze zur Pirateriebekämpfung. Jeder dieser Ansätze greift einen anderen Punkt auf. Ein Ansatzpunkt ist das Vorgehen gegen die Tauschnetzwerke selbst. Hier muss zwischen dem Vorgehen gegen Netz-Betreiber und Netz-Entwickler differenziert werden. Ein weiterer Ansatzpunkt ist das Vorgehen gegen die Internetzugangsanbieter (engl. Internet Service Provider (ISP)) und gegen die Tauschbörsennutzer36 . Wie bereits im Artikel 2.1.3 beschrieben, muss hier zwischen Up- und Downloadern unterschieden werden. Zuletzt ist der Kopierschutz nicht zu vergessen. Der Prozess gegen Napster war der Beginn immer neuer Prozesse gegen Anbieter von Tauschbörsen-Software37 . Mehr über Napster folgt im Abschnitt 2.4.1.1. Abschluss einer ganzen Serie von Prozessen bildet der zur Zeit noch laufende Prozess gegen den Tauschbörsen-Anbieter Limewire. Andere Tauschbörsen-Anbieter gingen in letzter Zeit dazu über, außergerichtliche Vergleiche mit den Rechtsvertretern zu schließen, um einem Gerichtsprozess aus dem Weg zu gehen. So zahlte im September 2006 der inzwischen aufgelöste eDonkey-Betreiber MetaMachine 30 Millionen US-Dollar an die RIAA38 . Zuvor hatte schon der Anbieter der Software Kazaa nach einem langen Rechtsstreit einer außergerichtlichen Einigung zugestimmt. Gleich zweifach sind die Internet-Zugangsanbieter von der Pirateriebekämpfung betroffen. Zum einen forderte die RIAA 2003 erstmals die Anbieter auf, technische Vorkehrungen zu 32 (Vgl. (Vgl. 34 (Vgl. 35 (Vgl. 36 (Vgl. 37 (Vgl. 38 (Vgl. 33 Streit 19.06.2000)(Vgl. Wilkens 05.05.2002) Wilkens 10.05.2002) Wilkens 22.01.2003) OECD 13.12.2005, S.79) OECD 13.12.2005, S.78) Röttgers 2003, S.23) Jurran 13.09.2006) 14 2 Grundlagen und Analyse treffen, Filesharing zu unterbinden39 . Diese Forderungen wurden immer wieder wiederholt. Zuletzt durch den Branchenverband IFPI auf der Messe Popkomm40 . Zum anderen sind die Zugangsanbieter durch Forderungen seitens der Urheberrechtsvertreter zur Ermittlung von Kundendaten durch eine IP-Adresse betroffen. In Deutschland ist dies aber rechtlich umstritten. So hat ein Urheber zur Zeit keinen Auskunftsanspruch. Nur die Strafverfolgungsbehörden verfügen über diesen Anspruch nach Strafprozeßordnung (StPO) §100g. Daher wählen die Rechteinhaber derzeit den Umweg über ein Strafverfahren. Wesentlich problematischer ist dabei noch, dass Zugangsanbieter nach dem Telekommunikationsgesetz (TKG) §96 verpflichtet sind, nach Beenden einer Verbindung alle Daten zu löschen, es sei denn, sie seien aus abrechungstechnischen Gründen zwingend erforderlich. Allerdings erfordert eine am 21. Februar 2006 durch den Rat der Europäischen Union verabschiedete Richtlinie über die Vorratsdatenspeicherung eine Anpassung des Gesetzes bis spätestens zum März 200941 . Der Richtlinie nach müssen bestimte Daten – insbesondere Verkehrsdaten und Standortdaten, die bei der Bereitstellung und Nutzung öffentlicher elektronischer Kommunikationsdienste anfallen von den Diensteanbietern auf Vorrat für mindestens sechs Monate gespeichert werden. Ein weiterer Versuch, die Piraterie einzuschränken, besteht darin, den Austausch von urheberrechtlich geschützem Material uninteressant zu machen. Dies kann u.a durch die Verbreitung manipulierter Musikstücke in den jeweiligen Tauschbörsen und den Einsatz von manipulierten Servern geschehen42 . Einer der aktuellsten Ansätze zur Pirateriebekämpfung stammt von der Schweizer Firma Logistep. Diese entwickelte eine Software, die automatisch nach unerlaubten DownloadAngeboten in Tauschbörsen sucht. Jede Rechtsverletzung wird automatisch über eine Anwaltskanzlei zur Anzeige gebracht. Gleichzeitig wird eine Email an den entsprechenden Service-Provider abgesetzt mit der Aufforderung, die entsprechenden IP-Adressen und die zugehörigen Kundendaten zu sichern.43 Der Kopierschutz ist auch zu den Maßnahmen der Pirateriebekämpfung zu zählen. Waren früher bei analogen Medien eine Art natürlicher Kopierschutz durch die Qualitätsverluste beim Kopieren gegeben, ist es heute dank digitaler Technik möglich, grenzenlos Kopien in fortdauernd gleichbleibender Qualität anzufertigen. Daher existieren heute mehrere verschiedene Kopierschutzverfahren. 39 (Hansen 24.01.2003, Vgl.) (Vgl. Krempl 20.09.2006) 41 (Vgl. Richtlinie2006/24/EGDesEuropaeischen:15.03.2006 15.03.2006) 42 (Vgl. Röttgers 2003, S.67) 43 (Vgl. Bleich 26.01.2006) 40 2.2 Digitale Wasserzeichen 15 Eine Möglichkeit greift auf gezielte Abweichungen vom Standard im Speichermedium (CD, DVD,. . . ) zurück. Die meisten Kopierprogramme für CDs gleichen diese Abweichungen als Beschädigungen aus. Der Kopierschutz bei Programmen überprüft eben diese Abweichungen. Fehlen diese, wird das Programm nicht ausgeführt. Bei Musik-CDs basieren die Abweichungen auf Fehlern, die von CD-Playern ignoriert werden aber in CD-Laufwerken in Computern zu Fehlern führen, so dass diese dort nicht gelesen werden können. Allerdings gibt es inzwischen zahlreiche Möglichkeiten diesen Kopierschutz zu überwinden, z.B. Brennprogramme, die jede Abweichung mitkopieren, oder neue CD-Laufwerke, die diese CDs auch lesen können. Moderne Kopierschutzverfahren setzen auf Verschlüsselung der Inhalte. Dadurch entsteht ein entsprechender Abspielschutz. Mit diesem sogenannten Digital Rights Management (DRM) lässt sich nun über spezielle Abspiel-Hard- und Software kontrollieren, was der Nutzer mit dem Medium machen darf. Allerdings schränkt dieses System die Nutzung stark ein. Zudem wirkt eine zu starke Restriktion wohl eher kundenfeindlich und hat somit auf dem freien Markt kaum eine Chance. So verwendet der zur Zeit mit Abstand erfolgreichste kommerzielle Download-Anbieter Apple in einem iTunes Music Store nur ein nominelles DRM. Richard Stallmann sagt hierzu in einem Interview44 , dass statt einem Digital Rights Management“ lediglich ein Digital ” ” Inconvenience Management“ zum Einsatz kommt, da iTunes es erlaubt, erworbene Musikstücke auf eine Audio-CD zu brennen. Diese können von dieser CD aus wiederum problemlos in ein digitales Format umgewandelt werden. Beim zur Zeit zweitgrößten Download-Dienst, eMusic.com, kommt sogar gar kein DRM zum Einsatz. Auf diesen Grundlagen und Erkenntnissen aufbauend wird im nächsten Abschnitt die Technik der digitalen Wasserzeichen und ihre möglichen Einsatzgebiete zur Pirateriebekämpfung beschrieben. 2.2 Digitale Wasserzeichen Digitale Medien haben, wie bereits mehrfach erwähnt, in den letzten Jahren stark an Bedeutung gewonnen. Allerdings kann für diese die Authentizität der Daten, um die Identität des Besitzers oder Senders zu garantieren, nicht gewährleistet werden. Außerdem ist auch der Nachweis der Integrität, d.h. Unversehrtheit und Unverfälschtheit, um Manipulationen zu erkennen, nicht gewährleistet.45 44 45 (Vgl. p2pnet 06.02.2006) (Vgl. Dittmann 2000, S.1) 16 2 Grundlagen und Analyse Digitale Wasserzeichenverfahren bieten Lösungsmöglichkeiten für die oben genannten Probleme. Das digitale Wasserzeichen wird ähnlich wie das klassische Wasserzeichen (z.B. das Geldnotenwasserzeichen) in ein Trägermedium eingebettet. Im Unterschied zum klassischen kann das digitale Wasserzeichenverfahren auf jeder Art von digitalen Mediendateien verwendet werden und nicht nur auf Papier. Digitale Wasserzeichen erlauben es, Authentizität oder Integrität nachzuweisen, indem Informationen direkt in das Datenmaterial eingefügt werden. Grundsätzlich kann man zwischen zwei Arten von Wasserzeichen unterscheiden: • Wahrnehmbare digitale Wasserzeichen • Nicht wahrnehmbare digitale Wasserzeichen Wahrnehmbare digitale Wasserzeichen sind wie das klassische Wasserzeichen sichtbar bzw. hörbar. Dies könnte z.B. ein Firmenlogo sein. Die durch nicht wahrnehmbare Wasserzeichen eingebettete Informationen sind im Allgemeinen für das menschliche Auge nicht sichtbar, für das menschliche Ohr nicht hörbar und so mit dem Datenmaterial verwoben, dass ein einfaches Entfernen unmöglich ist, ohne das Datenmaterial zu beschädigen.46 Für diese Arbeit sind ausschließlich die nicht wahrnehmbaren Wasserzeichen relevant. Die wahrnehmbaren Wasserzeichen disqualifizieren sich für den Einsatz durch ihre offensichtliche Existenz. Hierbei ist es nicht ausschlaggebend, dass die Existenz bekannt ist. Dies wird sogar teilweise auch bei nicht wahrnehmbaren Wasserzeichen gewünscht zwecks Abschreckung der Benutzer. Aufbauend auf denen in Abschnitt 2.1.2 erläuterten Erkenntnissen, dass sich Tauschbörsen-Benutzer zumeist unbeobachtet und anonym fühlen, spricht man auch gerne von einem psychologischen“ Kopierschutz. Ein maßgeblicher Grund gegen eine Verwendung ” wahrnehmbarer Wasserzeichen und für eine Verwendung nicht wahrnehmbarer Wasserzeichen ist, dass die Nutzbarkeit der Mediendateien durch die Sichtbarkeit bzw. Hörbarkeit des Wasserzeichens stark eingeschränkt wird. Die Abteilung Mediensicherheit in der IT (MERIT) des Fraunhofer-Institut für Integrierte Publikations- und Informationssysteme (IPSI) definiert auf ihrer Homepage47 nicht wahrnehmbare Wasserzeichen wie folgt. Definition 1 Digital Watermarking ist ein Verfahren, durch nicht-wahrnehmbare, gezielte Veränderungen an Multimediadaten, beliebige Informationen in digitale Medien (wie zum 46 47 (Vgl. Dittmann 2000, S.2) (Vgl. MERIT, http://www.ipsi.fraunhofer.de/merit/mediensicherheit/was ist watermarking.de.html) 2.2 Digitale Wasserzeichen 17 Beispiel Audio, Video, Bilder, etc.) einzubetten. Dabei wird die Sicherheit und Geheimhaltung der eingebetteten Information durch einen geheimen Schlüssel garantiert. Ohne den geheimen Schlüssel lässt sich das Wasserzeichen nicht auslesen oder verändern. Wasserzeichen können so gestaltet werden, dass sie robust gegenüber Veränderungen des Trägermediums sind. Dies bedeutet, dass die eingebettete Information auch nach der Veränderung des markierten Mediums noch vorhanden ist. Der Wasserzeichenalgorithmus besteht aus zwei Prozessen: dem Einbettungsprozess (Watermark Embedding) und dem Abfrage- bzw. Ausleseprozess (Watermark Retrieval) (vgl. Abbildung 2.5). Abbildung 2.5: Einbetten und Auslesen eines digitalen Wasserzeichens Der Einbettungsprozess fügt die Wasserzeicheninformation (Watermark Message) in das Datenmaterial (Cover) ein und es entsteht das markierte Trägersignal. Der geheime Schlüssel wird dabei benutzt, damit das Wasserzeichen nicht von Angreifern manipuliert oder gelöscht werden kann. Der Abfrageprozess funktioniert umgekehrt. Er extrahiert mit dem geheimen Schlüssel aus dem markierten Material die Wasserzeicheninformation. Da das Wasserzeichen nicht entfernbar sein soll, kann man mit dem Abfrageprozess nur die Wasserzeicheninformation auslesen, aber nicht das Original wiederherstellen. In der Praxis werden oft zusätzliche Parameter verwendet, z.B. Wasserzeichenstärke, Initialisierungswerte, . . . 48 48 (Vgl. Dittmann 2000, S.19 f) 18 2 Grundlagen und Analyse 2.2.1 Eigenschaften eines Wasserzeichen-Verfahrens Digitale Wasserzeichen besitzen eine Vielzahl von verschiedenen Eigenschaften. Hier werden nur die wichtigsten Eigenschaften kurz aufgeführt. Weitere Eigenschaften und ausführlichere Informationen werden in (Dittmann 2000, S.25 ff) und in(Dittmann u. a. 2005/12//, S.457 f) aufgeführt. • Robustheit: Unter einem robusten Wasserzeichen versteht man ein Wasserzeichen, welches gegenüber Transformationen des Trägermediums widerstandsfähig ist. Das Gegenstück zum robusten Wasserzeichen ist das fragile Wasserzeichen, welches nach jeglicher Transformation des Trägermediums zerstört ist. • Nicht-Wahrnehmbarkeit: Diese Eigenschaft beschreibt, inwiefern ein eingebettetes Wasserzeichen akustisch bzw. optisch wahrgenommen werden kann. • Security: Ein Wasserzeichen wird als sicher (secure) eingestuft, wenn die eingebettete Information durch einen Angreifer, dem das Verfahren bekannt ist und dem mindestens ein markiertes Datenmaterial vorliegt, nicht zerstört, verfälscht oder aufgespürt werden kann. • Komplexität: Diese Eigenschaft beschreibt den Aufwand, der erbracht werden muss, um die Wasserzeichen-Information einzubringen und wieder auszulesen. • Kapazität: Dieser Parameter misst, welche Datenmenge in das Trägermedium eingebracht werden kann. 2.2.2 Anwendungsgebiete digitaler Wasserzeichen Für Wasserzeichen gibt es eine Vielzahl von Anwendungsgebieten. Die wichtigsten sind im Folgenden aufgeführt 49 . • Verfahren zur Urheberidentifizierung (Authentifizierung): Robust Authentication Watermark • Verfahren zur Kundenidentifizierung (Authentifizierung): Fingerprint Watermark • Verfahren zur Annotation des Datenmaterials: Caption Watermark, Annotation Watermark • Verfahren zur Durchsetzung des Kopierschutzes oder Übertragungskontrolle: Copy Control Watermark, Broadcast Watermark 49 (Vgl. Dittmann 2000, S.30 f) 2.2 Digitale Wasserzeichen 19 • Verfahren zum Nachweis der Unversehrtheit (Integritätsnachweis): Integrity Watermark, Verification Watermark 2.2.3 AlgorithmManager50 Der AlgorithmManager ist eine generische Lösung zum Zugriff auf Wasserzeichenfunktionalitäten. Er wurde in der Abteilung MERIT des Fraunhofer IPSI entwickelt. Trotz der Implementierung in JAVA ist der AlgorithmManager unabhängig von allen WasserzeichenAlgorithmus spezifischen Eigenschaften, wie Entwicklungssprache, Medien-Typ oder den benötigten Parametern. Dies wird durch drei wesentliche Punkte erreicht: 1. Die Entwickler eines Wasserzeichenalgorithmus spezifizieren den Gebrauch ihres Algorithmus in einer XML-Datei. Durch diese wird eine Interpretation des Algorithmus durch den AlgorithmManager ermöglicht. 2. Das Wasserzeichenverfahren selber ist hinter Interfaces versteckt. Der AlgorithmManager stellt wiederum Instanzen dieser Interfaces nach Definition aus der XML-Datei zur Verfügung. 3. Die Wasserzeichennachricht, die jeder Algorithmus nutzen muss, ist flexibel und kann aus Bits, Bytes, Characters oder als Zeichenkette (String) realisiert werden. Jeder Algorithmus besteht aus drei Objekten: • algoDescription.xml Wie bereits erwähnt, stehen in dieser Datei alle über einen Algorithmus benötigten Informationen. Der AlgorithmManager sucht diese Datei und erstellt daraus die interne Präsentation des Wasserzeichenalgorithmus. • Embedder Der Embedder stellt die Funktionen zum Einbetten einer Wasserzeicheninformation in ein Medium zur Verfügung. • Detektor Der Detektor liest die eingebetteten Informationen aus einem Medium aus. Der AlgorithmManager bietet einen einfachen Umgang mit den verschiedensten Implementierungsformen von Wasserzeichen-Algorithmen. 50 Dieser Abschnitt beruht auf der Präsentation von Patrick Wolf (Vgl. Wolf 2006) 20 2 Grundlagen und Analyse Abbildung 2.6: algoDescription.xml (Vgl. Wolf 2006, Folie 4) 2.3 Verteilte Systeme Es existieren verschiedene Definitionen für ein verteiltes System. Leslie Lamport definiert ein verteiltes System sehr allgemein: Definition 2 A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable. Andrew Tanenbaum definiert ein verteiltes System wie folgt: Definition 3 Ein verteiltes System ist eine Menge voneinander unabhängiger Computer, ” die dem Benutzer wie ein einzelnes kohärentes System erscheinen“51 . George Coulouris definiert ein verteiltes System wie folgt: Definition 4 Als verteiltes System wird ein System bezeichnet, bei dem sich die Hardwareund Softwarekomponenten auf vernetzten Rechnern befinden und nur über den Austausch von Nachrichten kommunizieren und ihre Aktionen koordinieren52 . 51 52 (Vgl. Tanenbaum u. a. 2003, S.18) (Vgl. Coulouris u. a. 2005) 2.3 Verteilte Systeme 21 Zusammenfassend besagen die Definitionen zwei Dinge. Zum einen sind die verwendeten Computer autonom und miteinander vernetzt, zum anderen verbirgt ein verteiltes System die Verwendung mehrerer Computer. Diese Eigenschaft wird als Transparenz bezeichnet. Durch die Definition von Leslie Lamport wird deutlich, dass Fehlertoleranz von verteilten Systemen eine sehr wichtige Eigenschaft ist, die noch heute in vielen Systemen fehlt. Die verschiedenen Definitionen zeigen allerdings auch, dass es verschiedene Auffassungen über ein verteiltes System gibt. Um ein besseres Bild über ein verteiltes System zu bekommen, werden im Folgenden die wichtigsten Eigenschaften eines guten verteilten Systems aufgezählt: • Eine der wichtigsten Eigenschaften ist, wie bereits erwähnt, die Eigenschaft der Transparenz. Diese Eigenschaft kann noch feiner untergliedert werden53 : – Zugriffstransparenz : Diese verbirgt Unterschiede in der Datendarstellung und der Zugriffsart auf eine Ressource. – Positions-/Ortstransparenz : Die Ortstransparenz bezeichnet die Eigenschaft, dass der Ort der Ressource verborgen bleibt. – Migrationstransparenz : Unter dieser Art der Transparenz versteht man die Eigenschaft, dass eine Ressource verschoben werden kann. – Relokationstransparenz : Diese Eigenschaft ist eine verstärkte Eigenschaft der Migrationstransparenz: Eine Ressource kann verschoben werden, während sie genutzt wird. – Replikationstransparenz : Diese Eigenschaft verbirgt, dass eine Ressource repliziert ist. – Nebenläufigkeitstransparenz : Unter dieser Eigenschaft versteht man, dass eine Ressource zeitgleich von mehreren Benutzern genutzt werden kann. – Fehlertransparenz : Diese Eigenschaft verbirgt einen Systemausfall, d.h. einen Ausfall eines einzelnen Systems im großen Ganzen. – Persistenztransparenz : Unter Persistenztransparenz versteht man die Eigenschaft, dass verborgen bleibt, ob sich eine Ressource im Hauptspeicher oder auf der Festplatte befindet. • Eine weitere wichtige Eigenschaft ist eine gute Skalierbarkeit. Diese Eigenschaft resultiert direkt aus der Definition, dass verschiedene Computer verwendet werden. • Da die Wahrscheinlichkeit für Fehler und Ausfälle mit der Größe des verteilten Systems stark zunimmt, ist eine weitere wichtige Eigenschaft die Fehlertoleranz. 53 (Vgl. Tanenbaum u. a. 2003, S.21 ff) 22 2 Grundlagen und Analyse • Eine weiterere wünschenswerte Eigenschaft ist die Offenheit des Systems. Mit dieser Eigenschaft wird bestimmt, wie gut sich das System auf verschiedenen Wegen erweitern lässt. Verteilte Systeme werden oft mit Hilfe sogenannter Middleware organisiert. Darunter versteht man eine Realisierung als Softwareschicht, die zwischen dem Betriebssystem und der Ebene aus Benutzern und Anwendungen eingefügt wird (vgl. Abbildung 2.7). Ein Beispiel dafür ist die in Abschnitt 2.4.2 vorgestellte Peer-to-Peer-Plattform JXTA. Abbildung 2.7: Middleware (Vgl. Tanenbaum u. a. 2003, S.19) Der Entwurf und Betrieb eines verteilten Systems ist offensichlich komplexer als der eines zentralisierten Systems. Daher sollen im Folgenden die wichtigsten Motive für den Einsatz eines verteilten Systems erläutert werden. 1. Beschleunigung der Verarbeitung durch Parallelarbeit Einfachste Vorgehensweise nach dem Divide-and-Conquer-Prinzip: • Aufteilung der zu verarbeitenden Daten in Teilmengen • Verteilung der Arbeit an eine unabhängige Verarbeitungseinheit • Parallele Verarbeitung und anschließende Zusammensetzung der Ergebnisse 2. Ausfallsicherheit durch Redundanz ; redundante Datenspeicherung und/oder redundante Ausführung von Rechenoperationen, um Ausfälle abzufangen 2.4 Peer-to-Peer 23 2.4 Peer-to-Peer Wie schon das englische Wort Peer (engl. Peer: Ebenbürtiger, Gleichgestellter) vermuten lässt, versteht man unter einem Peer-to-Peer (P2P)-Netzwerk ein Computernetzwerk, in dem alle Teilnehmer nahezu gleichberechtigt sind und sowohl Dienste in Anspruch nehmen (Client) als auch Dienste zur Verfügung stellen (Server). Da bisher keine grundlegende formale Definition existiert bzw. die vorhandenen Definitionen sehr verschieden sind, wird Peer-to-Peer wie folgt definiert: Definition 5 Unter einem Peer-to-Peer-Netzwerk versteht man ein Kommunikationsnetzwerk zwischen Rechnern, in dem jeder Teilnehmer sowohl Client- als auch Server-Aufgaben durchführt. Eine Beschreibung eines Peer-to-Peer-Systems ist durch die folgenden Eigenschaften möglich54 : • Rollensymmetrie: Jeder Peer ist sowohl Server als auch Client ( Servent“) ” • Dezentralisierung – keine zentrale Instanz zur Steuerung oder Koordination – Information einer Gruppe sind keinem Peer vollständig bekannt, sondern über die Gruppe verteilt – Peer kennt zumeist nur seinen Nachbarn und nicht die ganze Gruppe • Selbstorganisation: Das globale Verhalten der Gruppe ergibt sich aus den lokalen Entscheidungen des Peers und der Interaktion zu ihr • Autonomie: Peers sind in ihren Entscheidungen und ihrem Verhalten autonom. • Zuverlässigkeit: Peers und Netzverbindungen sind nicht zuverlässig. Peers können ausfallen, Netzwerkverbindungen unterliegen Störungen und anderen Umwelteinflüssen. • Verfügbarkeit: In Peer-to-Peer-Netzen sind nicht alle Peers zu jeder Zeit verfügbar. Daher müssen entsprechende Vorkehrungen in Form von Replikationen getroffen werden. Das älteste Peer-to-Peer-Netz ist das ARPANET, ein Vorreiter des heutigen Internets. Peerto-Peer wurde in den letzten Jahren zunehmend populärer. Ausschlaggebend dafür war u.a. Napster (vgl. Abschnitt 2.4.1.1). 54 (Vgl. Hauswirth und Dustdar 09.11.2006) 24 2 Grundlagen und Analyse Bei Peer-to-Peer-Systemen handelt es sich um so genannte Overlay-Netze. Diese bauen auf einer konkreten Netzwerk-Topologie eines Basisnetzwerkes auf und legen über dieses ein übergeordnetes unabhängiges Netzwerk. Das Peer-to-Peer-System ist für Aufbau und Verwaltung eines solchen Overlay-Netzes verantwortlich. Wie im vorherigen Abschnitt über verteilte Systeme (Abschnitt 2.3) bereits erwähnt, sind zwei der Hauptforderungen an verteilte Systeme Skalierbarkeit und Fehlertoleranz. Diese werden in Peer-to-Peer-Systemen durch Aufbau des Netzes automatisch erfüllt: • Es ist für das Gesamtsystem unerheblich, ob ein Knoten ausfällt (Fehlertoleranz). • Sind alle Knoten des Systems ausgelastet, lässt sich die Menge der Knoten vergrößern, auf welche die Gesamtlast verteilt wird (Skalierbarkeit). Größter Nachteil der Peer-to-Peer-Netze ist die teilweise wesentlich höhere Komplexität. Zu den bekanntesten Anwendungen des Peer-to-Peer-Prinzips zählen Tauschbörsen, Instant Messager (IM) und Voice over IP. Da Tauschbörsen in dieser Arbeit eine herausragende Rolle spielen, werden diese im nächsten Unterabschnitt näher betrachtet. Zudem wird das Peer-to-Peer-Framework JXTA, welches als Basis der prototypischen Implementierung dient, vorgestellt. Im Anschluss erfolgt eine Klassifizierung der vorgestellten Technologien. 2.4.1 Tauschbörsen Definition 6 Internet-Tauschbörsen sind Plattformen zum Autausch von Dateien über das Internet. Sie kombinieren Suchalgorithmen für verteilte Systeme und eine dezentrale Speicherung von Daten55 und werden durch Peer-to-Peer-Netzwerke realisiert. Die Nutzung erfolgt durch Computerprogramme (sogenannte Clients), die auf jedem teilnehmenden Rechner installiert sind. Diese Clients implementieren Kommunikationsprotokolle und stellen Anwendern deren Funktionalitäten über eine Benutzerschnittstelle (engl. Graphical User Interface (GUI) ) zur Verfügung. Das Downloadangebot einer Tauschbörse besteht aus der Summe der von allen Teilnehmenern bereitgestellten Daten. Die Freigabe von Dateien für den Zugriff anderer Nutzer wird als File Sharing“ bezeichnet. File Sharing steht inzwischen synonym für den Dateiaustausch ” in Internet-Tauschnetzwerken. 55 (Vgl. Schoder und Fischbach 2002, S.6) 2.4 Peer-to-Peer 25 Grundsätzlich kann zwischen zwei Grundtypen von Peer-to-Peer-Netzen unterschieden werden (vgl. Abbildung 2.8). Man unterscheidet zwischen serverbasiertem und serverlosem Peerto-Peer-Netz. Beim serverbasierten Peer-to-Peer-Netz übernimmt ein übergeordneter Server die Koordinierung des Netzes. Die Verwaltung der Nutzer und der Dateien findet zentral statt. Lediglich der eigentliche Dateiaustausch findet direkt zwischen zwei Peers statt. Man spricht bei dieser Lösung auch von hybridem Peer-to-Peer, da es eine Zwischenlösung zwischen einer Client/Server-Architektur und einer vollständigen Peer-to-Peer-Lösung ist56 . Beim serverlosen Peer-to-Peer-Netz gibt es keine zentrale koordinierende Instanz. Abbildung 2.8: Serverbasiertes und serverloses Peer-to-Peer-Netz (Vgl. Schoder und Fischbach 2002, S.27) Des Weiteren können Peer-to-Peer-Netze unterschiedlich strukturiert sein. Sie können flach oder hierarchisch aufgebaut sein. Beim hierarchischen Aufbau haben einige Peers besondere Funktionen, z.B. Verwaltungsaufgaben in serverlosen Netzen. Diese ausgewählten Computer werden als Supernodes“ bezeichnet und dienen als Knotenpunkte. Diese Struktur kann unter ” anderem zu einer besseren Skalierbarkeit verhelfen. Eines der wichtigsten Merkmale der Tauschbörsen ist das verwendete Suchverfahren. Es kann hier zwischen drei gebräuchlichen Algorithmen unterschieden werden: 1. ein zentraler Suchindex auf einem Server 2. Jeder Peer verwaltet sein eigenes Dateiangebot. Suchanfragen müssen an jeden Teilnehmer geschickt werden (Broadcast). 3. Verteilter Suchindex 56 (Vgl. Schoder und Fischbach 2002, S.27) 26 2 Grundlagen und Analyse Tauschbörsen sind wohl die bekannteste Anwendung von Peer-to-Peer-Netzen. Daher werden Peer-to-Peer-Netze bzw. der Begriff Peer-to-Peer oft fälschlicherweise synonym mit den Begriffen Internettauschbörsen bzw. engl. Filesharing verwendet. Im Folgenden wird mit dem Tauschbörsen-Netz und der gleichnamigen Software Napster der erste Vertreter der Internet-Tauschbörsen vorgestellt. Im Anschluss werden die beiden zur Zeit in Deutschland populärsten Vertreter der Internet-Tauschbörsen, BitTorrent und eDonkey, kurz charakterisiert. Zudem erfolgt eine kurze Zusammenfassung über das KademliaProtokoll, welches zusätzlich zum eDonkey-Protokoll in der Software eMule (eMule ist die mit Abstand meistgenutzte Software für das eDonkey-Netz) zum Einsatz kommt und zusätzlich die Grundlage für eine Beta-Version einer neuen serverlosen BitTorrent-Version darstellt57 . 2.4.1.1 Napster Shawn Fanning brachte im Juni 1999 eine Beta-Version seines Tauschbörsen-Netzes und der gleichnamigen Tauschbörsen-Software Napster heraus. Er bezeichnete Napster anfangs nur als Chat mit Download-Funktion für MP3-Dateien“. ” Dabei bedient sich Napster eines simplen aber effektiven Grundprinzips: Jeder Nutzer stellt nach dem Starten der Software Dateien auf seiner Festplatte anderen Nutzern zur Verfügung. Im Gegenzug erhält er Zugriff auf die freigegebenen Dateien der momentan angemeldeten Nutzer. Der Server dient dabei nur zur Anmeldung und verwaltet zudem einen zentralen Index. Bei der Suche eines Nutzers nach einer bestimmten Datei wird der entsprechende Suchbegriff an den zentralen Server gesendet. Dieser durchsucht den Index und sendet dem suchenden Nutzer eine Liste mit allen Nutzern, die diese Datei zur Verfügung stellen. Anschließend kann der suchende Nutzer sich einen entsprechenden Tauschpartner aus den Resultaten aussuchen. Der eigentliche Tausch, also der Download der Datei, findet ohne Einfluss des Servers direkt zwischen den Clients statt. 1999 erkannte auch RIAA die zunehmende Gefahr“ durch Napster und startete eine erste ” Klage gegen Napster58 . Kurz darauf folgten Klagen von der Band Metallica“ und dem Rap” per Dr Dre“. Jetzt war erstmals die Rede vom Ausschluss urheberrechtsgeschützer Musik aus ” Napster. Napster verlor die Klagen und sperrte im Mai 2000 erstmals 335.435 Nutzer anhand von den Musikern vorgelegten Listen59 . Dies war allerdings mit einer einfachen Neuanlegung 57 (Vgl. BitTorrent.org, http://www.bittorrent.org/Draft DHT protocol.html) (Vgl. mbb 08.12.1999) 59 (Vgl. online 10.05.2000) 58 2.4 Peer-to-Peer 27 eines Benutzerkontos zu umgehen. Ende Juli 2000 erfolgte eine einstweilige Verfügung, die eine kurzfristige Einstellung des Dienstes zur Folge hatte. Napster erhob Einspruch gegen diese Verfügung und durfte daraufhin vorerst online bleiben. Die Gerichtsprozesse dämpften den Erfolg allerdings nicht und hatten vielmehr die Wirkung einer Marketingkampagne. Durch das wachsende Interesse der Medien an den Prozessen wurde Napster immer populärer. So hatten zu der Zeit etwa 20 Millionen Nutzer ein NapsterKonto. Ein Jahr zuvor waren es gerade mal 200.000. Im Berufungsprozess änderte Napster die Argumentationslinie. Sie stellten sich als Dienst dar, der nicht per se für Urherberrechtsverletzungen entworfen wurde, aber eben für diese benutzt wird und beriefen sich auf das Betamax-Urteil, in dem einst die Verbreitung von Videorekordern erfasst wurde. Der Prozess lief nun darauf hinaus, Lösungen zur Verhinderung der Verbreitung von urheberrechtsgeschützem Material zu finden und und diese Verbreitung zu blockieren60 . Im November 2000 verkündete Napster überraschend eine Kooperation mit der Bertelsmann eCommerce Group. Diese wollten zusammen eine kommerzielle Lösung entwickeln und dazu eine Art Abo-Modell aufbauen. Im Februar 2001 erfolgte das Urteil im Berufungsprozess. Zwar blieb danach der Betrieb erlaubt, allerdings musste das Tauschen von urheberrechtlich geschütztem Material unterbunden werden. Um das Urteil umzusetzen, wurde ein Filterverfahren auf den zentralen Index angewandt. Dazu erstellte die RIAA eine Liste mit 135.000 zu sperrenden Liedern. Im März 2001 bemängelte die vorsitzende Richterin des Berufungsgerichtes die unzureichenden Filtermechanismen. Napster überarbeitete daraufhin den Filtermechanismus und erzielte deutlich bessere Ergebnisse. Allerdings wurden dadurch auch sehr viele nicht durch das Verbot betroffene Lieder ausgefiltert. Im Juni 2001 erfolgte die endgültige Ablehnung des Berufungsverfahrens. Um die Filterwirkung zu erhöhen, wurde ein neuer Client entwickelt, wodurch jetzt auch die Filterung mittels digitaler Fingerabdrücke möglich wurde. Um die Wirksamkeit sicherzustellen und einen Umstieg auf die neue Software zu erzwingen, sperrte Napster die alten Clients kurzerhand aus. Dadurch sank die Nutzerzahl von 1,57 Millionen im Feb 2001 auf 320.000 im Juni. Viele Nutzer stiegen auf eines der zahlreichen alternativen Angebote um. Im August 2001 erfolgte eine vorübergehende“ Einstellung des Betriebs wegen angeblicher ” Filterprobleme. Daraufhin legte das Gericht fest, dass Napster erst wieder online gehen dürfe, wenn sichergestellt sei, dass kein illegales Lied durch den Filter komme. 60 (Vgl. Kossel 14.09.2000) 28 2 Grundlagen und Analyse Dadurch wurde der Untergang von Napster besiegelt. Vom kommerziellen Programm in Zusammenarbeit mit Bertelsmann hört man nur noch wenig. Auch Metallica“ und Dr Dre“ ” ” erkannten die Situation und einigten sich außergerichtlich. Abbildung 2.9: Aufbau des Napster-Netzwerkes (Vgl. Steinmetz u. a. 19.12.2002, S.5) 2.4.1.2 Bittorrent BitTorrent ist ein kollaboratives Filesharing-Protokoll, das besonders für die schnelle Verteilung großer Dateien geeignet ist. Technisch ist das Protokoll der OSI-Schicht 7, also der Anwendungsschicht, zuzuordnen und setzt daher auf das TCP/IP-Referenzmodell auf61 . BitTorrent besteht aus dem Tracker“ genannten Server-Programm, der Informationen zu ” einer oder mehreren Dateien über Torrents verwaltet, und einem Client, der vom Tracker erfährt, wer sonst noch die Datei herunterlädt und verteilt. In einer Torrent-Datei befinden sich die Adresse des Trackers sowie Dateiname, Größe und Prüfsummen der herunterzuladenden Datei. Sobald ein Client ein kleines Stück der Datei erhalten hat und die Prüfsumme verifiziert hat, meldet er dies dem Tracker und kann dieses Datei-Stück schon an andere Clients weitergeben. 2.4.1.3 eDonkey62 eDonkey2000 (ed2k) bezeichnet zum einen ein Internet-Filesharing-Netz und zum anderen den ersten Client für dieses Netz. In eDonkey2000 kommen sowohl Teile des Peer-to-PeerPrinzips als auch Teile des Client-Server-Prinzips zum Tragen. 61 62 (Vgl. Wikipedia, http://www.de.wikipedia.org/wiki/Bittorrent) (Vgl. Wikipedia, http://www.de.wikipedia.org/wiki/EDonkey) 2.4 Peer-to-Peer 29 Abbildung 2.10: BitTorrent-Netzwerk (BitTorrent.org, Vgl.) Zunächt war das Netz nur mit der gleichnamigen Software von MetaMachine nutzbar. 2002 entstand dann aber das Projekt eMule. Der Client eMule ist inzwischen mit Abstand der meist genutzte Client für des eDonkey2000-Netz. 2005 stellten die Entwickler der ursprünglichen Software, nach Drohungen mit Schadensersatzforderungen seitens der RIAA, die Weiterentwicklung vorübergehend ein. Im März 2006 wurde die Entwicklung fortgesetzt. Am 21.Februar 2006 erfolgte der schwerste Schlag gegen das edonkey2000-Netz. Bei einer groß angelegten Aktion wurde in Belgien der größte Server Razorback 2.0“ abgeschaltet63 . ” Am 12.09.2006 stellte MetaMachine den Vertrieb der eDonkey2000-Software endgültig ein64 und meldete am 13.09.2006, dass sie 30 Millionen US-Dollar an die Musikindustrie zahlen würden, um rechtlichen Auseinandersetzungen mit der RIAA aus dem Weg zu gehen65 . Allerdings fristete zu dieser Zeit die eDonkey2000-Software sowieso nur noch ein Nischendasein66 . Abbildung 2.11 zeigt den Aufbau des eDonkey-Netzwerks. Nutzen der Client-Server-Architktur: 63 (Vgl. (Vgl. 65 (Vgl. 66 (Vgl. 64 Zota 22.02.2006) Zota 12.09.2006) Jurran 13.09.2006) Zota 12.09.2006) 30 2 Grundlagen und Analyse Abbildung 2.11: eDonkey-Netzwerk (Vgl. Kulbak und Bickson January 20, 2005, S.5) • Der Client übermittelt Informationen über seine freigegebenen Dateien an einen der Server, der diese indiziert. • Zur Suche übermittelt ein Client Suchinformationen (Bsp. Dateiname, Typ, . . . ) an den Server. Der Server durchsucht seine Indizes und schickt entsprechenende Dateiquellen in Form von ed2k-Links zurück. ed2k-Links dienen zur einfachen Aufnahme eines Servers in die Serverliste oder einer Datei in die Downloadliste des Clients. Bsp. ed2k-Link: ed2k://|file|datei.txt|123|1234567890abcdef1234567890abcdef| • Der Client schickt regelmäßig Anfragen zum Server, welche Clients die Dateien, die er herunterladen möchte, freigegeben haben. Der Server schickt entsprechende Einträge zurück. eMule nutzt das Peer-to-Peer-Konzept auf ähnliche Weise wie bereits Napster. Nach Erhalt der Informationen vom Server in Form von ed2k-Link versucht der Client, sich zu den entsprechenden Clients direkt zu verbinden. In diesem Fall haben die Clients echte PeerFunktionalität und der Server spielt keine Rolle mehr. Zur Minimierung der Netzlast wurde in eMule neben dem eDonkey-Protokoll ein neues Netzwerk-Protokoll implementiert. Daher ist bei allen neueren Versionen von eMule auch das Kademlia-Protokoll (vgl. Abschnitt 2.4.1.4 S.31) verfügbar. 2.4 Peer-to-Peer 31 2.4.1.4 Kademlia Kademlia (Kad) gehört zu einer neuen Generation von Peer-to-Peer-Protokollen. Wie bereits erwähnt, gibt es verschiedene Herangehensweisen: • zentraler Suchindex auf Server (Bsp. Napster) • kein zentraler Indexierungsserver; Suchanfragen werden an einen Teil des Netzes geschickt. Peers, die die gesuchte Datei besitzen, melden dies an den suchenden Peer. Problem: nicht alle Peers werden durchsucht. (Bsp. Gnutella67 ) • Verwendung einer verteilten Hashtabelle (Distributed Hashtable (DHT)); diese Struktur ersetzt den zentralen Indexierungsserver. Durch die verteilte Hashtabelle werden allen verfügbaren Dateien mit einem Aufwand von O(log n) gefunden. (Bsp. Kademlia) Zur Funktionsweise von Kademlia: Es erfolgt eine eindeutige Identifizierung eines jeden Peers durch eine eindeutige Nummer, die sogenannte Node-ID. Vor dem Eintritt in das Kademlia-Netzwerk wird ein sogenannter Bootstrapping-Prozess durchgeführt. Dazu muss man wissen, dass man, um sich zum Kademlia-Netzwerk verbinden zu können, eigentlich schon erstmal selbst ein Teil des Kademlia-Netzwerkes sein muss. Um dies zu ermöglichen, verbindet man sich im Bootstrapping-Prozess über lediglich einen bekannten Client bzw. über dessen Kontakte. Nach und nach verbindet man sich so mit dem gesamten Kademlia-Netzwerk. Im Anschluss erfolgt die Berechung der verteilten Hashtabelle. Dazu wird für jede freigegebene Datei ein Hash-Wert berechnet. Der Datei-Hash und die Node-ID sind gleich lang (160 bit). Der Kademlia-Algorithmus sucht nun im Netz nach Knoten, deren ID die kleinste Distanz“ zum Datei-Hash aufweisen, und übermittelt ihm seine Daten. Eine bitweise ” exklusive-ODER-Verbindung - als Interger interpretiert - wird zum Abstand zwei IDs definiert (d.h. d(x, y) = x ⊗ y)). Bei der Suche nach einer Datei nutzt der Peer die gleiche Prozedur wie beim Einfügen einer Datei in die verteilte Hashtabelle. Da normalerweise ständig Peers ein- und austreten, werden die Informationen auf mehrere Peers verteilt und alle paar Stunden aktualisiert. 2.4.2 JXTA JXTA (engl. juxtapose = nebeneinander stellen) ist ein von Sun Microsystems ins Leben gerufenes Projekt. Es wurde im April 2001 unter der Leitung von Bill Joy und Mi67 Gnutella ist ein vollständig dezentrales Netzwerk (Vgl. Wikipedia, http://de.wikipedia.org/wiki/Gnutella). 32 2 Grundlagen und Analyse ke Clary gegründet. JXTA definiert auf sehr abstrakte Weise eine Reihe von Protokollen und XML-Formaten, die für alle Anwendungen, die Peer-to-Peer nutzen möchten, eine ausgereifte und wiederverwendbare Basis sein können. Dazu verwendet JXTA eine DreiSchichten-Architektur, XML-basierte Protokolle und einige grundlegende Abstraktionen wie Peer Groups, Pipes und Advertisements, um eine einheitliche Programmierplattform für Peer-to-Peer-Anwendungen zu schaffen und Interoperabilität und Unabhängigkeit von Software- und Hardwareplattformen zu ermöglichen68 . 2.4.2.1 Wichtige Grundbegriffe der JXTA-Technologie Das JXTA-Netzwerk besteht wie jedes Peer-to-Peer Netz aus einer Reihe untereinander verbundener Knoten, den sogenannten Peers. Ein Peer ist hierbei nicht an ein physikalisches Endgerät gebunden. Vielmehr können auf jedem Gerät parallel mehrere Peers gestartet werden. Jeder Peer wird eindeutig durch eine Peer-ID identifiziert. In JXTA existieren vier verschiedene Typen von Peers: • Unter einem Minimal Peer versteht man einen Peer, der nur die grundlegendsten Funktionen, nämlich das Senden und Empfangen, ermöglicht. Diese Peers werden zumeist auf Rechner mit minimalen Systemleistungen, wie z.B. PDAs oder Mobiltelefonen, verwendet. • Der Edge Peer ist der Standard-Peer. Jeder Peer implementiert standardmäßig die Funktionen eines Edge Peers. Der Minimal Peer ist eine eingeschränkte Version des Edge Peers. Der Edge Peer legt zusätzlich zu den Sende- und Empfangsfunktionalitäten Informationen über bekannte Ressourcen wie andere Peers, Peergruppen oder Dienste lokal ab. Des Weiteren implementiert der Edge Peer alle Dienste, die eine Anwendung aus Sicht des Nutzers benötigt, um zu funktionieren. • Um Nachrichten über Firewalls, Network Address Translation (NAT), . . . hinweg zu übermitteln, wird ein Relay-Peer benötigt. Dieser wird darüber hinaus benötigt, um einen Minimal Peer in das Netzwerk einzubinden. Der Relay-Peer erhält Informationen über Wege zu anderen Peers und nutzt diese, um Nachrichten weiterzuleiten (Routing). • Der Rendezvous-Peer bildet eine server-ähnliche Instanz im hybriden JXTA-Netzwerk. Über diesen Peer erfolgt eine Auflösung von Anfragen nach Ressourcen. Dazu wird eine Distributed Hash Table gebildet, die sich über alle bekannten Peers und RendezvousPeers erstreckt. 68 (Vgl. Hauswirth und Dustdar 09.11.2006, S.9) 2.4 Peer-to-Peer 33 Ein weiterer wichtiger Bestandteil von JXTA ist die Metadaten-Struktur der Advertisements. Ein Advertisement ist ein XML-Dokument zur Beschreibung von Ressourcen (Peers, Pipes, Gruppen, Dienste, . . . ). Jedes Advertisement besitzt eine eindeutige ID und verfügt über eine individuell definierte Lebenszeit, die dazu genutzt wird, veraltete Ressourcen zu entfernen, ohne dazu eine zentrale Kontrollinstanz zu nutzen. Nach Ablauf der Lebenszeit muss das Advertisement neu veröffentlicht werden, um es weiter nutzen zu können. Abbildung 2.12 zeigt die Architektur von JXTA. Abbildung 2.12: Die JXTA-Architektur (Vgl. Hauswirth und Dustdar 09.11.2006, S.10) Im JXTA-Kern befindet sich der Code zur Implementierung der Protokolle. Diese Protokolle stellen die Funktionalitäten für Peers, Peer Groups, die Sicherheit und die Überwachung der Peers (engl. Monitoring) zur Verfügung. Auf dem Kern bauen die bekannten Dienste wie Suche und File-Sharing auf, welche wiederum als Grundlage für JXTA-Anwendungen dienen. Wie bereits erwähnt, bilden sechs Protokolle den Kern von JXTA. Das Peer Resolver Protocol (PRP) dient zum Senden von Suchanfragen zu allen anderen Peers und zum Empfangen von einer Antwort. Über das Peer Discovery Protocol (PDP) veröffentlichen die Peers ihre Dienste und suchen nach Diensten der anderen Peers. Mit dem Peer Information Protocol (PIP) können Statusinformationen über Peers abgefragt werden. Das Pipe Binding Protocol (PBP) stellt die Pipes für die Kommunikation. Dabei sorgt das Peer Endpoint Protocol (PEP) dafür, dass zwischen den beiden beteiligten Peers eine Route mit Hilfe anderer Peers gefunden werden kann. Das Rendezvous Protocol (RVP) wird benötigt, um Nachrichten auch über Firewalls hinweg zu verbreiten69 . 69 (Vgl. Gradecki 2002, S.16) 34 2 Grundlagen und Analyse 2.4.3 Klassifizierung von Peer-to-Peer-Systemen Um eine Klassifizierung der zuvor vorgestellten Peer-to-Peer-Systeme zu ermöglichen müssen zuerst einmal verschiedene Kriterien zur Klassifizierung eingeführt werden70 : • Strukturierungsgrad : Hier muss zwischen unstrukturierten Systemen und strukturierten Systemen unterschieden werden. In einem unstrukturierten System verfügt ein Peer über keine Informationen über andere Peers. Ein Beispiel hierfür sind alle InternetTauschbörsen, die über einen zentralen Index verfügen. In strukturierten Systemen verwaltet ein Peer hingegen lokal Informationen über andere Peers. Kademlia ist ein Beispiel dafür. • Hierarchiegrad : Hier muss zwischen einem flachen und einem hierarchischen Hierarchiegrad unterschieden werden. In einem flachen Peer-to-Peer-System gibt es keine verschiedenen Rollen, die ein Peer spielen kann. In hierarchischen Peer-to-Peer-Systemen existieren hingegen verschiedene Rollen, die ein Peer spielen kann. Ein Beispiel sind alle Tauschbörsen, die über einen zentralen Server verfügen. Dieser kann als spezieller Peer mit sehr speziellen Aufgaben interpretiert werden. • Kopplungsgrad : Hier muss zwischen lose und eng gekoppelten Systemen unterschieden werden. In stark gekoppelten Systemen übernimmt ein Peer innerhalb einer PeerGruppe eine spezielle Aufgabe, beispielsweise in Kademlia die Verwaltung eines Teils der verteilten Hashtabelle oder in JXTA die Art der Nachrichtenbehandlung. Dahingegen ist es für einen Peer in einem lose gekoppelten System unnötig, derartige Aufgaben zu übernehmen. Dies hat zur Folge, dass in einem stark gekoppelten System das Ausscheiden eines Peers besonders behandelt werden muss, wohingegen in einem lose gekoppelten System das Ausscheiden eines Peers für das Gesamtsystem ohne Belang ist. Napster eDonkey BitTorrent Kademlia JXTA71 70 71 Struktierungsgrad Hierarchiegrad Kopplungsgrad unstrukturiert strukturiert flach hierarchisch eng lose √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ √ ( ) ( ) ( ) ( ) ( ) ( ) Tabelle 2.1: Klassifizierung der Peer-to-Peer-Systeme (Vgl. Hauswirth und Dustdar 09.11.2006, S.4) Klassifizierung abhängig von der jeweiligen Implementierung. 35 3 Entwurf Die Entwicklung einer verteilten Lösung zum Download und zur Analyse von urheberrechtlich geschützem Material aus Internet-Tauschbörsen erfordert zunächst die Erstellung eines Konzepts. Hierzu wird ein abstraktes Modell einer implementierbaren Lösung entworfen. Der in dieser Arbeit vorgestellte Entwurf basiert auf der Idee, Dateien auf der Basis einer von Schlüsselworten gesteuerten Suche zu finden und anschließend diese Dateien in einem verteilten System nach digitalen Wasserzeichen zu untersuchen. 3.1 Zielsetzung Ziel der Arbeit ist der Entwurf eines verteilten Systems zum effizienten Auffinden und Herunterladen von mit digitalen Wasserzeichen markiertem Material in Internet-Tauschbörsen. Die gefundenen Dateien werden nach dem Download an die integrierte Analyse-Komponente übergeben. Die zu findenden digitalen Medien wurden mit einem digitalen Wasserzeichen, wie z.B. einer Kundennummer, versehen. Damit ist eine eindeutige Identifizierbarkeit des Käufers möglich (vgl. Abbildung 3.1). Abbildung 3.1: Digitales Wasserzeichen zur Identifikation 36 3 Entwurf Abbildung 3.1 zeigt, wie eine auf legalem Wege erworbene Datei in einer Internet-Tauschbörse veröffentlicht wird. Das in dieser Arbeit entworfene System dient zum Auffinden derartiger Dateien und zur anschließenden Analyse, also dem Auslesen der eingebetteten Wasserzeicheninformation. Um dabei eine hohe Effizienz und Performance zu erreichen, wurde dazu ein verteiltes System entworfen. Da das Auslesen eines Wasserzeichens einen Zeitaufwand nahe Echtzeit benötigt sowie durch die große Anzahl der in Internet-Tauschbörsen verfügbaren Dateien, kann durch die parallele Verarbeitung in einem verteilten System eine wesentlich höhere Such- und Analyseleistung gegenüber einer Einzelrechnerlösung erreicht werden. Da das Hauptaugenmerk auf dem effizienten Download der gesuchten Dateien liegt, wird das Analyseverfahren nur als Blackbox-Verfahren betrachtet und es erfolgt keine Überprüfung auf Validität der Analyseparameter. Abbildung 3.2 zeigt diese Blackbox. Abbildung 3.2: Blackbox Wasserzeichen-Analyse Um den Such- und Analysevorgang zu synchronisieren und um Kollisionen zu vermeiden, wird das verteilte System nach dem Master-Slave-Prinzip realisiert. Dabei übernimmt eine Instanz im System, der sogenannte Master, die Aufgabe, die Suche und Analyse zentral zu koordinieren. Die untergeordneten Instanzen, die sogenannten Slaves, sind dabei nur Befehlsempfänger. Abbildung 3.3 zeigt einen möglichen Systemaufbau eines verteilten Systems mit einem Master und 5 Slaves. In diesem Beispiel wurde auf das Internet-Tauschbörsennetzwerk eMule bzw. eDonkey zurückgegriffen. Bei diesem Systemaufbau ist auch eine zentrale Steuerung des Systems durch einen Benutzer vorgesehen. Dieser kann alle für einen Such- und Analysevorgang nötigen Parameter, z.B. Suchparameter wie Metallica“, Auswahl des Wasserzeichen-Algorithmus oder Wahl des ” zu suchenden Medientyps, zentral an einer Benutzerschnittstelle (engl. GUI ) des Masters eingeben und verwalten. 3.2 Ablauf der Suche und Analyse 37 Abbildung 3.3: Systemübersicht 3.2 Ablauf der Suche und Analyse Abbildung 3.4 zeigt wie ein Such- und Analysevorgang im Idealfall ablaufen kann. Im ersten Schritt erfolgt eine Eingabe des Suchparameter in der Benutzerschnittstelle des Masters. Dabei legt der Anwender zunächst fest, mit welchem Suchwort nach welchem Medientyp (z.B. Audio-Dateien) gesucht werden soll. Zudem erfolgt eine Auswahl des in diesem Vorgang zu verwendenden Wasserzeichen-Algorithmus und des zu verwendenden Wasserzeichen-Schlüssels. Nach Eingabe der Parameter werden diese an alle dem Master bekannten Slaves geschickt. Jeder der Slaves führt im Anschluss eine Suche in dem ihm bekannten Tauschbörsen-Netzwerk 38 3 Entwurf Abbildung 3.4: Ablauf der Suche und Analyse durch. Im Beispiel wurde dabei wieder das eMule- bzw. eDonkey-Netwerk ausgewählt. In diesem Netzwerk wird eine Suche an einen der zentralen Server geschickt und dieser sendet eine entsprechende Ergebnisliste zurück. Nach Erhalt der Suchergebnisse aus dem Internet-Tauschbörsennetzwerk sendet jeder der Slaves diese Ergebnisse an den Master zurück. Der Master koordiniert diese Suchergebnisse nun und wählt zu jeder gefundenen Datei (mehrere Slaves können die selbe Datei in Tauschbörsennetzwerk finden) den bestmöglichen Slave zur weiteren Verarbeitung aus. Mehr zur Verteilung der Dateien findet sich in Abschnitt 3.5 über Lastverteilung auf Seite 42. Nach der Verteilung aller Suchergebnisse sendet der Master an jeden Slave eine individuelle Bearbeitungsliste. Diese Liste enthält neben den verschiedenen Datei-IDs die zur anschließenden Analyse nötigen Angaben zu Wasserzeichen-Algorithmus und zu verwendendem Schlüssel. 3.3 Anforderungen 39 Jeder Slave beginnt nun mit dem Download der ihm zugewiesenen Dateien. Nach dem Download einer der Dateien beginnt der Slave mit dem Auslesen des Wasserzeichens unter Verwendung des zugewiesenen WasserzeichenAlgorithmus und des Schlüssels. Nach der Analyse sendet der Slave das Analyse-Ergebnis, im Idealfall ein ausgelesenes Wasserzeichen, zum Master. Dieses Beispiel beschreibt lediglich den Ablauf im Idealfall. Allerdings treten in einem verteilten System zahlreiche Ausnahmen, wie z.B. der Ausfall eines Slaves, auf. Um diese zu berücksichtigen, werden im Abschnitt 3.4 verschiedene Ausnahmefälle und entsprechende Ausnahmebehandlungsmethoden entworfen. 3.3 Anforderungen Bei der Beschreibung der Anforderungen an das zu entwickelnde System wird zwischen primären und sekundären Anforderungen unterschieden. Primäre Anforderungen müssen zwingend durch die prototypische Implementierung erfüllt werden, während sekundäre Anforderungen nur im Idealfall erfüllt sein müssen. Primäre Anforderungen: • Effizientes Auffinden und Analysieren von mit digitalen Wasserzeichen versehenen Dateien • Transparenz gegenüber der verwendeten Internet-Tauschbörse • Unerkannter Betrieb im Internet-Tauschbörsennetz • Bestmögliche Ausnutzung der zur Verfügung stehenden Ressourcen • Gute Skalierbarkeit des Systems • Fehlertoleranz bei Ausfall eines Slaves • Gute Erweiterbarkeit um neue Wasserzeichen-Algorithmen • Erweiterbarkeit um weitere Internet-Tauschbörsen Sekundäre Anforderungen: • Vollständige Analyse aller zu einer Suchanfrage gefundenen Dateien • Fehlertoleranz bei Ausfall des Masters 40 3 Entwurf Wichtigste Anforderung an das System ist die aus dem Ziel hervorgehende Anforderung des effizienten Auffindens und Analysierens von mit digitalen Wasserzeichen versehene Dateien. Diese Anforderung wird durch den Aufbau eines verteilten Systems und durch eine entsprechende Lastverteilung (siehe Abschnitt 3.5) erfüllt. Die Anforderung der Transparenz gegenüber der verwendeten Internet-Tauschbörse beschreibt die Anforderung, dass es für das ganze System unerheblich sein soll, welcher Slave welche Tauschbörse nutzt. Dazu wird in Abschnitt 3.6 eine Schnittstelle eingerichtet. Um gute Ergebnisse zu erreichen und um eine gute Leistung zu erzielen, ist das unerkannte Verbleiben im Tauschbörsen-Netzwerk sehr wichtig. Viele Internet-Tauschbörsen verfügen über Mechanismen, auffällige Clients aus dem Netzwerk auszuschließen. In vielen Systemen ist z.B. der übermäßige Download gegenüber geringem oder keinem Upload, d.h. dem Anbieten von Dateien in der Tauschbörse, ein Ausschlusskriterium. Einfache Gegenmaßnahme gegen dieses Ausschlusskriterium ist das Anbieten von legalen Dateien in der Tauschbörse, wie z.B. von Open-Source-Produkten. Weitere sehr wichtige Anforderungen für das System sind die bestmögliche Ausnutzung der zur Verfügung stehenden Ressourcen, eine gute Skalierbarkeit und eine Fehlertoleranz bei Ausfall eines Slaves. Diese Anforderungen werden durch die Wahl der verwendeten Kommunikationsplattform (siehe Abschnitt 3.7), durch eine gute Lastverteilung (siehe Abschnitt 3.5) und durch den Entwurf von Behandlungsmethoden in Ausnahmefällen (siehe Abschnitt 3.4) gewährleistet. Zuletzt werden eine gute Erweiterbarkeit um neue Wasserzeichenalgorithmen und um weitere Internet-Tauschbörsen gefordert. Diese Forderungen sind nötig, um das System an die sich ständig weiterentwickelnden Technologien anzupassen. Zudem wird durch diese Anpassungsfähigkeit das System auf die verschiedenen Bedürfnisse von verschiedensten Kunden anpassbar. Anforderungen, die lediglich im Idealfall erfüllt sein müssen, sind die vollständige Analyse aller zu einer Suchanfrage gefundenen Dateien und die Fehlertoleranz bei Ausfall des Masters. Die vollständige Analyse kann kein zwingendes Kriterium sein, da in einem Peer-to-PeerTauschbörsensystem in regelmäßigen Abständen Clients ein- und austreten. Daher ist es möglich, dass seltene Dateien bei Austritt eines oder mehrerer Clients aus dem System nicht mehr verfügbar sind. Desweiteren ist die Fehlertoleranz bei Ausfall des Masters für eine erste prototypische Implementierung nicht zwingend erforderlich. 3.4 Ausnahmefälle 41 3.4 Ausnahmefälle In diesem Abschnitt werden die verschiedenen Ausnahmefälle vorgestellt, die für die Entwicklung des Systems betrachtet wurden, und zudem wird ein erster Lösungsansatz zur Fehlerbehandlung vorgestellt. Folgende Fälle wurden beachtet: 1. Normalstart → Start Master → Start der Slaves 2. Start des Systems nach kompletter Abschaltung des Systems → Möglichkeit des Fortsetzens unabgeschlossener Aufträge 3. Slave stürzt ab oder wird beendet → Neuverteilung der Aufträge des ausfallenden Slaves 4. Neuer Slave tritt während laufender Analyse ein → Abgabe von ungestarteten Aufträgen an diesen Slave 5. Slave beendet seine Aufträge → Neuverteilung ungestarteter Aufträge 6. Absturz des Masters, Slaves laufen noch → Aufträge pausieren Fall 1 stellt den Normalstart dar, d.h. dass das System ohne zuvor aufgetretene Fehler gestartet wird. Dazu wird zunächst der Master gestartet und im Anschluss alle Slaves. Fall 2 beschreibt den Start des Systems, nachdem das System entweder durch den Nutzer beendet wurde oder durch einen Fehler ein Neustart des gesamten Systems nötig war. Hierbei ist eine Wiederaufnahme der unabgeschlossenen Analyse-Aufträge angedacht. In Fall 3 wird der Ausfall eines Slaves während einer laufenden Analyse behandelt. Grund für diesen Ausfall kann das Beenden des Slaves durch einen Nutzer oder ein Systemausfall sein. Der Master reagiert mit einer Neuverteilung aller von diesem Slave übernommenen Aufträge auf die noch vorhandenen Slaves. Fall 4 zeigt den Konstellation, dass ein neuer Slave während einer bereits laufenden Analyse dem System beitritt. Ein mögliches Herangehen dabei wäre, den Slave für diese Sitzung zu ignorieren und erst bei einer neuen Analyse mit einzubeziehen. Da aber eine optimale Nutzung erreicht werden soll, wird eine Neuverteilung noch ungestarter Aufträge als Ausnahmebehandlung vorgezogen. Ungestartete Aufträge sind in diesem Fall alle Aufträge, die zwar bereits an verschiedene Slaves vergeben wurden, deren Download aber noch nicht begonnen hat. In Fall 5 hat ein Slave alle aufgetragenen Analysen ausgeführt. Darauf wird wie in Fall 4 mit einer Neuverteilung der ungestarteten Aufträge reagiert. 42 3 Entwurf Der letzte Fall ist der mögliche Absturz des Masters. Da dieser in der ersten prototypischen Implementierung als zentraler Dienst implementiert wird, ist eine Pausierung und Zwischenspeicherung aller Analyseaufträge auf den Slaves am praktischsten. 3.5 Lastverteilung In diesem Kapitel wird beschrieben, mit welchen Kriterien eine Verteilung der durch die Suche gefundenen Resultate unter den einzelnen Slaves erfolgt. Kriterium Gewichtung Geschwindigkeit des Prozessors in MHz 0,4 Größe des Arbeitsspeichers in MByte 0,4 Geschwindigkeit der Internet-Anbindung in KBit/s 0,2 Anzahl der Analysen auf dem Slave 1 Tabelle 3.1: Kriterien zur Lastverteilung Tabelle 3.1 zeigt eine Übersicht über die verwendeten Kriterien. Die Geschwindigkeit des Prozessors und die Größe des Arbeitsspeichers sind Anhaltspunkte für die Leistungsfähigkeit des Rechners. Die Geschwindigkeit der Internetanbindung gibt Aufschluss über die Anbindung des Rechners an das Internet. Im Falle dieser Arbeit wird dabei nur die Downloadrate betrachtet. Die drei genannten Kriterien dienen zur Bestimmung der Gesamtleistung eines Slaves. Dazu erfolgt zudem eine Gewichtung der einzelnen Kriterien. Damit wird erreicht, dass ein leistungsstarker Slave mit einer eher schwachen Internetanbindung dennoch besser bewertet wird als ein eher leistungsschwacher Slave mit einer guten Internet-Anbindung. Die Gewichtung ist nötig, da der eigentliche Analyse-Prozess, also das Auslesen der Wasserzeichen, wesentlich rechenintensiver ist als der Download-Prozess. Die Gesamtleistung eines Slaves wird somit durch die Addition der gewichteten Kriterien Prozessor-Leistung, Arbeitsspeicher-Größe und Download-Geschwindigkeit berechnet. Durch die Division durch die Anzahl der auf dem Slave gestarteten Analysen wird eine Lastverteilung erreicht. Ohne die Division würde der stärkste Slave alle Analyseaufträge erhalten, wohingegen alle anderen Slave ohne Auftrag wären. Die Formel zur Lastverteilung lautet somit: y= 0, 4xP rozessor−Leistung + 0, 4xArbeitsspeicher−Größe + 0, 2xDownload−Geschwindigkeit xAnzahlderAuf träge Der Slave mit dem höchsten Wert für y erhält den Analyse-Auftrag für die Datei. 3.6 Schnittstelle zu Internet-Tauschbörsen 43 Die hier verwendete Lastverteilung ist für eine erste prototypische Implementierung ausreichend. Darüber hinaus wäre die Verwendung der folgenden Kriterien möglich: • Verfügbarkeit der Datei im Tauschbörsen-Netzwerk (Diese ist abhängig vom verwendeten Tauschbörsen-Netzwerk. Weitere Einflussfaktoren für die Verfügbarkeit sind abhängig von der Wahl des Tauschbörsen-Netzwerkes. Im eMule- bzw. eDonkey-Netzwerk wären dies z.B. der verbundene Indexierungsserver) • Auslastung des Systems (z.B. Prozessorauslastung, Arbeitsspeicherauslastung, Auslastung der Internet-Verbindung) 3.6 Schnittstelle zu Internet-Tauschbörsen Durch die Definition einer allgemeinen Schnittstelle zwischen Slave und Internet-Tauschbörse wird die in Abschnitt 3.3 geforderte Anforderung nach einer guten Erweiterbarkeit um verschiedene Internet-Tauschbörsen und der Transparenz gegenüber der gewählten InternetTauschbörse erfüllt. Abbildung 3.5: Schnittstelle zu Internet-Tauschbörsen Abbildung 3.5 zeigt das Klassendiagramm der entworfenen Schnittstelle zu Internet-Tauschbörsen. In der Schnittstelle wurden verschiedene Methoden definiert. Die Methoden getInfo() und getServerInfo() dienen zur Anforderung von Informationen über das Tauschbörsen-Netz und über einen – je nach gewähltem Netz – verbundenen Server. 44 3 Entwurf Durch die Methoden getState(), downloadState() und searchState werden verschiedene Statusmeldungen abgefragt. Die Methode searchState dient nur der Anfrage, ob eine Suchanfrage beendet ist und somit ob Suchresultate vorliegen. Diese Ergebnisse können dann mit der Methode getResult abgefragt werden. Die Methode downloadState() liefert dagegen die verschiedenden Download-Zustände der herunterzuladenden Dateien. Und die Methode getState() liefert den Status der Internet-Tauschbörse. Die Methoden connect() und connect(String to) sind zum Aufbau der Verbindung in das Tauschbörsennetzwerk vorgesehen. Dabei wird je nach Tauschbörse ein Parameter mit z.B. einer Server-ID benötigt. Die Methode disconnect() trennt die Verbindung zum Tauschbörsennetzwerk. Zuletzt dienen die Methoden downloadFile(), stopDownload(), pauseDownload() und resumeDownload() zur Aufnahme bzw. zum Stoppen, Pausieren oder zur Wiederaufnahme des Downloads der angegebenden Datei. 3.7 Wahl der verwendeten Komponenten In diesem Abschnitt wird die Wahl der verschiedenen, in der prototypischen Implementierung verwendeten Komponenten begründet. Die Umsetzung des Prototyps erfolgt in der objektorientierten Programmiersprache JAVA. 3.7.1 Wahl der Tauschbörse In der ersten exemplarischen Implementierung wird der Internet-Tauschbörsen-Client eMule verwendet. Dieser ist der zur Zeit neben Bittorrent meistgenutzte Client. Vorteile gegenüber Bittorrent sind die bessere Suchfunktion und das bereits vorhandene Webinterface. Dadurch ist eine Anbindung des Clients an den Slave ohne Eingriff in den Quellcode möglich. Dies hat zum Vorteil, dass bei einem Update nur auf zumeist geringe Änderungen am Webinterface reagiert werden muss und nicht auf die oft weitreichenden Änderungen im Quellcode. Die Anpassung des Webinterfaces an die in Abschnitt 3.6 definierte Schnittstelle zu den InternetTauschbörsen erfolgt mittels des in Gamma und Riehle (2000) definierten Entwurfsmusters des sogenannten Adapters bzw. Wrappers1 (siehe Abschnitt 4.2.4.1). 1 (Vgl. Gamma und Riehle 2000, S.151 ff) 3.8 Datei-Identifikation 45 3.7.2 Wahl der Kommunikationsplattform Die Vor- und Nachteile von Peer-to-Peer-Anwendungen gegenüber Client-Server-Anwendungen wurden bereits in Abschnitt 2.4 erörtert. Zwar ist der hier entwickelte Prototyp noch sehr stark an einer Client-Server-Anwendung orientiert, allerdings soll durch den Einsatz von JXTA ein Ausbau zu einem reinen Peer-to-Peer-System wesentlich vereinfacht werden. Zudem besitzt JXTA weitere Vorteile gegenüber anderen Kommunikations-Formen wie RMI, CORBA, . . . : • Unabhängig von einer Programmiersprache • Unabhängig von Hardware und Betriebssystem • Interoperabilität • kein Design der grundlegenden Kommunikationsmechanismen nötig • Verwendung des XML-Formates zum Datenaustausch Allerdings müssen auch einige Nachteile erwähnt werden: • JXTA selbst noch in der Entwicklungsphase • wenige, oft veraltete Literatur zu JXTA 3.8 Datei-Identifikation Um jede Datei korrekt bearbeiten zu können, wird eine eindeutige Datei-ID im System zur Identifikation einer Datei benötigt. Um eine eindeutige Zuordnung zu gewährleisten, ist eine ID nicht auf den Dateinamen zurückzuführen. eMule verwendet zwei verschiedene Arten von IDs zur Identifikation von Dateien, die durch Hashing des Dateiinhalts berechnet werden. Der sogenannte File Hash wird zur eindeutigen Identifizierung einer Datei im Netzwerk genutzt und der sogenannte Root Hash“ ist ” hauptsächlich zur Feststellung und Behebung von Übertragungsfehlern. Der File Hash ist eine 128bit Globally Unique Identifier (GUID) . Die GUID wird unter Verwendung des MD4-Algorithmus verwendet. Während der Berechnung der File ID wird die Datei in 9,28 MB große Dateiteile zerlegt. Die GUID wird für jeden dieser Dateiteile berechnet und dann werden diese Hashs zu einer eindeutigen File ID kombiniert. Der Root Hash wird für jeden der 9,28 MB großen Dateiteile durch den SHA1-Algorithmus berechnet. 46 3 Entwurf Desweiteren müssen die verschiedenen Arten der Dateisuche und der Download-Vorgang im eMule-Netzwerk betrachtet werden. Bei der Dateisuche kann zwischen den Methoden Ser” ver“, Global (Server)“ und Kad Netzwerk“ unterschieden werden. Die Suchmethode Server“ ” ” ” bedeutet eine Suche ausschließlich auf dem verbundenen eMule- bzw. eDonkey-Server. Unter der Suchmethode Global (Server)“ versteht man die Suche auf allen Servern, die in der ” Serverliste des eMule-Clients eingetragen sind. Und zuletzt bedeutet die Suchmethode Kad ” Netzwerk“ eine Suche nur im Kademlia-Netzwerk. Die Suchmethode Global (Server)“ hat ” sich als die effizienteste erwiesen und wird daher in der prototypischen Implementierung verwendet. Der Download-Vorgang im eMule-Netzwerk läuft folgendermaßen ab: Nach Hinzufügen der Datei in die Downloadliste werden zunächst alle Server in der Serverliste des Clients nach Quellen durchsucht. Die Downloadquellen werden dann in die Warteschlange gesetzt. Weitere Quellen werden durch die Suche im Kademlia Netzwerk hinzugefügt. Nachdem die ersten Quellen für einen Download gefunden wurden, werden diese Quellen nach möglichen weiteren Quellen gefragt. Diese werden dann auch in die Liste hinzugefügt. Weitere Quellen sind sogenannte passive Quellen. Diese Quellen sind Clients, die selber nach der Datei suchen und daher in der Warteschlange zum Upload stehen. Von diesen Quellen ist zwar nicht der Bezug der kompletten Datei, aber von Dateiteilen möglich.2 Die vorangegangenen Überlegungen reichen aus, um zu bestimmen, dass die in eMule verwendete GUID auch zur Identifikation der Dateien im zu implementierenden System verwendet werden kann. Zudem kann durch die Einsicht in den Download-Vorgang weiter festgelegt werden, dass ein Datei-Download von einem beliebigen Slave heruntergeladen werden kann. Allerdings sollte generell jeder eMule-Client regelmäßig mit einer neuen aktuellen Serverliste aktualisiert werden. Dazu kann die automatische Update-Funktion des Clients genutzt werden, um eine neue Liste aus dem Internet zu laden. 2 Die Kapitel zu den eMule-Details stammen aus dem Paper The eMule Protocol Specification“ (Vgl. ” Kulbak und Bickson January 20, 2005) 47 4 Implementierungsaspekte In diesem Abschnitt wird die Entwicklung eines Prototyps in Form eines ausführbaren Computerprogramms aus dem im vorherigen Abschnitt beschriebenen Entwurf erklärt. Diese Software setzt den geforderten Funktionsumfang unter Berücksichtigung der in Abschnitt 3.3 gestellten Forderungen für den vorgegebenen Anwendungsbereich um. 4.1 Entwicklungsumgebung Die Entwicklung der prototypischen Implementierung erfolgte unter Microsoft Windows XP unter Verwendung der Open-Source-Integrierten Entwicklungsumgebung (IDE) Eclipse. Die Software wurde in der objektorientierten Programmiersprache Java mit der Version 5.0 entwickelt. Des Weiteren kommt, wie bereits im Abschnitt 3.7 beschrieben, das Peer-to-PeerFramework JXTA in seiner aktuellen Version 2.0 zum Einsatz. Zudem wurde die deutsche Version 0.47c des Internet-Tauschbörsen-Clients eMule verwendet. 4.2 Aufbau des Prototypen Sowohl der Master als auch die Slaves erben zunächst einmal von der Basisklasse Peer (siehe Abschnitt 4.2.1). Des Weiteren verwenden sowohl Master als auch Slaves die Schnittstelle Database sowie deren Implementierung XMLData. Eine weitere Gemeinsamkeit von Master und Slaves ist, dass beide Typen mehrere Dienste im JXTA-Netzwerk anbieten bzw. nutzen. Der gesamte Programmfluss erfolgt im Allgemeinen ereignisgesteuert. Mögliche Ereignisse sind unter anderem: • Eintritt eines neuen Slaves • Start einer neuen Analyse • Resultate zur ausgeführten Analyse im Filesharing-Netzwerk gefunden • Neuer Download-Auftrag 48 4 Implementierungsaspekte • Analyse zu einer Datei abgeschlossen • Austritt eines Slaves • Abbruch einer Analyse • Ausfall des Masters 4.2.1 Basisklasse Peer In der Basisklasse Peer wird die grundlegende Konfiguration für den Eintritt in das JXTANetzwerk vorgenommen und im Anschluss erfolgt der Beitritt in die JXTA-Gruppe distri” butedFilesharingAnalysisPeerGroup“. Abbildung 4.1 zeigt das Klassendiagramm der Überklasse Peer. Die Konfiguration von Master und Slave unterscheiden sich. Der Master legt einerseits die JXTA-Gruppe an und zudem fungiert er als JXTA Rendezvous- und RelayPeer. Ein Slave tritt lediglich in eine existierende JXTA-Gruppe ein und wird als Edge-Peer konfiguriert. Zur Beschreibung der verschiedenen Peer-Typen vergleiche Abschnitt 2.4.2. Abbildung 4.1: Überklasse Peer Der Konstruktor erzeugt eine neue Instanz. Der Paramter instanceName“ enthält dabei den ” Namen der zu erzeugenden Instanz. Mit dem Paramter type“ wird entweder die Zeichenkette ” master“ übergeben und die neue Instanz wird als Master konfiguriert oder es wird die ” Adresse des aktuellen Masters übergeben. 4.2 Aufbau des Prototypen 49 Die weiteren verfügbaren Methoden werden hauptsächlich durch den Konstruktor zur Konfiguration verwendet. Einige andere werden zur Abfrage von erzeugten Werten genutzt, wie z.B. der ID. 4.2.2 Datenverwaltung Die Datenverwaltung erfolgt in der prototypischen Implementierung mit Hilfe der Extensible Markup Language (XML) . Um allerdings eine spätere Datenverwaltung in beispielsweise einer Datenbank zu ermöglichen, wurde zunächst die Schnittstelle Database“ (siehe Abbildung ” 4.2) entworfen, die dann durch die Klasse XMLData implementiert wurde. XML ist eine vom World Wide Web Consortium (W3C) definierte Auszeichungssprache und erlaubt eine hierarchisch strukturierte Speicherung in Form eines maschinen- und menschenlesbaren Dokuments1 . Abbildung 4.2: Schnittstelle zur Datenbank Die einzelnen XML-Dateien des Masters werden in den Tabellen 4.1, 4.2, 4.3, 4.4, 4.5 und 4.6 dargestellt und beschrieben. 1 (Vgl. Consortium 16.08.2006) 50 peers.xml Beschreibung Element peers peer Attribut ID Hostname OS Speed Memory Rate Emule Start ed2kServer Status results.xml Beschreibung Element results result Attribut Name Size Hash Sources CompleteSources SearchID ServerID PeerID Status 4 Implementierungsaspekte Datei dient zur Speicherung aller Slaves und zugehörigen Informationen Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere peer-Elemente, beinhaltet Dient zur Erfassung eines einzelnen Slaves und der Informationen Beschreibung eindeutige ID zur Identifikation des Slaves sowohl im JXTA-Netzwerk als auch innerhalb des Systems Name des Rechners, auf dem der Slave ausgeführt wird Betriebssystem des Rechners Prozessor-Geschwindigkeit des Rechners in MHz Arbeitsspeicher des Rechners in MB Durchschnittliche Download-Rate der Internet-Verbindung des Rechners in KByte/s Informationen über den Emule-Client Zeitstempel des Systemstatus Aktueller eDonkey-Server des Slaves Status des Slaves, (Mögliche Werte: online oder offline) Tabelle 4.1: peers.xml Datei dient zur Speicherung aller Suchergebnisse Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere result-Elemente, beinhaltet Dient zur Erfassung eines Ergebnisses Beschreibung Name der gefundenen Datei Größe der gefundenen Datei File ID der gefundenen Datei Anzahl der Dateien im Tauschbörsen-Netz Anzahl der vollständigen Quellen der Datei im Tauschbörsen-Netz ID der Suche, durch die die Datei gefunden wurde ID des Servers, mit dem der Slave zum Zeitpunkt der Suche verbunden war ID des Slaves, der das Ergebnis lieferte Status des Ergebnisses (Mögliche Werte: started, stopped, finished) Tabelle 4.2: results.xml 4.2 Aufbau des Prototypen searches.xml Beschreibung Element searches search Attribut ID Keyword Type WmAlgo WmKey Status server.xml Beschreibung Element servers server Attribut ID Name Description Version Users Files 51 Datei dient zur Speicherung aller durchgeführten Suchen Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere search-Elemente, beinhaltet Dient zur Erfassung einer Suche Beschreibung ID der Suche und Zeitstempel des Starts Schlagwort zur Suche gesuchter Dateityp (Mögliche Werte: Audio, Image, Video) der zur Analyse der Datei zu verwendende Wasserzeichen-Algorithmus der bei der Analyse der Datei zu verwendende Wasserzeichen-Schlüssel Status der Suche (Mögliche Werte: started, stopped, finished) Tabelle 4.3: searches.xml Datei dient zur Speicherung aller Server, zu denen Slaves bisher verbunden waren Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere server-Elemente, beinhaltet Dient zur Erfassung eines Servers Beschreibung ID des Servers (eMule nutzt zur Identifikation eines Servers die IPAdresse in Verbindung mit dem Port) Name des Servers Beschreibung des Servers im Tauschbörsen-Netz Version der eingesetzten Server-Software Anzahl der zu diesem Server vebundenen Nutzer Anzahl der auf diesem Server indizierten Dateien Tabelle 4.4: server.xml 52 files.xml Beschreibung Element files file Attribut Hash peer searchid Status 4 Implementierungsaspekte Datei dient zur Speicherung aller Daten zu einer Datei nach der Verteilung auf einen Slave Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere file-Elemente, beinhaltet Dient zur Erfassung eines Datei Beschreibung File ID der gefundenen Datei ID des Slaves, der die Analyse dieser Datei durchführt ID der zugehörigen Suche Status der Datei (Mögliche Werte: started, stopped, finished) Tabelle 4.5: files.xml wm results.xml Beschreibung Datei dient zur Speicherung der Ergebnisse aller Wasserzeichen-Analysen Element Beschreibung wm results Wurzelverzeichnis, das alle Einträge, d.h. mehrere wm result-Elemente, beinhaltet wm result Dient zur Erfassung eines Ergebnisses Attribut Beschreibung filehash ID der Datei searchID zugehörige Suche mit den entsprechenden Analyse-Parametern wm gefundene Wasserzeichen-Informations oder Zeichenkette unknown“ ” oder ERROR“ ” timestamp Zeitstempel des Eintrags, d.h. des Endes der Analyse Tabelle 4.6: wm results.xml 4.2 Aufbau des Prototypen algorithms.xml Beschreibung Element algorithms algorithm Attribut name 53 Datei dient zur Speicherung der Namen der verfügbaren WasserzeichenAlgorithmen Beschreibung Wurzelverzeichnis, das alle Einträge, d.h. mehrere algorithm-Elemente, beinhaltet Dient zur Erfassung eines Wasserzeichens Beschreibung Name des Wasserzeichens Tabelle 4.7: algorithms.xml peer downloads.xml Beschreibung Datei dient zur Speicherung aller Analyse-Aufträge einer Slaves Element Beschreibung downloads Wurzelverzeichnis, das alle Einträge, d.h. mehrere download-Elemente, beinhaltet download Dient zur Erfassung eines Auftrags Attribut Beschreibung hash ID der zu bearbeitenden Datei SearchID ID der Suche, durch die die Datei gefunden wurde WmKey Wasserzeichen-Schlüssel, der bei der anschließenden Analyse genutzt werden soll WmAlgo Wasserzeichen-Algorithmus, der bei der anschließenden Analyse genutzt werden soll Status Status des Auftrags (Mögliche Werte: started, stopped, finished) Timestamp Zeitpunkt des Eintrags und somit der Auftragserteilung Tabelle 4.8: peer downloads.xml Des Weiteren verwendet der Master eine XML-Datei zur Speicherung der Namen aller verfügbaren Wasserzeichen-Algorithmen (vgl. Tabelle 4.7). Diese Datei wird nicht über die Schnittstelle Database angesprochen. Der Slave nutzt auch mehrere XML-Dateien zur Speicherung von Daten. Allerdings wird die Datei peer results.xml nur zur temporären Speicherung eines Suchresultats genutzt und ist daher hier irrelevant. Die Datei peer downloads.xml wird in Tabelle 4.8 beschrieben. Der Slave verwendet darüber hinaus die XML-Datei settings.xml zur Speicherung aller Einstellungen (vgl. Tabelle 4.9). Diese Datei wird nicht über die Schnittstelle Database sondern mit der Klasse settings angesprochen. 54 settings.xml Beschreibung Element Settings eMule DistributedAnalysis Attribut Address Password Folder MasterAddress AlgorithmRoot 4 Implementierungsaspekte Datei dient zur Speicherung aller Einstellungen einer Slaves Beschreibung Wurzelverzeichnis, das alle Einträge beinhaltet Dient zur Erfassung aller Einstellungen bezüglich des eMule-Clients Dient zur Erfassung aller Einstellung bezüglich des Slaves Beschreibung Adresse des eMule Webinterfaces (default: http://127.0.0.1:4711) Passwort des eMule Webinterfaces Sowohl für das Element eMule als auch das Element DistributedAnalysis verfügbar. Beim Element eMule dient dieses Attribut zur Speicherung des Pfades des Ordners, in dem die Dateien nach dem Download abgespeichert werden. Beim Element DistributedAnalysis wird in diesem Attribut der Pfad des Ordners beschrieben, in den die Datei nach dem Download aus dem eMule-Verzeichnis verschoben und gespeichert werden soll. Adresse des Masters (inklusive Protokoll und Port) (Beispiel: tcp://192.168.2.42:9700) Pfad des Verzeichnisses, in dem die Algorithmen für den AlgorithmManager gespeichert sind. Tabelle 4.9: settings.xml 4.2.3 Aufbau des Masters In diesem Abschnitt wird der Aufbau des Masters behandelt. Der genaue Aufbau des Masters ist auf Abbildung A.1 im Anhang auf Seite 71 abgebildet. Wie das Klassendiagramm zeigt, besteht der Master zunächst einmal aus einer großen Anzahl von Klassen. Diese können unterteilt werden in die Klassen der GUI , Klassen, die Dienste im JXTA-Netzwerk anbieten, Klassen, die in eigenständigen Threads ausgeführt werden und in Klassen, die Dienste im JXTA-Netzwerk suchen und nutzen. Zu den Klassen, die in eigenständigen Threads ausgeführt werden, zählen die Klassen PeerMonitor (siehe Abschnitt 4.2.3.1) und Dispatcher (siehe Abschnitt 4.2.3.2 S.55). Die Klassen RegisterNewClientService, SearchResultInputService, AnalysisResultInputService und StoppedUnstartedDownloadsInputService sind Klassen, die Dienste im JXTA-Netzwerk anbieten und die Klassen SendSearchCommand, SendDownloadCommand und SendStopUnstartedDownloadsCommand sind Klassen, die Dienste im JXTA-Netzwerk suchen und nutzen (siehe Abschnitt 4.2.3.3 S.56). Die GUI besteht aus drei Klassen (siehe Abschnitt 4.2.3.4 S.57). Dazu zählen die Klassen 4.2 Aufbau des Prototypen 55 GUI, PeerTable und SearchTable. 4.2.3.1 Monitoring Durch das Monitoring erfolgt eine Überwachung der registrierten Slaves. Dazu wurde die Klasse Peer Monitor entwickelt (vgl. Abbildung 4.3). Diese Klasse erbt von der Klasse Thread und überschreibt die Methode run. Alle 30 Sekunden wird eine Nachricht an jeden der Slaves gesendet. Dies geschieht mittels des JXTA-Dienstes PeerInfoServices. Dieser sendet eine Nachricht an den angegebenen Peer. Der angesprochene Peer quittiert den Empfang der Nachricht mit einer Nachricht. Sollte der angesprochene Peer nach der Zeitspanne von 25 Sekunden noch nicht reagiert haben, so wird das Ereignis peerMonitorInfoNotReceived“ ” ausgelöst. Sollte ein Peer dreimal nicht auf eine Anfrage des Masters reagieren, so wird er aus der Liste der registrierten Slaves entfernt und die auf ihm ausgeführten Aufträge werden durch den Dispatcher neu verteilt. Abbildung 4.3: Peer Monitor Ein Slave wird nicht direkt nach der ersten ausbleibenden Reaktion auf die Master-Anfrage als ausgeschieden behandelt, sondern erst nach der dritten ausbleibenden Reaktion hintereinander. Dies wurde gewählt, um einen Slave nicht vorzeitig zu entfernen, wenn eine Nachricht nicht angekommen ist oder wenn ein stark belasteter Slave nicht rechtzeitig reagieren sollte. 4.2.3.2 Dispatcher Die Verteilung der Download- und Analyse-Aufträge erfolgt durch die Klasse Dispatcher (vgl. Abbildung 4.4). Diese Klasse erbt ebenfalls von der Klasse Thread und überschreibt die Methode run. Der Dispatcher überprüft alle 30 Sekunden, ob Suchergebnisse zu einer neuen Suche eingegangen sind und ob alle registrierten Clients auf diese Suche geantwortet haben, also Suchresultate zurückgesendet haben. Wenn eine neue Suche in Arbeit ist und wenn alle Slaves Suchresultate zu dieser Suche gesendet haben, so startet der Dispatcher 56 4 Implementierungsaspekte mit der Verteilung aller durch die Suche gefundenen Dateien. Dazu wird die Methode startNewSearchResultDispatchingProcess mit der entsprechenden ID der Suche verwendet. Diese Methode wird zudem aufgerufen, wenn eine neue Suche gestartet wurde und zu dieser zwar nicht alle Slaves Resultate gesendet haben, aber eine Zeit von 200 Sekunden seit dem Start der Suche vergangen ist. Dadurch wird verhindert, dass eine Suche nicht ausgeführt wird, wenn ein Slave keine Resultate zurücksendet. Abbildung 4.4: Dispatcher Weiter wird die Methode startNewDispatchingProcessForHashSet im Falle des Ausscheidens eines Slaves mit der Menge der auf diesem Slave ausgeführten Aufträge ausgeführt. 4.2.3.3 Dienste des Masters Die Klassen RegisterNewClientService, SearchResultInputService, AnalysisResultInputService und StoppedUnstartedDownloadsInputService sind Klassen, die Dienste im JXTA-Netzwerk anbieten. Die Klasse RegisterNewClientService veröffentlich den gleichnamigen Dienst im JXTA-Netzwerk. Über diesen Dienst können sich die Slaves beim Master registrieren und die zur Lastverteilung nötigen Informationen an den Master übermitteln. Mittels der Klasse SearchResultInputService wird der Dienst SearchResultInputService veröffentlicht. An diesen Dienst können die Slaves nach einer Suche die Suchresultate übermitteln. Entsprechend dient die Klasse AnalysisResultInputService zur Veröffentlichung eines Dienstes, um Resultate der Analyse von einem Slave zu verarbeiten. 4.2 Aufbau des Prototypen 57 Die Klasse StoppedUnstartedDownloadsInputService veröffentlicht den gleichnamigen Dienst im JXTA-Netzwerk. An diesen Dienst melden die Slaves alle ungestarteten Aufträge bei einer Neuverteilung, z.B. dem Eintritt eines neuen Slaves ins Netzwerk während einer laufenden Analyse. Die Klassen SendSearchCommand, SendDownloadCommand und SendStopUnstartedDownloadsCommand sind Klassen, die Dienste im JXTA-Netzwerk suchen und nutzen. Die Klasse SendSearchCommand sucht den Dienst NewSearchInput, der von allen Slaves angeboten wird, und sendet an jeden dieser Dienste die Suchparameter einer neuen Suche. Die Klasse SendDownloadCommand dient der Suche nach dem DownloadService eines Slaves, um diesem einen neuen Download-Auftrag zu übermitteln. Zuletzt sucht die Klasse SendStopUnstartedDownloadsCommand den von jedem Slave angebotenen Dienst StopUnstartedDownloadsService, um z.B. bei einem Eintritt eines neues Slaves ins Netzwerk während einer laufenden Analyse alle ungestarteten Aufträge zu beenden und neu zu verteilen. 4.2.3.4 Benutzerschnittstelle Mittels der Benutzerschnittstelle (siehe Abbildung 4.5) werden die Such- und Analyseparameter eingegeben. Des Weiteren werden alle registrierten Slaves in einer Tabelle angezeigt (siehe Abbildung 4.6) und es erfolgt eine Überwachung der laufenden Analyse (siehe Abbildung 4.7). 4.2.4 Aufbau eines Slaves In diesem Abschnitt wird der Aufbau eines Slaves behandelt. Der genaue Aufbau eines Slaves ist auf Abbildung A.2 im Anhang auf Seite 72 abgebildet. Wie das Klassendiagramm zeigt, besteht ein Slave zunächst einmal aus einer großen Anzahl von Klassen. Diese können unterteilt werden in die Klasse der GUI , Klassen, die Dienste im JXTA-Netzwerk anbieten, Klassen, die zur Anbindung an die Internet-Tauschbörse genutzt werden, und Klassen, die Dienste im JXTA-Netzwerk suchen und nutzen, und zuletzt noch die in einem eigenem Thread laufende Klasse AlgorithmWorker. Mehr zu dieser Klasse folgt in Abschnitt 4.2.4.3. 58 4 Implementierungsaspekte Abbildung 4.5: Benutzerschnittstelle Abbildung 4.6: Benutzerschnittstelle Slave - Übersicht Die Klassen NewSearchInput, DownloadService und StopUnstartedDownloadsService bieten Dienste im JXTA-Netzwerk an und die Klassen RegisterNewClient, SendSearchResult, SendAnalysisResult und SendStoppedDownloads suchen und nutzen die Dienste im JXTA-Netzwerk (siehe Abschnitt 4.2.4.4). Die Klasse RegisterNewClient verwendet zudem zwei weitere Klassen NetworkBandwidth und WindowsSystemInformation zur Bestimmung der Systeminformationen. Mehr zu diesen Klassen folgt im Abschnitt 4.2.4.2. Die GUI besteht hier nur aus einer Klasse. Weiterhin verfügt die Klasse settings über eine eigene GUI. Diese Klasse dient zur Verwaltung und zum Lesen und Schreiben der Einstellungen. Die Internet-Tauschbörse wird über die in Abschnitt 3.6 entworfene Schnittstelle Filesharing 4.2 Aufbau des Prototypen 59 Abbildung 4.7: Benutzerschnittstelle Analyse angesprochen. Diese wird durch die Klasse Emule implementiert. Zudem existieren dazu die beiden Klassen FilesharingError und FilesharingMonitor. Mehr zu diesen Klassen folgt im Abschnitt 4.2.4.1. 4.2.4.1 Anbindung an eMule Die Klasse Emule ist eine Implementierung der Schnittstelle Filesharing. Mit dieser wird der transparente Zugriff auf eine Tauschbörse gewährleistet. Die Nutzung der Datei-IDs aus dem eMule-System als interne Datei-IDs spielt dabei keine Rolle. Die Nutzung dieser IDs ist lediglich der einfachste Weg, auch intern eine eindeutige Identifizierbarkeit zu gewährleisten. Wenn eine weitere Tauschbörse neben eMule angebunden werden soll, müsste zudem eine Übersetzung“ zwischen den Datei-IDs der verschiedenen Systeme erfolgen, um eine doppelte ” Behandlung der Dateien zu vermeiden. Da, wie bereits erwähnt, in diesem Prototyp der Internet-Tauschbörsenclient eMule zum Einsatz kommt, erfolgt durch die Klasse Emule die Anpassung des Webinterfaces des eMuleClients an die in Abschnitt 3.6 definierte Schnittstelle zu den Internet-Tauschbörsen. Diese Anpassung erfolgt mittels des in Gamma und Riehle (2000) definierten Entwurfsmusters des sogenannten Adapters bzw. Wrappers2 . Eine Adapter- oder Wrapperklasse übersetzt eine Schnittstelle in eine andere Schnittstelle und ermöglicht somit eine Kommunikation über diese. Da es sich in diesem Fall um ein Webinterface handelt, besteht die Übersetzung aus einer Umwandlung der Befehle der FilesharingSchnittstelle in einen entsprechenden Uniform Resource Locator (URL) ” “ des Webinterfaces und in der anschließenden Konvertierung der durch die URL bezogenen Daten im Hypertext Markup Language (HTML) -Format in entsprechende Java-Variablen. Dies erfolgt mittels eines HTML-Parsers. Hierbei 2 (Vgl. Gamma und Riehle 2000, S.151 ff) 60 4 Implementierungsaspekte ist wichtig, dass beim verwendeten eMule-Client die Sprache auf Deutsch“ gestellt ist, da ” ansonsten Fehler beim Parsen auftreten. 4.2.4.2 Systeminformationen Die Systeminformationen werden zur Lastverteilung benötigt (vgl. Abschnitt 3.5). Dazu sind die Parameter Prozessorgeschwindigkeit, Arbeitsspeichergröße und die durchschnittliche Downloadrate notwendig. Die Klasse WindowsSystemInformation dient der Ermittlung verschiedener Systemparameter unter dem Betriebssystem Microsoft Windows XP. Dazu wird das in dieser Windows-Version standardmäßig verfügbare Programm systeminfo.exe genutzt. Die Ausgabe des Programms wird durch die Klasse interpretiert und in ein Zeichenketten-Feld umgewandelt. Dabei werden folgende Werte gewonnen: • Name des Rechners (Hostname) • Name des Betriebssystems • Geschwindigkeit des Prozessors in MHz • Größe des Arbeitsspeichers in MB Die notwendige durchschnittliche Downloadrate wird durch die Klasse NetworkBandwidth ermittelt. Um die Geschwindigkeit der Download-Internet-Verbindung zu messen, werden drei verschiedene Dateien von verschiedenen Adressen aus dem Internet geladen. Dabei wird die Zeitdauer für diese Aktion gemessen. Durch die Berücksichtigung der Größe der Dateien kann im Anschluss die Geschwindigkeit in KByte pro Sekunde berechnet werden. Die Werte dieser Messungen können allerdings stark differieren. Schließlich kann nicht berücksichtigt werden, ob die Internet-Verbindung eventuell von mehreren Rechnern genutzt wird oder ob andere Programme die Verbindung schon nutzen. Dies ist allerdings auch nicht erforderlich, da durch die Messung lediglich die noch verfügbare Downloadrate festgestellt werden soll. 4.2.4.3 AlgorithmWorker Die Anbindung an den zur Wasserzeichen-Analyse genutzten AlgorithmManager erfolgt über die Klasse AlgorithmWorker. Diese Klasse basiert auf einer Warteschlange, in die jeder einzelne Analyse-Auftrag eingereiht wird. Jeder Auftrag wird nacheinander ausgeführt. Dazu wird eine den Analyse-Parametern entsprechende Instanz des AlgorithmManagers geladen. 4.2 Aufbau des Prototypen 61 Mit dieser wird dann ein neuer Detektor geladen, der dann unter Verwendung des angegebenen Wasserzeichen-Algorithmus und Schlüssels die angegebene Datei untersucht. Nach der Analyse wird entweder die gefundenene Wasserzeichen-Information oder die Zeichenkette unknown“ an den Slave übergeben, der diese dann an den Master sendet. Zudem ist es ” möglich, die Wasserzeichen-Analyse durch den AlgorithmManager zu übergehen, um diese durch ein externes Programm durchführen zu lassen. 4.2.4.4 Dienste des Slaves Die Klassen NewSearchInput, DownloadService und StopUnstartedDownloadsService sind Klassen, die Dienste im JXTA-Netzwerk anbieten. Die Klasse NewSearchInput bietet den Dienst SearchService im JXTA-Netzwerk an. Dieser wird vom Master zur Übermittlung einer neuen Suche an die Slaves genutzt. Mit der Klasse DownloadService wird der gleichnamige Dienst im Netzwerk angeboten. Über diesen werden Kommandos zum Download von Dateien entgegengenommen. Zuletzt bietet die Klasse StopUnstartedDownloadService den Dienst zum Anhalten aller bisher noch nicht angefangenen Aufträge an. Dieser wird, wie bereits erwähnt, z.B. bei dem Eintritt eines neuen Slaves in das Netzwerk bei einer bereits laufenden Analyse benötigt. Die Klassen RegisterNewClient, SendSearchResult, SendAnalysisResult und SendStoppedDownloads sind Klassen, die Dienste im JXTA-Netzwerk suchen und nutzen. Die Klasse RegisterNewClient sucht den vom Master angebotenen Dienst RegisterNewClientService und sendet ihm zur Anmeldung die Systeminformationen (siehe Abschnitt 4.2.4.2). Die Klassen SendSearchResult und SendAnalysisResult suchen die entsprechenden Dienste des Masters, um Such- bzw. Analyseresultate an diesen zu übermitteln. Zuletzt wird die Klasse RegisterNewCleintService zur Übermittlung aller gestoppten Aufträge verwendet, nachdem vom Master der StopUnstartedDownloadService aufgerufen wurde. 62 5 Evaluation und Leistungsbeurteilung In diesem Kapitel erfolgt eine abschließende Evaluation und Leistungsbeurteilung des entwickelten Systems. Durch die Evaluation der prototypischen Implementierung wird überprüft, ob diese Lösung den geforderten Funktionsumfang bereitstellt und ob alle Anforderungen erfüllt werden. Der Prototyp wird zu diesem Zweck in verschiedenen Testfällen getestet und hinsichtlich seiner Konformität bezüglich der Anforderungen bewertet. Zudem erfolgt abschließend in einem weiteren Schritt ein Leistungsvergleich. Dabei wird das System in verschiedenen Fällen in Bezug auf Ergiebigkeit und Schnelligkeit bewertet. 5.1 Testumgebung Die Evalutation der prototypischen Implementierung erfolgt in mehreren Phasen. Dazu werden verschiedene Testumgebungen genutzt. Bereits während der Implementierung erfolgte eine regelmäßige Überprüfung des geforderten Funktionsumfangs und der Anforderungen. Dies geschah auf einem minimalen, verteilten System, bestehend aus zwei Rechnern, und einem Router mit Switch-Funktion (vgl. Abbildung 5.1). Beide Rechner waren mit jeweils einem eMule-Client ausgestattet und über eine DSL-Leitung mit dem Internet verbunden. Einer der Rechner fungierte während der Tests als Master und beherbergte zudem noch einen Slave. Der zweite Rechner führte noch einen weiteren Slave aus. Während dieser Tests wurden mehrfach alle in Abschnitt 3.4 beschriebenen Ausnahmefälle getestet. Mehr zu den Funktionstests folgt in Abschnitt 5.2. In der zweiten Phase der Evalutation wurde ein Laborversuch durchgeführt. Dazu erfolgte ein Test unter simulierten Bedingungen im lokalen Netz. Dabei wurde ein lokales System bestehend aus fünf Rechnern aufgebaut (vgl. Abbildung 5.1). Auf einem dieser Rechner wurde ein eigener eMule Server installiert. Dazu wurde die Software von Lugdunum gewählt1 . Diese Software ist im Internet frei verfügbar und zur Zeit die am häufigsten verwendete Server-Software für das eDonkey- bzw. eMule-Netz. Während des Testens simulierten zwei 1 Vgl. http://lugdunum2k.free.fr/kiten.html 5.1 Testumgebung 63 Abbildung 5.1: Testumgebung 1 Rechner gewöhnliche Tauschbörsenteilnehmer und die verbleibenden zwei Rechner bildeten – wie schon in der ersten Phase – zusammen das Analyse-System. Dabei übernahm wieder einer der Rechner die Funktion sowohl als Master als auch als Slave und der zweite Rechner wieder nur als Slave. Mehr dazu folgt im Abschnitt 5.3. Abbildung 5.2: Testumgebung 2 In der dritten und letzten Phase wurde ein Praxistest durchgeführt. Dazu wurden drei mit dem Internet über eine gemeinsame DSL-2000-Leitung verbundene und untereinander vernetzte Rechner genutzt (vgl. Abbildung 5.1). Um während des Tests im System nicht aufzufallen und somit die Anforderung nach einem unerkannten Verbleiben im Tauschbörsennetz zu gewährleisten, bot jeder der drei Rechner freie Software zum Download an. Mehr zum Praxistest folgt im Abschnitt 5.4. 64 5 Evaluation und Leistungsbeurteilung Abbildung 5.3: Testumgebung 3 5.2 Funktionstests Funktionstests werden anhand von Anwendungsfällen (engl. use cases) durchgeführt. Das zu prüfende Computerprogramm hat dabei alle gestellten Aufgaben gemäß seiner Spezifikation zu lösen. Beim entwickelten System galt es, sowohl die entworfenen Ausnahmefälle (vgl. Abschnitt 3.4) als auch die vollständige Funktion der Download- und Analyse-Komponenten zu überprüfen. Zunächst einmal wurden sämtliche Ausnahmefälle mehrfach wiederholt simuliert. Dazu wurden Slave- und Master-Ausfälle durch gezieltes Ausschalten provoziert und die Reaktionen des Systems überwacht. Zudem erfolgten regelmäßige Tests mit verschiedenen Suchparametern, um die Verteilung und die Suchfunktionen zu überprüfen. Da das System nicht über eine Redundanz des Masters verfügt, wurden hauptsächlich Ausfälle eines oder mehrere Slaves in verschiedenen Phasen simuliert. Unter anderem wurden dabei folgende Situationen getestet: • Ausfall eines Slaves vor Start einer Analyse → Reduktion der verfügbaren Slaves • Ausfall eines Slaves unmittelbar nach dem Start der Analyse, während alle Slaves die Tauschbörse durchsuchen, um die Ergebnisse anschließend zurückzusenden → Master verteilte alle Ergebnisse nach Erreichen des Timeouts von 200 Sekunden. 5.3 Laborversuch 65 • Ausfall eines Slaves nach der Verteilung der Aufträge → Master registrierte Ausfall → Neuverteilung aller dem ausgefallenen Slave zugeteilten Aufträge • Eintritt eines Slaves unmittelbar nach dem Start der Analyse, während alle Slaves die Tauschbörse durchsuchen, um die Ergebnisse anschließend zurückzusenden → Master verteilte alle Ergebnisse nach Erreichen des Timeouts von 200 Sekunden. • Eintritt eines Slaves nach der Verteilung der Aufträge → Master registrierte Eintritt → Anhalten aller ungestarteten Download-Aufträge und Neuverteilung dieser unter allen Slaves 5.3 Laborversuch Im Laborversuch erfolgte ein Vergleich zwischem einem normalen Tauschbörsen-Client und dem implementierten, aus 2 Slaves bestehenden System in einer simulierten Umgebung (vgl. Abbildung 5.2). Dazu wurde ein Netzwerk bestehend aus einem eDonkey- bzw. eMule-Server, zwei normalen eMule-Clients und zwei Rechnern mit dem Prototypen aufgebaut. Durch den Aufbau wurden lange Wartezeiten auf Dateien oder vorzeitiges Ausscheiden eines DateiAnbieters und somit Ausscheiden einer eventuell einzigen Quelle verhindert. Zudem ist dadurch das System unabhängig von der Anzahl der Nutzer im Tauschbörsen-Netzwerk, der Tageszeit und dem Uhrzeit abhängigen Internet-Verkehr. Die beiden normalen eMule-Clients dienten als Daten-Anbieter. Diese boten insgesamt 108 MP3-Dateien zum Download an. Durch die Verwendung des implementierten Systems mit nur einem Slave konnte das Verhalten eines einzigen normalen Tauschbörsen-Clients simuliert werden. Bei zwei Testläufen wurde die Zeit gemessen, die ein derartiges System benötigt, um alle 108 Dateien herunterzuladen. Diese Zeiten wurden mit den durch das aus zwei Slaves bestehenden Referenz-Systems benötigten Zeiten verglichen (vgl. Abbildung 5.4). Wie zu erwarten, benötigt ein Client nahezu doppelt so lange zum Download aller Dateien wie das aus zwei Slaves bestehende System. Die erreichten Zeiten können durch eine moderne Hardware verbessert werden. Als größte Schwachstelle erwies sich der eMule-Server, der auf einem 150 MHz Pentium I Rechner ausgeführt wurde. 66 5 Evaluation und Leistungsbeurteilung Abbildung 5.4: Ergebnisse Laborversuch 5.4 Praxistest Im Praxistest wurde das entwickelte System im realen eDonkey- bzw. eMule-Netzwerk evaluiert. Um Vergleichswerte zu erlangen, wurden dazu verschiedene Tests durchgeführt. Wie beim Laborversuch wurde zunächst das System bestehend aus nur einem Slave und einem Master als Simulation eines normalen Filesharing-Clients ausgeführt. Im Anschluss wurde das System bestehend aus zwei Slaves und einem Master getestet und zum Schluß das System bestehend aus drei Slaves und einem Master. Während des Praxistests wurde im Gegensatz zum Laborversuch nicht die Zeitdauer für das Downloaden einer bestimmten Menge von Dateien gemessen, sondern die Anzahl und die Größe der heruntergeladenen Dateien zu einem Suchwort in einem gegebenen Zeitraum. Die Tests wurden für eine Zeitdauer von zwei Stunden ausgeführt und jeweils zweimal für zwei verschiedene Suchbegriffe ausgeführt. Der erste Test erfolgte für das Suchwort Tomte“. ” Dadurch wurde das System für eine sehr begrenzt verfügbare Menge von Dateien getestet. Im zweiten Test wurde nach dem Suchwort Metallica“ gesucht. Dabei wurde immer die Grenze ” von 300 Suchresultaten pro Client erreicht. Abbilung 5.5 zeigt die Durchschnittswerte der verschiedenen Tests. Auffällig dabei ist, dass die Unterschiede beim Suchwort Tomte“ minimal sind. Dahingegen verbessern sich die Er” 5.4 Praxistest 67 Abbildung 5.5: Feldversuch gebnisse beim Suchwort Metallica“ mit der Anzahl der Slaves. Durch eine schnellere Internet” Verbindung wären die Verbesserungen noch deutlicher. Die Unterschiede zwischen den Ergebnissen für das Suchwort Tomte“ und Metallica“ sind ” ” hauptsächlich durch die stark differierende Anzahl von den im Tauschbörsen-Netzwerk verfügbaren Dateien zum Suchwort zu erklären. Während der verschiedenen Testverfahren wurde das optionale Analyseverfahren unterschiedlich behandelt. Während der Funktionstests wurden verschiedene WasserzeichenAlgorithmen getestet. Allerdings musste während der Labor- und Feldversuche darauf verzichtet werden, da kein Wasserzeichen-Algorithmus für das MP3-Format verfügbar war, der zum AlgorithmManager kompatibel war. 68 6 Zusammenfassung und Ausblicke Zum Abschluss der Arbeit soll in diesem Kapitel eine Zusammenfassung des Erarbeiteten dargestellt werden und ein Ausblick auf potentielle zukünftige Projekte im Anschluss an diese Arbeit beschrieben werden. 6.1 Zusammenfassung Diese Arbeit hat sich das effiziente Auffinden und Analysieren von urheberrechtlich geschütztem Material, das ohne Einwillung des Urhebers in Internet-Tauschbörsen veröffentlicht wurde, zum Ziel gesetzt. Der Schwerpunkt der Arbeit lag hierbei bei der verteilten Suche und Verfügbarmachung der Dateien aus Tauschbörsen. Internet-Tauschbörsen sind Plattformen zum Austausch von Dateien über das Internet. Durch sie haben Nutzer Zugriff auf eine große Menge von urheberrechtlich geschütztem Material, wie Filme, Musik, Bücher und Software. Die Veröffentlichung von urheberrechtlich geschütztem Material verstößt ohne die Zustimmung des Urhebers gegen das Urheberrecht. Da das Material in der Regel aus Gründen der Wertschöpfung, sprich zum Verdienst, geschützt ist, sehen die betroffenen Urheber und die betroffene Industrie den Tausch im Internet als wachsende Bedrohung an. Viele Methoden zum Schutz vor unerlaubten Kopien sind mit starken Restriktionen verbunden, durch die die Nutzbarkeit des Mediums beeinträchtigt wird. Das Fraunhofer Institut für Integrierte Publikations- und Informationssysteme (IPSI) hat mit digitalen Wasserzeichen eine neue Technologie mitentwickelt, die eine nicht-restriktive Methode darstellt. Mit digitalen Wasserzeichen kann eine beliebige Information robust in eine Datei eingebracht werden. Dies kann z.B. beim Kauf im Internet eine Kundennummer sein. Somit ist eine Rückverfolgung bei einer etwaigen Urheberrechtsverletzung gewährleistet. Zudem kann in diesem Zusammenhang von einem psychologischen Kopierschutz“ gesprochen ” werden. Damit wird dann dem laut mehreren Studien vorherrschenden Gefühl der Anonymität im Internet entgegengewirkt. 6.2 Ausblicke 69 Allerdings sind digitale Wasserzeichen lediglich passiv, so dass eine aktive Kontrolle ausgeführt werden muss, um eine eventuell eingebettete Information zu erhalten oder um Urheberrechtsverletzungen zu registrieren. Vor einer Analyse ist es nötig, die Datei lokal verfügbar zu machen. Um eine effiziente und auf die ständig wachsende Anzahl an Dateien in InternetTauschbörsen angepasste Lösung zu erhalten, wurde mit dieser Arbeit ein grundlegender Entwurf zum verteilten Download und zur verteilten Analyse geschaffen. Wichtigste Anforderung an das System waren neben einer guten Skalierbarkeit eine gute Ausnutzung der zur Verfügung stehenden Ressourcen und eine gute Erweiterbarkeit um weitere Internet-Tauschbörsen zusätzlich zu dem im Prototypen verwendete eMule. Um Kollisionen zu vermeiden und um eine Lastverteilung zu erreichen, wurde das System nach dem Master-Slave-Prinzip entworfen. Diese hierarchische Struktur sieht vor, dass eine oder mehrere Instanzen eine steuernde Rolle übernehmen, während untergeordnete Instanzen, die sogenannten Slaves, lediglich Befehlsempfänger darstellen. Durch die Lastverteilung konnte die gewünschte Anforderung der optimalen Ausnutzung der Ressourcen erfüllt werden. Einfluss auf die Anzahl der einem Slave zugeteilten Aufträge haben dabei, neben der Größe des Arbeitsspeichers und der Prozessorgeschwindigkeit als Systemfaktoren, der Faktor Downloadgeschwindigkeit und die Anzahl der bisher dem Slave zugeteilten Aufträge. Als Kommunikationsplattform für die prototypische Implementierung wurde JXTA verwendet. Dieses Peer-to-Peer-Framework bietet neben einer guten Skalierbarkeit auch die Möglichkeit, das System in einer zukünftigen Arbeit problemlos auf ein vollwertiges Peer-to-PeerSystem umzustellen. Durch geeignete Ausnahmebehandlungsmethoden ist zwar ein Ausfall eines Slaves problemlos, allerdings stellt der Master einen Single- Point-of-Failure dar. Somit ist bei Ausfall des Masters in der Regel ein vollständiger Neustart des Systems notwendig. Da aber diese Arbeit zunächst einmal den Entwurf eines grundlegenden Systems zur Aufgabe hatte, war die Anforderung der Ausfallsicherheit des Masters nicht gestellt. 6.2 Ausblicke Das entwickelte System bietet Raum für vielfältige Weiterentwicklungen. Wie bereits oben erwähnt, wäre eine Umsetzung eines vollständigen Peer-to-Peer-Systems denkbar. Eine weitere Möglichkeit wäre eine Weiterentwicklung der Analyse-Komponente. Das in dieser Arbeit verwendete Modul stellt nur das Grundgerüst für eine Analyse dar und es wird auf eine Überprüfung der Analyse-Parameter und der Wasserzeichen-Parameter, wie z.B. Dateityp, 70 6 Zusammenfassung und Ausblicke verzichtet. Zudem ist der verwendete AlgorithmManager auch noch im Entwicklungsstadium und dementsprechend anfällig. Weitere Entwicklungsmöglichkeiten wären die Erweiterung des Systems um weitere Tauschbörsen-Typen und somit um weitere Implementierungen der Schnittstelle Filesharing. Zudem wäre eine dynamischere Lastverteilung denkbar. Zur Zeit überprüft der Monitor lediglich die Verfügbarkeit eines Slaves. Denkbar wäre hier eine Abfrage der Systemauslastung und eine eventuelle Neuverteilung als Reaktion auf diese Auslastung. Eine weitere Entwicklungsmöglichkeit wäre ein inkrementelles Analyse-Verfahren. Dabei könnte die Suche in einem wählbaren Zeitabstand wiederholt aufgerufen und alle noch nicht analysierten Dateien untersucht werden. Die zukünftige Entwicklung von Maßnahmen zur Pirateriebekämpfung in Internet-Tauschbörsen wird sich vermutlich weiterhin sehr stark an den Möglichkeiten der modernen Informationstechnologie orientieren. Wie diese Arbeit zeigt, liegt in diesem Bereich viel Potenzial für zukünftge Forschungsarbeiten verborgen. 71 A Klassendiagramme Abbildung A.1: Klassendiagramm Master 72 A Klassendiagramme Abbildung A.2: Klassendiagramm Slave 73 B Die optimale Konfiguration von eMule In diesem Abschnitt wird die für das entwickelte System optimale Konfiguration des InternetTauschbörsen-Clients eMule beschrieben. Zunächst muss der eMule-Client installiert werden. Dabei sollte die empfohlene Version 47c in deutscher Sprache installiert werden. Diese Version ist auf der mitgelieferten CD-ROM verfügbar. Dabei kann zwischen einer .exe-Datei, die ein Installationsprogramm beinhaltet, oder einer .zip-Datei, die nur die nötigen Dateien enthält, gewählt werden. Nach der Installation wird beim ersten Start der Erst-Start-Assistent ausgeführt. Im Menüpunkt Allgemein können die Standard-Einstellungen beibehalten werden. Im nächsten Menüpunkt Ports und Verbindung erfolgt die Konfiguration der beiden für den optimalen Betrieb nötigen freigeschalteten Ports. Diese müssen in einer eventuell vorhandenen Firewall umbedingt freigegeben werden. Durch Ausführen von Ports testen“ können die gewählten Ein” stellungen überprüft werden. Die weiteren Standard-Einstellungen können beibehalten werden. Nach Abschluss des ErstStart-Assistenten wird der Assistent zur Verbindungseinstellung geöffnet. Dabei sollten folgenden Einstellungen gewählt werden: • Betriebssystem: Win2k/XP • Gleichzeitige Downloads: 16+ • Internetanbindung: Wahl der vorhandenen Internetanbindung. Sollte darüber keine Information vorhanden sein, kann diese Einstellung auch nach Ausführen des Slaves neu eingegeben werden. Die Durchschnittsrate der Anbindung ist dabei in der Peer ” Table“ des Masters ablesbar. Im Anschluss an die Assistenten müssen weitere Einstellungen vorgenommen werden. Diese können unter dem Menüpunkt Optionen“ vorgenommen werden. Dabei sollten folgende ” Einstellungen vorgenommen werden: 74 B Die optimale Konfiguration von eMule • Unter dem Menüpunkt Server sollte der Punkt Serverliste beim Programmstart ak” tualisieren“ aktiviert werden. Dazu muss zudem die URL http : //www.server − met.de/dl.php?load = gz&trace = 32442850.5278 in der Liste eingetragen werden. Um zu verhindern, dass schlechte Server auf die Liste in eMule gelangen, müssen folgende Einstellungen vorgenommen werden: – Server-Adressen vom verbundenen Server beziehen – Server-Adressen von verbundenen Clients beziehen • Weiterhin muss das Webinterface unter dem Menüpunkt Webinterface aktiviert werden und das Administrator-Passwort muss gesetzt werden. Dieses wird später bei den Einstellungen des Slaves benötigt. Weiterhin muss die Zeit des Session Timeout“ hoch” gesetzt werden auf 20 Minuten. • Zum Abschluss die Einstellungen durch OK oder Übernehmen bestätigen. 75 C Anleitung zur Nutzung des entwickelten Systems Vor dem Ausführen des Systems muss zunächst nach der Anleitung im vorherigen Kapitel die Installation des eMule-Clients auf jedem vorhergesehenen Slave vorgenommen werden. Dabei ist anzumerken, dass der Master und ein Slave auf einem Rechner ausgeführt werden können. Für den Start des Systems muss zunächst das ganze Verzeichnis auf jeden der Rechner kopiert werden. Dann wird zunächst der Master gestartet und im Anschluss die einzelnen Slaves. Dies geschieht jeweils durch Ausführen von distributedAnalysis.bat. Der Master bedarf keiner weiteren Konfiguration. Die Einstellungen für den Slave werden in der Datei settings.xml, die sich im Verzeichnis data befindet, vorgenommen. Sollte die Datei nicht vorhanden sein, wird der Konfigurations-Assistent beim Start des Slaves geöffnet (vgl. Abbildung C.1). Abbildung C.1: Einstellungsassistent des Slaves In diesem Assistent können die folgenden Einstellungen vorgenommen werden: 76 C Anleitung zur Nutzung des entwickelten Systems • Filesharing Webinterface Address: Mit dieser Einstellung wird die Adresse des Webinterfaces des eMule-Clients festgelegt. Diese Einstellung muss nur geändert werden, wenn der Port in den eMule-Einstellungen des Webinterfaces geändert wurde. • Filesharing Webinterface Pssword: Hier wird das während der Konfiguration nach der obigen Anleitung festgelegte Passwort für das eMule-Webinterface eingetragen. • Filesharing Folder to store files: In dieser Variablen wird der Pfad des Ordners Incoming im eMule-Verzeichnis festgelegt. Als Standardangabe wird der Wert nach einer Standard-Installation von eMule festgelegt. • Folder to store all downloaded files: Hier wird der Pfad zum Arbeitsordner des Slaves angelegt. Standardmäßig wird dazu der Ordner files im System-Ordner verwendet. In diesen Ordner werden die Dateien nach dem erfolgreichen Download aus dem eMule-Verzeichnis verschoben und dort gespeichert. • Distributed eMule Analysis Master Address: In dieser Variablen wird die Adresse des Masters angegeben. Die Adresse setzt sich aus dem zu verwendenden Protokoll (tcp oder http), der IP-Adresse des Masters und dem zu verwendendem Port (9700 bei tcp und 9702 bei http) zusammen. • Folder to store watermarking algorithms: Hier wird der Pfad zum Speicherordner der Wasserzeichen-Algorithmen angegeben. Standardangabe dabei ist der Ordner algorithmRoot im Systemorder. Nach der Eingabe der Parameter und dem Abspeichern versucht der Slave eine Verbindung zum Master aufzubauen. Sollte er die JXTA-Gruppe DistributedFilesharingAnalysisGroup“ ” nicht finden, so beendet er mit einer entsprechenden Fehlermeldung. Dann ist die Verbindung zum Master zu überprüfen und die Einstellungen anzupassen. Einfachster Weg dazu ist das manuelle Bearbeiten der Datei settings.xml. Durch Löschen dieser Datei werden die Einstellungen zurückgesetzt und bei einem erneuten Start erscheint wieder der Einstellungsassistent. Der Slave ist einsatzbereit, sobald er im Master als registriert erscheint. Zum einen kann dies durch die angezeigte Anzahl an verbundenen Slaves überprüft werden und zum anderen werden alle Slaves in der Peer Table angezeigt. Probleme bei einem Neustart des Systems können durch den JXTA-Cache entstehen. Dabei werden alle Advertisements temporär gespeichert. Zwar wird für alle eine time-to-live gesetzt, allerdings ist es teilweise möglich, dass diese zu lang ist. Einfachstes Mittel gegen dieses Problem ist das Löschen des Ordners .cache. 77 D Inhalt der CD-ROM zur Arbeit Die CD-ROM zu dieser Arbeit enthält neben der Arbeit in digitaler Form die entwickelte Software und alle zum Betrieb nötigen Komponenten. Zudem ist eine Dokumentation der Software eingefügt. Hier der Inhalt der Verzeichnisse im einzelnen: • \Software: emule0.47.zip: .zip-Datei, die nur die nötigen Dateien des Tauschbörsen-Clients eMule enthält emule0.47c-Installer.exe: .exe-Datei, die ein Installationsprogramm des TauschbörsenClients eMule beinhaltet jre-1 5 0 10-windows-i586-p.exe: .exe-Datei, die ein Installationsprogramm der JavaLaufzeitumgebung in der Version 5.0 • \Diplomarbeit: Entwickelte Software mit der vollständigen Dokumentation, den Quelldateien und allen benötigten Paketen. Zudem ist die Eclipse-Projekt-Datei, das antBuild-Skript und das gepackte Programm selber vorhanden. \adv: benötigte Advertisements \algorithmRoot: Verzeichnis der Wasserzeichen-Algorithmen. Die CD-ROM enthält aus rechtlichen Gründen keinen Wasserzeichen-Algorithmus, sondern nur einen DummyAlgorithmus, der lediglich den Datei-Hash mit dem Inhalt der Datei DummyMessages.xml vergleicht und so einen Wasserzeichen-Algorithmus simuliert. \data: In diesem Ordner werden die XML-Dateien abgespeichert. Um einen sauberen“ ” Systemzustand herzustellen, können in diesem alle Dateien außer der algorithms.xml bedenkenlos gelöscht werden. \doc: Dokumentation \files: Speicherort der heruntergeladenen Dateien \lib: Ordner enthält alle benötigten Pakete \src: Quelldateien 78 E Kuriositäten-Sammlung In diesem Abschnitt wurden einige während der Recherche gefundenen Kuriositäten rund um die Themen Urheberschutz, DRM, Schwarzkopierer, . . . zusammengetragen. Dies zeigt, wie weit diese Themen inzwischen in die Öffentlichkeit vorgedrungen sind und und auf welchen, wenn auch teilweise unkonventionellen, Wegen dieser Themenkomplex diskutiert wird. Abbildung E.1: Buch: The Crow Who Could Fly (http://www.dustrunners.com/dl/Crow Who Could Fly German.pdf) - Ein Kinderbuch zum Thema DRM • Anti-Piraterie-Kampangne der MPAA im Rahmen der Fußball-Weltmeisterschaft 2006 zusammen mit Fußballer Pelé: PELÉ SAYS SCORE A GOAL AGAINST PIRACY“ ” - http://www.mpaa.org/press releases/2006 06 09.pdf • Kampagne Privat Kopieren ist kein Verbrechen!“ mit Internet-Gefängnis zum Selbst” einliefern: http://www.wir-haben-privat-kopiert.de/ 79 Abbildung E.2: Buch: The Pig And The Box (http://www.dustrunners.com/dl/Pig and the Box German.pdf) - Ein Kinderbuch zum Thema Urheberrecht Abbildung E.3: Parodie RIAA Plakat: http://modernhumorist.com/mh/0004/propaganda/mp3.cfm 80 Literaturverzeichnis AmtsblattDerEuropaeischenUnion : Amtsblatt der Europäischen Union GesetzUeberUrheberrechtUnd : Gesetz über Urheberrecht und verwandte Schutzrechte. – gesetze-im-internet.de/bundesrecht/urhg/gesamt.pdf URL http://www. Richtlinie2006/24/EGDesEuropaeischen:15.03.2006 15.03.2006 : Richtlinie 2006/24/EG des europäischen Parlaments und des Rates vom 15. März 2006 über die Vorratsspeicherung von Daten, die bei der Bereitstellung öffentlich zugänglicher elektronischer Kommunikationsdienste oder öffentlicher Kommunikationsnetze erzeugt oder verarbeitet werden, und zur Änderung der Richtlinie 2002/58/EG. 15.03.2006. Siehe (AmtsblattDerEuropaeischenUnion). – URL http://europa.eu.int/eur-lex/lex/ LexUriServ/site/de/oj/2006/l_105/l_10520060413de00540063.pdf Richtlinie2001/29/EGDesEuropaeischen:22.05.2001 22.05.2001 : Richtlinie 2001/29/EG des Europäischen Parlaments und des Rates vom 22. Mai 2001 zur Harmonisierung bestimmter Aspekte des Urheberrechts und der verwandten Schutzrechte in der Informationsgesellschaft. 22.05.2001. Siehe (AmtsblattDerEuropaeischenUnion). – URL http://europa.eu.int/eur-lex/lex/LexUriServ/LexUriServ. do?uri=CELEX:32001L0029:DE:HTML Bamert u. a. 2004 Bamert, Thomas ; Meier-Bickel, Thomas S. ; Rüdt, Christoph ; Zürich, Universität (Hrsg.): Musik- Downloads. 2004. – Kurzbericht zur Studie BitTorrent.org BitTorrent.org: BitTorrent.org - Introduction. – URL http://www.bittorrent. org/introduction.html Bleich 26.01.2006 Bleich, Holger: Generalstaatsanwaltschaft klagt über ungebremste P2P-StrafanzeigenMaschine. 26.01.2006. – URL http://www.heise.de/newsticker/meldung/68882 BSA 2000 BSA: Homepage Business Software Alliance. 2000. – URL http://www.bsa.org BSA 2005 BSA: Piracy Study 2005. 2005. – URL http://www.bsa.org/germany/presse/ newsreleases/upload/IDC-Pirateriestudie-2005.pdf CacheLogic 2005 CacheLogic: Peer-to-Peer in 2005. 2005. – URL http://www.cachelogic.com/home/ pages/research/p2p2005.php Literaturverzeichnis 81 Consortium 16.08.2006 Consortium, World Wide W.: Extensible Markup Language. 16.08.2006. – URL http: //www.w3.org/TR/REC-xml/ Coulouris u. a. 2005 Coulouris, George ; Dollimore, Jean ; Kindberg, Tim: Distributed systems. Harlow : Addison-Wesley, 2005 (International computer science series). – URL http: //www.gbv.de/dms/ilmenau/toc/502901764coulo.PDF. – ISBN 0321263545 Deutschland 2006 Deutschland, GfK Panel S. ; Deutschland, GfK Panel S. (Hrsg.): Brennerstudie 2006. 2006 Dittmann 2000 Dittmann, Jana: Digitale Wasserzeichen. Berlin : Springer, 2000 (Xpert-press). – ISBN 3-540-66661-3 Dittmann u. a. 2005/12// Dittmann, Jana ; Franz, Elke ; Schneidewind, Antje: Steganographie und Wasserzeichen - Aktueller Stand und neue Herausforderungen. In: Informatik-Spektrum 28 (2005/12//), Nr. 6, S. 453–461. – URL http://www.springerlink.com/openurl.asp? genre=article&id=doi:10.1007/s00287-005-0043-y Gamma und Riehle 2000 Gamma, Erich ; Riehle, Dirk: Entwurfsmuster. München : Addison-Wesley, 2000 (Professionelle Softwareentwicklung). – ISBN 3893199500 Gates 1976 Gates, Bill: An Open Letter to Hobbyists. URL http://www.blinkenlights.com/ classiccmp/gateswhine.html, 1976 Giesler 2004 Giesler, Markus ; Giesler, Markus (Hrsg.): Rethinking Consumer Risk. 2004. – URL http://www.markus-giesler.com Gradecki 2002 Gradecki, Joseph D.: Mastering JXTA. Indianapolis Ind. : Wiley, 2002. – ISBN 0471250848 Hansen 24.01.2003 Hansen, Sven: Service Provider sollen Filesharing unterbinden. 24.01.2003. – URL http://www.heise.de/newsticker/meldung/33955 Hauswirth und Dustdar 09.11.2006 Hauswirth, Manfred ; Dustdar, Schahram: Peer-to-Peer: Grundlagen und Architektur. 09.11.2006. – URL http://www.infosys.tuwien.ac.at/Staff/sd/papers/ DBS-P2P.pdf IFPI IFPI: Digital Music Report 2006. – URL http://www.ifpi.org/content/library/ digital-music-report-2006.pdf 82 Literaturverzeichnis iRights.info 04.02.2005 iRights.info, Oliver P.: Privatkopie und Co. 04.02.2005. – URL http://irights. info/index.php?id=90 Jurran 13.09.2006 Jurran, Nico: eDonkey-Betreiber zahlt 30 Millionen US-Dollar an Musikindustrie. 13.09.2006. – URL http://www.heise.de/newsticker/meldung/78126 Kossel 14.09.2000 Kossel, Axel: Kann das Betamax-Urteil Napster retten? 14.09.2000. – URL http: //www.heise.de/newsticker/meldung/11932 Krempl 12.07.2005 Krempl, Stefan: Studie: Zwei Drittel der Kinofilme online verfügbar. 12.07.2005. – URL http://www.heise.de/newsticker/meldung/61617 Krempl 20.09.2006 Krempl, Stefan: Popkomm: Musikwirtschaft will Zugangsanbieter zur Kasse bitten. 20.09.2006. – URL http://www.heise.de/newsticker/meldung/78462 Krömer und Sen 2006 Krömer, Jan ; Sen, Evrim: No copy. Berlin : Tropen-Verl., 2006. – ISBN 3-932170-82-2 / 3932170822 (Ebr.) : Kulbak und Bickson January 20, 2005 Kulbak, Yoram ; Bickson, Danny: The eMule Protocol Specifikation. January 20, 2005. – URL http://prdownloads.sourceforge.net/emule/protocol_guide.pdf mbb 08.12.1999 mbb: Anklage gegen MP3-Tauschsite. 08.12.1999. – URL http://www.heise.de/ newsticker/meldung/7213 MERIT MERIT: Wasserzeichen - Digital Watermarking. – URL http://www.ipsi. fraunhofer.de/merit/mediensicherheit/was_ist_watermarking.de.html Müller u. a. Oktober 2005 Müller, Reinhard ; Heintz, Linda ; Iwaowitsch, Dirk ; Meyer, Christoph ; Mackenroth, Frank ; König, Silke ; Breuer, Wolfgang ; WPG, PricewaterhouseCoopers A. (Hrsg.): German Entertainment and Media Outlook: 20052009. Oktober 2005. – URL http://www.pwc.com/Extweb/pwcpublications. nsf/docid/C3A3CC7C707F052E8025709D0030670C,http://www.pwc.com/Extweb/ pwcpublications.nsf/docid/C3A3CC7C707F052E8025709D0030670C OECD 13.12.2005 OECD: Digital Broadband Content: Music. 13.12.2005. – URL http://www.oecd.org/ dataoecd/13/2/34995041.pdf online 10.05.2000 online, Heise: MP3-Tauschbörse sperrt 335.435 Benutzer. 10.05.2000. – URL http: //www.heise.de/newsticker/meldung/9449 Literaturverzeichnis 83 p2pnet 06.02.2006 p2pnet: Richard Stallman interview. 06.02.2006. – URL http://www.p2pnet.net/ story/7840 Röttgers 2003 Röttgers, Janko: Mix, Burn & R.I.P. Hannover : Heise, 2003 (Telepolis). – URL http://www.gbv.de/du/services/agi/65C51D6EF13670ADC1256E2A004E06B9/ 420000115193. – ISBN 3936931089 Schoder und Fischbach 2002 Schoder, Detlef ; Fischbach, Kai: Peer-to-peer. Berlin : Springer, 2002 (Xpert.press). – URL http://www.gbv.de/du/services/agi/ 5871BFD008A120ACC1256D2E00492C25/420000088548. – ISBN 3-540-43708-8 Schotzger 03.07.2002 Schotzger, Erwin: Musikindustrie will nun einzelne User klagen. 03.07.2002. – URL http://www.pressetext.at/pte.mc?pte=020703025 Steinmetz u. a. 19.12.2002 Steinmetz, Ralf ; Schmitt, Jens ; Heckmann, Oliver: Peer-to-Peer Tauschbörsen Eine Protokollübersicht. 19.12.2002. – URL ftp://ftp.kom.e-technik.tu-darmstadt. de/pub/papers/HSS02-3-paper.pdf Streit 19.06.2000 Streit, Klaus-Michael: MP3 kurbelt CD-Verkäufe an. 19.06.2000. – URL http://www. heise.de/newsticker/meldung/10112 Tanenbaum u. a. 2003 Tanenbaum, Andrew S. ; Steen, Maarten van ; Muhr, Judith: Verteilte Systeme. München : Pearson Studium, 2003 (Pearson StudiumInformatik, Verteilte Systeme). – ISBN 3827370574 für Strategieentwicklung in Kooperation mit der Universität Witten/Herdecke 2004 Universität Witten/Herdecke, Institut für Strategieentwicklung in Kooperation mit der ; Wittern/Herdecke, Universität (Hrsg.): Digitale Mentalität. 2004. – URL http://download.microsoft.com/download/D/2/B/ D2B7FE98-CA92-4E18-ACD6-94A915B4CAFF/Digitale_Mentalitaet.pdf Wikipedia Wikipedia: Wikipedia. – URL http://www.wikipedia.de Wilkens 05.05.2002 Wilkens, Andreas: Studie: Tauschbörsen helfen der Musikindustrie. 05.05.2002. – URL http://www.heise.de/newsticker/meldung/27168 Wilkens 08.09.2003 Wilkens, Andreas: RIAA verklagt 261 Tauschbörsen-Nutzer. 08.09.2003. – URL http: //www.heise.de/newsticker/meldung/40147 Wilkens 10.05.2002 Wilkens, Andreas: Musikverband kritisiert Studie über Tauschbörsen. 10.05.2002. – URL http://www.heise.de/newsticker/meldung/27301 84 Literaturverzeichnis Wilkens 22.01.2003 Wilkens, Andreas: Marktforscher: Tauschbörsen schaden Europas Musikindustrie. 22.01.2003. – URL http://www.heise.de/newsticker/meldung/33869 Wolf 2006 Wolf, Patrick: An Introduction to the AlgorithmManger. 2006 Zota 12.09.2006 Zota, Volker: eDonkey-Betreiber wirft endgültig das Handtuch. 12.09.2006. – URL http://www.heise.de/newsticker/meldung/78093 Zota 22.02.2006 Zota, Volker: Größter eDonkey-Server beschlagnahmt. 22.02.2006. – URL http://www. heise.de/newsticker/meldung/69924