28
Seite 1 Protecting Mobile Agents vs. Malicious Hosts Dennis Knorr 10.07.2004

Protecting Mobile Agents vs. Malicious Hosts

  • Upload
    cargan

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

Protecting Mobile Agents vs. Malicious Hosts. Dennis Knorr. 10.07.2004. Inhalt. Was sind mobile Agenten Zentrale Probleme bzgl. der Sicherheit von mobilen Agenten Verschiedenartige Lösungsansätze Homomorphe Verschlüsselungsalgorithmen Anwendungen in der Praxis. Mobile Agenten I. - PowerPoint PPT Presentation

Citation preview

Page 1: Protecting Mobile Agents vs. Malicious Hosts

Seite 1

Protecting Mobile Agents vs. Malicious Hosts

Dennis Knorr 10.07.2004

Page 2: Protecting Mobile Agents vs. Malicious Hosts

Seite 2

Inhalt

• Was sind mobile Agenten

• Zentrale Probleme bzgl. der Sicherheit von mobilen Agenten

• Verschiedenartige Lösungsansätze

• Homomorphe Verschlüsselungsalgorithmen

• Anwendungen in der Praxis

Page 3: Protecting Mobile Agents vs. Malicious Hosts

Seite 3

Mobile Agenten I

• Ein Agent ist ein ablauffähiges Programm

• Handelt (partiell oder vollständig) autonom im Auftrag einer Person

• Fähigkeit zur Verbreitung/Bewegung zwischen verschiedenen Hostsystemen

Page 4: Protecting Mobile Agents vs. Malicious Hosts

Seite 4

Mobile Agenten II

• Anhand bestimmter Kritierien und/oder Ein/Ausgaben des Hosts bestimmt der mobile Agent (MA) sein weiteres Vorgehen

• Wird momentan bei P2P- und DistributedComputing-Technologie eingesetzt.

Page 5: Protecting Mobile Agents vs. Malicious Hosts

Seite 5

Sicherheitsprobleme eines MA

Kann ein mobiler Agent sich in fremder Umgebung vor Manipulation schützen?

Page 6: Protecting Mobile Agents vs. Malicious Hosts

Seite 6

Vermeintlich unmöglich

Es ist unmöglich zu verhindern, dass Agenten nicht manipuliert werden koennen, solange nicht manipulationsresistente Hardware verwendet wird.

D.Chess, „intinerant agents for mobile computing“

Page 7: Protecting Mobile Agents vs. Malicious Hosts

Seite 7

Ein rekursives Problem

Die Schutzroutine schuetzt die Schutzroutine, die die Schutzroutine schuetzt, ..., die das Objekt schützt, welches nicht von Angreifern manipuliert werden darf.

Page 8: Protecting Mobile Agents vs. Malicious Hosts

Seite 8

Zentrale Probleme

• Code & Execution Integrity

• Code Privacy

• Computing with Secrets in Public

Page 9: Protecting Mobile Agents vs. Malicious Hosts

Seite 9

Code & Execution Integrity

• Koennen die Daten des Agenten effektiv geschuetzt werden?

• Kann der Agent sich vor Aenderung seines Quellcodes schützen?

• Kann der Agent gewährleisten, dass seine korrekte Ausführungsreihenfolge gewährleistet bleibt?

Page 10: Protecting Mobile Agents vs. Malicious Hosts

Seite 10

Code Privacy

• Kann verschleiert werden, was der Agent macht?

• Koennen die Ein- und Ausgaben so chiffriert werden, dass zwar der Agent was damit anfangen kann, aber der Host nicht?

Können die Absichten des Agenten verschleiert werden?

Page 11: Protecting Mobile Agents vs. Malicious Hosts

Seite 11

Computing Secrets in Public

• Kann ein Programm ein bestimmtes Dokument signieren, ohne, dass der Private Key des Users offenbart wird?

• Kann das Ergebnis der Berechnung ersichtlich sein, ohne dass man auf die Interna des Agenten schliessen kann?

Page 12: Protecting Mobile Agents vs. Malicious Hosts

Seite 12

Lösungen?

• Nur authentifizierte Systeme werden als Hosts anerkannt.

• Bei Kenntnis der Manipulation eines Agenten wird der betreffende Host ausgeschlossen

• Kontrolle durch Pseudodaten

Page 13: Protecting Mobile Agents vs. Malicious Hosts

Seite 13

Weitere Lösungen?

• Code Obfuscation

• rundenbasierte/interaktive Verfahren

• einen vertrauenswürdigen Masteragent

• Homomorphe Verschlüsselungsprotokolle

Page 14: Protecting Mobile Agents vs. Malicious Hosts

Seite 14

Wiederholung der Probleme

• Klartextdaten koennen gelesen und geaendert werden

• Klartextprogramme koennen manipuliert werden

• Nachrichten zwischen Agenten („von aussen“) koennen gefaelscht sein.

Page 15: Protecting Mobile Agents vs. Malicious Hosts

Seite 15

