88
Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Embed Size (px)

Citation preview

Page 1: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Christian Scheideler

Institut für Informatik

Universität Paderborn

Page 2: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Vorlesung: Mi 14-16 Uhr, F0.530

Übung: Mi 16-17 Uhr, F0.530

Webseite: http://www.cs.uni-paderborn.de/?id=10640

Prüfung: • 50%: Softwareprojekt• 50%: mündliche Prüfung• Notenverbesserung um 0,3: Präsentation in Übung

Voraussetzungen: Grundkenntnisse in Algorith-men und Datenstrukturen

Page 3: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Übungsaufgaben: • wöchentliche Ausgabe und Abgabe am

Mittwoch • teils theoretisch, teils praktisch

Skript und Übungsaufgaben: Webseite

Bücherempfehlungen: kein Buch (Vorlesung basiert auf neuesten Ergebnissen)

Page 4: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 5: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Einführung

Übersicht:• Motivation• Was ist Robustheit?• Das Subjects Paradigma

(Grundlage für verteilte Programme)• Die Simulationsumgebung• Beispiele

Page 6: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Einführung

Sequentielle Algorithmenund Datenstrukturen

Verteilte Algorithmenund Datenstrukturen

Page 7: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Einführung

Was sind Kernprobleme für verteilte Systeme?

Page 8: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

• Jedes verteilte System benötigt einen zusammenhängenden Wissensgraph über die Teilnehmer.

• Solch ein Graph: Overlaynetzwerk

Page 9: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 10: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

Skalierbares Overlaynetzwerk: • Hoher Durchsatz an Nachrichten• Jede Nachricht benötigt nur geringe Zeit

Page 11: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 12: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

Skalierbares Speichersystem: • Hoher Durchsatz an read/write Operationen• Jede Operation benötigt nur geringe Zeit

Page 13: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 14: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

In offenen verteilten System kann sich die Menge der Teilnehmer stark mit der Zeit verändern.

Problem: wie erhalten wir die Funktionalität eines verteilten Systems??

Page 15: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

Drei grundlegende Ansätze:

verankert peer-to-peerserver-basiert

strukturierte Overlaynetzwerke

Page 16: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 17: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Datenstrukturen

Transparente Datenstrukturen:• Verteilte Hashtabelle• Verteilte Suchstrukturen• Verteilter Heap

Transparenz: keine extra Links notwendig

Page 18: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

Korrektheit, Skalierbarkeit, Robustheit,...

Page 19: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Algorithmen und Datenstrukturen

Inhalt:

1. Einführung

2. Netzwerktheorie

3. Routing und Scheduling

4. Hashing und Caching

5. Verteilter Konsens und Transaktionen

6. Dynamische Netzwerke für Zusammenhang(Cliquen, Cliquegraphen und Expander)

7. Dynamische Netzwerke für Routing(Verankerte und dezentrale Netzwerke)

8. Verteilte Datenstrukturen

9. Drahtlose Netzwerke

Page 20: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Verteilte Systeme

Robustheit: • Operationen arbeiten korrekt selbst unter

massiven Angriffen • System kann sich selbständig erholen

Page 21: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Fundamentales Dilemma

• Skalierbarkeit:Minimiere Ressourcen für Operationen

• Robustheit:Maximiere Ressourcen für Angriffe

Skalierbare Systeme leicht zu attackieren!!Trotzdem erstaunlich gute Lösungen möglich

Page 22: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Konsensus5

83

2

3

33

3

Page 23: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Konsensus

Modell:• n Spieler• Jeder Spieler kennt alle anderen• Zeit verläuft in synchronen Fragerunden• Pro Fragerunde kann jeder Spieler nur

O(1) viele Fragen stellen / beantworten

5 8Was ist Deine Nummer?

8.

Page 24: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Konsensus

Alle Spieler ehrlich:• Minimum-Regel:

• Nach O(log n) Runden haben alle Spieler dieselbe Nummer m.h.W.

x yWas ist Deine Nummer?

y.

x:=min{x,y} Zufälliger Spieler

Page 25: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Konsensus

Ein Spieler unehrlich:• Minimum-Regel: unbeschränkte Laufzeit.

5 1Was ist Deine Nummer?

5.

irgendwann später…

5 1Was ist Deine Nummer?

1.

Page 26: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Konsensus

Besser: Median-Regel:

• O(log n) Runden m.h.W.: ehrliche Spieler• O(log n loglog n): max n gegn. Spieler

x yNummer?

y.

x:=median{x,y,z} Zufälliger Spieler

z

Zufälliger Spieler

Nummer?

z.

Page 27: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Sie sind gefeuert!

DoS-resistentes Informationssystem

Past-Insider-Attacke: Gegner kennt alles über System bis (unbekannte) Zeit t0

Ziel: skalierbares Informationssystem, so dass alles, was nach t0 eingefügt oder aktualisiert worden ist, sicher (m.h.W.) gegen past-insider DoS Attacken ist

Page 28: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustheit

Entkopplung bzgl. Ort, Zeit und Fluss.

• Ortentkopplung: interagierende Prozesse müssen nicht ihre physikalischen Orte kennen

• Zeitentkopplung: interagierende Prozesse müssen nicht zur selben Zeit miteinander interagieren

• Flussentkopplung: die Ausführung einer Aktion innerhalb eines Prozesses sollte nicht von anderen Prozessen abhängen

Page 29: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Gesetze der Robustheit

Entkopplung und Selbsterholungvon jedem Zustand

Nur dann können verteilte Systeme

hochgradig skalierbar und verfügbar sein

Page 30: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Gesetze der Robustheit

Vollständige Kontrolle über Ressourcen

und Informationen

Nur dann können verteilte Prozesse sicher

ausgetauscht werden und miteinander interagieren

Page 31: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Gesetze der Robustheit

1. Eignerzustimmung und Kontrolle2. Geringste Ausgesetztheit3. Selbsterholung4. Entkopplung[POLA, K. Cameron: The laws of identity, D. Epp: The eight rules of security,…]

Page 32: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Gesetze der Robustheit

Eignerzustimmung und Kontrolle:• Eindeutig definierte Zuständigkeiten• Vollständige Kontrolle über Info & Ressourcen

Geringste Ausgesetztheit:• Nicht mehr Wissen als notwendig• Vollst. Kontrolle über Informationsfluss

Selbsterholung:• Erholung muss von jedem Zustand aus möglich sein

(solange die Plattform noch im legalen Zustand ist)

Entkopplung: • keine Synchronisation notwendig für die Primitive

Page 33: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjects Paradigma

• Subjekte

• Objekte

• Relaypunkte

• Aktionen

Page 34: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjects Paradigma

Subjekte:• atomar• gebunden an Ort• statische Menge an Aktionen• sequentielle Abarbeitung von Aufgaben• Objekte und erzeugte Relays und Subjekte lokal

zum Subjekt• keine Identität, d.h. Informationsaustausch ist

nur über Relays möglich

Wichtig fürVerifikation

und Kontrolle!

Wichtig fürVerifikation

und Kontrolle!

Page 35: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjects Paradigma

atomar, anonym, aktiv, unbeweglich, enthält Objekte, Relays und Aktionen

atomar, anonym, passiv, beweglich

atomar, Identitäten erzeugbar, passiv, unbeweglich

atomar, anonym, unbeweglich,garantierte Terminierung

Page 36: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekt

kann Verbindungen aufbauen,die nicht umlegbar sind

kann Objekte besitzen undAktionen ausführen

kann Subjekte erzeugen

Page 37: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Relaypunkte

Ausgehende Kante bei Erzeugung festgelegt.

a) ohne Identität b) mit Identität

R

Keine Anwender-zugreifbare Identität, aber (dunkle) Identitätsobjekte erzeugbar

R

A R

Page 38: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Erstes Kennenlernen

R

Öffentliche Identität (TAN)

• Subjekte besitzen keine Identität• Identitäten nicht kopierbar, nur einmal verwendbar• Relayverbindungen können nicht umgelegt werden