Verschlüsselte Programme könnten das Problem lösen.

Page 16: Protecting Mobile Agents vs. Malicious Hosts

Seite 16

„Verschlüsselte Funktionen“

• Wir differenzieren zwischen Programmen/Implementierungen und Funktionen

• Wenn die Funktionen verschlüsselt sind, müssen auch ihre Ein- und Ausgabedaten verschlüsselt sein.

Page 17: Protecting Mobile Agents vs. Malicious Hosts

Seite 17

Funktionen & Daten

• CED (Computing with Encrypted Data)

• CEF (Computing with Encrypted Functions)

Page 18: Protecting Mobile Agents vs. Malicious Hosts

Seite 18

CEDs

Das Problem: Bob hat einen Algorithmus bzw. eine Implementierung für die Funktion f, weiterhin würde er Alice die Implementierung benutzen lassen. Alice hat private Daten x, die sie von Bob berechnet haben möchte, allerdings will sie nicht, dass Bob etwas über x oder die Ausgabe f(x) lernt. Auf der anderen Seite will Bob nicht, dass Alice Kenntnisse der Funktionsweise von f() bekommt.

Page 19: Protecting Mobile Agents vs. Malicious Hosts

Seite 19

CEFs

Das Problem: Alice hat einen Algorithmus für die Funktion f(). Bob hat die Daten x und wuerde ihr gerne das Ergebnis der Berechnung f(x) geben. Allerdings soll weder Bob etwas über f() lernen, noch soll Alice x kennen.

Als verschärfende Bedingung gilt, dass Bob und Alice während der Berechnung nicht miteinander interagieren dürfen.

Page 20: Protecting Mobile Agents vs. Malicious Hosts

Seite 20

„nur leichte Angriffe“

• Replay-Attacken

• Zufällige Veränderungen des Sourcecodes

• DoS-Attacken

Page 21: Protecting Mobile Agents vs. Malicious Hosts

Seite 21

Ein Beispiel

• Die Verschlüsselung einer Funktion wird E(f) genannt.

• Die Implementation wird P() genannt.

Verfahren

1. Alice verschlüsselt f -> E(f)

2. Alice baut P(E(f))

3. Alice schickt P(E(f)) an Bob

4. Bob berechnet P(E(f(x)))

5. Bob sendet P(E(f(x))) an Alice

6. Alice entschlüsselt P(E(f(x))) und bekommt so f(x)

Page 22: Protecting Mobile Agents vs. Malicious Hosts

Seite 22

Mysterium E()

• Normale Verschlüsselung kann nicht angewandt werden

• Algorithmen haben homomorphe Gegenstücke.

Page 23: Protecting Mobile Agents vs. Malicious Hosts

Seite 23

Vorraussetzungen

• Gibt es Funktionen, so dass aus E(x)+E(y)=E(x+y) berechnet werden kann, ohne dass Information „herausleckt“?

• Gibt es Funktionen, sodass E(x)*E(y)=E(x*y) berechnet werden kann?

• Gibt es Funktionen, sodas E(x)*y=E(x*y) berechnet werden kann?

Page 24: Protecting Mobile Agents vs. Malicious Hosts

Seite 24

Exponentiationsprotokoll

• E:Z/(p-1)Z -> Z/pZ, x -> g^x

• p ist prim

• um x zu berechnen steht man vor dem Problem des diskreten Logarithmus

• E(x+y)=g^(x+y) <=> E(x)+E(y)=g^x * g^y

• Die Basis g stellt den Schlüssel dar, und muss ein Generator sein

Page 25: Protecting Mobile Agents vs. Malicious Hosts

Seite 25

Exponentationsprotokoll

• G^x stellt die CED dar• und g^(x+y) stellt die CEF dar• Allgemein erlauben homomorphe

Verschluesselungssysteme E:Z/nZ->Z/mZ CEF‘s fuer Polynome.

• Damit weiss der Host nie, was er berechnet, selbst, wenn er die homomorphen Funktionen kennen würde. (Was nichts destotrotz eine Schwächung darstellt).

Page 26: Protecting Mobile Agents vs. Malicious Hosts

Seite 26

Signieren von Dokumenten?

• Das Geheimnis kann gewahrt bleiben

• Wie wird verhindert, dass das falsche Dokument signiert wird?

• Verkettung von Dokument und Routine

Page 27: Protecting Mobile Agents vs. Malicious Hosts

Seite 27

Signatur-verfahren

• s() ist eine rationale Funktion um die Signatur für die Nachricht m zu erstellen

• v() ist eine zu veröffentlichende Funktion

• v(z)=m zeigt z als gültige Signatur von m

• fsigned=s°f

• f und fsigned wird an den Partner geschickt, welcher mit x und z die Nachricht verifizieren kann

Page 28: Protecting Mobile Agents vs. Malicious Hosts

Seite 28

Anwendungen

• Einkaufen übers Netz, mit Vergleichen

• Auktionen

• System mit besten Vorraussetzungen finden.