A B

R

Page 39: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Vorstellung

B>A

A B

CA>B

Zustimmung und Kontrolle, geringste Ausgesetztheit?

R>B

R

Page 40: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Delegation von Rechten

Zustimmung und Kontrolle, geringste Ausgesetztheit?

Page 41: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Quelle des Objekts

R’ R‘‘R

R

Startpunkt des Objekts wird dem Objekt mitgegeben.Damit kann bei R’’ überprüft werden, wer die Quelle des Objekts war.

Page 42: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Nachkommen

Ressourcenkontrolle

Mutter Kind

Kind in derselben Maschine wie Mutter.

Page 43: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Nachkommen

EinfrierenLöschen

Page 44: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Clones

Erinnerung: Subjekte unbeweglich, atomar

A‘A B A’

Zustimmung und Kontrolle, geringste Ausgesetztheit?

Page 45: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Clones

Objekte prinzipiell völlig offen gegenüber Eigner.Objekte mit Zugriffsrechten: Clones

A B S

Zustimmung und Kontrolle, geringste Ausgesetztheit?

OO

Page 46: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Erholbarkeit

• Existierende Objekte immer erreichbar, da immer Subjekt zugeordnet

• Nachkommenbaum der Subjekte immer zusammenhängend und damit Ressour-cenkontrolle lückenlos

• Kommunikation von Kind zu Mutter immer vorhanden, und damit immer schwacher Kommunikationszusammenhang der Subjekte

Page 47: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjects Paradigma

• Simulationsumgebung existiert basierend auf C++

• Vorlesungsseite: – Einführung in C++ – Link auf frei verfügbaren Compiler– Subjects Library und Beispielprogramme

Page 48: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Objekte

Object: Basisklasse für Objekte• Container für dynamische Daten• keine Identität (nur über Referenz

erreichbar)• keine Aktionen• transferierbar, aber hat zu jedem Zeitpunkt

eindeutigen Besitzer (Subjekt)• Besitzer kann auf alle Anwendungsdaten

innerhalb vom Objekt zugreifen

Page 49: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Objekte

Von Object abgeleitete Klassen:• Identity: enthält Identität eines Relaypunkts• Clone: enthält “schlafendes” SubjektObjekte dieser Klassen sind nur einmal verwendbar, und auf

deren Inhalte können Subjekte nicht zugreifen.

Benutzerdefinierte Objekte:

ObjectType(<UserObject>){public: <benutzerdefinierte Variablen>

<evtl. Konstruktor>};

Page 50: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Relays

Relay: Klasse für Relaypunkte• nicht transferierbar• nur eine ausgehende Kante, die bei

Generierung erzeugt wird und dann nicht mehr umgelegt werden kann

• anonym, aber Identitäten können für eingehende Kanten generiert und transferiert werden

Page 51: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Relays

Benutzerdefinierte Relays:

RelayType(<UserRelay>){public: <benutzerdefinierte Variablen>

<evtl. Konstruktor>};

Page 52: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Identitäten

Anweisungen:• new Identity(Relay *r): erzeugt neue

öffentliche Identität von Relay r• new Identity(Relay *r, Relay *r’): erzeugt

private Identität von r für r’• delete i: löscht Identität

Page 53: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Clones

Anweisungen:• publicClone(<UserSubject>,NONE) oder

publicClone(<UserSubject>,<UserObject> *o): erzeugt öffentliches Clone vom Typ UserSubject

• privateClone(<UserSubject>,NONE, Relay *r) oderprivateClone(<UserSubject>,<UserObject> *o, Relay *r): erzeugt privaten Clone vom Typ UserSubject für Relay r

• delete c: löscht Clone

Page 54: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Subject: Basisklasse für Subjekte• atomar, anonym• können Objekte und Relays besitzen• nicht transferierbar• Kindsubjekt immer am selben Ort wie Mutter• frei definierbare, aber von Anfang an fest

vorgegebene Aktionen, die auf alle Anwen-dungsdaten innerhalb eines Subjekts und deren Objekte zugreifen können

Page 55: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Benutzerdefiniertes Subjekt:

SubjectType(<UserSubject>){ protected: <benutzerdefinierte Variablen> <interne benutzerdefinierte Methoden>

public: FirstAction(<UserSubject>,<Action>)

<benutzerdefinierte Aktionen>};

Page 56: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Alle extern aufrufbaren Aktionen müssen

folgende Form haben:

Action <UserAction>() {…}

Action <UserAction>(<UserObject> *o) {…}

Start der Subjects-Umgebung:

runSubjects(<UserSubject> *s, <UserObject> *o, t); // t=0: laufe, bis keine Aufgaben mehr

Page 57: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Reservierte Variablen:• ulong _debugID: eindeutige Identität für

Debugging• Relay *parent: Relay zu Muttersubjekt• ulong source: ID des Relays, von dem

Aufruf kam (lokal eindeutig)• ulong sink: ID des Relaypunkts, der Aufruf

empfangen hat

Page 58: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Anweisungen:• new(<UserSubject>,NONE) oder

new(<UserSubject>,<UserObject> *o): erzeugt neues Subjekt

• wakeupClone(Clone *c): aktiviert Subjekt im Clone c

• delete(s): löscht Subject (muss Kind sein, damit möglich)

Wichtig: bei new/delete “()” benutzen!

Page 59: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Anweisungen:• new Relay: erzeugt neuen Relaypunkt, dessen

ausgehende Kante zum Subjekt selbst zeigt• new Relay(Identity *i): erzeugt Relaypunkt mit

Verbindung zum Relaypunkt mit Identität i (damit wird i invalidiert)

• delete r: löscht Relaypunkt r• call(verb, object | NONE): generiert Anfrage

verb(object) für eigenes Subjekt• rcall(verb, object | NONE): generiert Anfrage

verb(object) für Ziel von Relay r

Page 60: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjekte

Anweisungen:• wakeup(s): weckt Subjekt s auf (und alle

seine Nachfolger im Stammbaum)• freeze(s): friert Subjekt s ein (und alle

seine Nachfolger im Stammbaum)• int idle(): gibt an, ob noch Anfragen für

Subjekt• int idle(Relay *r): gibt an, ob noch

ausgehende Anfragen für Relay r

Page 61: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Subjects Paradigma

• Ursprung: Hewitts Actor Modell (1973)für neuronale Netzwerke

• Seitdem hauptsächlich Arbeiten im Bereich der Betriebssysteme und Programmiersprachen(EROS, E Language, Singularity,…)

Page 62: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Beispiele

• Hello-Beispiele und anderes auf der Webseite

• SPAM-resistentes Email-System• Robustes DNS• Digital Rights Management• Online Banking

Page 63: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

Einsichten:• Grundlegendes Problem: ungenehmigte

Emails• Genehmigung muss an Absender und

nicht an Emails geknüpft sein • Genehmigungen müssen zurücknehmbar

sein• Die Identität des Absenders (und des

Adressaten) darf nicht transferierbar sein.

Page 64: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

Subjects: anfangs kann niemand mit Alice kommunizieren (nicht einmal die Mutter).

Alice

Page 65: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

Alice und Bob sind nicht verbunden:

Bob kann keine Nachricht direkt an Alice schicken.

Alice Bob

Page 66: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

Erste Kontaktaufnahme:

SPAM von Bob: Alice löscht R

R

Öffentliche Identität (TAN)

Alice Bob

R

Page 67: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

B>A

Alice Bob

CarolA>B

R>B

R

Vorstellung:

Page 68: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

SPAM-resistente Emails

Problem: Alice will mit David kommunizie-ren, kennt aber David nicht.

Lösung: System, das Beziehungen zeigt? (wie Xing, Facebook,…)

Alice Bob Carol David

Page 69: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Root ServerBenutzer

DNS: Hierarchische Menge von Servern

Internet Internet

Page 70: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Aufgabe des DNS: Namen IP-Adressen

Aufgabe hier: übersetze Namen in Identitäten

Besserer Schutz?

Amazon

Google

Benutzer

A AA

Page 71: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Aufgabe des DNS: Namen IP-Adressen

Aufgabe hier: übersetze Namen in Identitäten

Besserer Schutz?

Amazon

Google

Benutzer

A AA

Angreifer

Angreifer

Angreifer

Page 72: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Google hat festen Link zu Amazon: kein Angreifer kann Amazon übernehmen

Amazon

Google

Benutzer

A AA

Angreifer

Page 73: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Benutzer hat festen Link zu Google: kein Angreifer kann Google übernehmen, es sei denn, Benut-zer fällt auf Phishing-Atacke rein…

Amazon

Google

Benutzer

A AA

Angreifer

Page 74: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Benutzer versucht, alle Identitäten von Amazon (z.B. für DoS-Attacke) an sich zu ziehen: Google kann das erkennen und schließt Benutzer aus.

Amazon

Google

Benutzer

A AA

Angreifer

Page 75: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Robustes DNS

Problem: Angreifer startet Sybil-Atacken (d.h. generiert beliebig viele Benutzer)

Amazon

Google

Benutzer

A AA

Angreifer

Page 76: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

Problem: Digitaler Content ist kopierbar.Hardware:• Kassettenrekorder• CD-Brenner• DVD-Brenner• Blueray-BrennerSoftware:• Digitaler Schutz knackbar / umgehbar

Hauptproblem

Page 77: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

Software-Attacken:• Benutzer installiert Ripping-Software, um

Raubkopien seines Contents zu erstellen• Benutzer holt sich Content von einer

Tauschbörse• Legaler Content vom Benutzer wird über

Virus / Trojaner von außen gestohlen

Page 78: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

Nutzungsproblem: DRM-Modelle der Provi-der oft sehr eingeschränkt, was legale Nutzer verärgert.

Mögliche Modelle für Provider und Nutzer:1. Content kopierbar, aber nur von einem

Benutzer verwendbar.2. Content nicht kopierbar, aber beliebig

weitergebbar.

Page 79: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

2. Modell: Content nicht kopierbar, aber beliebig weitergebbar.

Durch Clones umsetzbar:

Sony Alice Bob

Song XX

X

Song X

X X

Page 80: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

2. Modell: Content nicht kopierbar, aber beliebig weitergebbar.

Vorteil: Nutzer kann X nicht inspizieren, da Zugriff über Sony-Subjekt kontrolliert.

Sony Alice Bob

X

Page 81: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Digital Rights Management

2. Modell: Content nicht kopierbar, aber beliebig weitergebbar.

Vorteil: X kann nicht von außen (ohne Hand-lung von Alice) gestohlen werden.

Sony Alice Bob

X

Page 82: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Problem: Sichere Transaktionen zwischen Kunde und Bank

Page 83: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Umsetzung in Subjects-Umgebung:

Probleme:• R kommt nicht von Bank• R wird durch Gegner abgefangen

R

Öffentliche Identität (TAN)

Bank Kunde

R

Page 84: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Probleme:• R kommt nicht von Bank• R wird durch Gegner abgefangen

Lösung: Verwende sicheren Offline-Transfer (persönliche Abholung, Brief)

Weitere Probleme:• Phishing Attacken auf Kunde• Kunde möchte von beliebigem Rechner Zugriff

Page 85: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Phishing Attacke auf Kunde:

Bank

R

Angreifer

R’

Kunde

R‘

Angreifer kann keinen Kontaktzu R herstellen!

Page 86: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Phishing Attacke auf Kunde:

Bank

R

Angreifer

R’

KundeR‘

Bank akzeptiert nur Anfragen,die bei R starten!

Page 87: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Online Banking

Zugriff über beliebigen Rechner:

Verwende z.B. USB-Stick mit Minirechner, um Emulationsproblem zu umgehen?

Details noch zu klären…

Page 88: Verteilte Algorithmen und Datenstrukturen Christian Scheideler Institut für Informatik Universität Paderborn

Fragen?