Seite 1 Protecting Mobile Agents vs. Malicious Hosts Dennis Knorr10.07.2004

Preview:

Citation preview

Seite 1

Protecting Mobile Agents vs. Malicious Hosts

Dennis Knorr 10.07.2004

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

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

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.

Seite 5

Sicherheitsprobleme eines MA

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

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“

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.

Seite 8

Zentrale Probleme

• Code & Execution Integrity

• Code Privacy

• Computing with Secrets in Public

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?

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?

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?

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

Seite 13

Weitere Lösungen?

• Code Obfuscation

• rundenbasierte/interaktive Verfahren

• einen vertrauenswürdigen Masteragent

• Homomorphe Verschlüsselungsprotokolle

Seite 14

Wiederholung der Probleme

• Klartextdaten koennen gelesen und geaendert werden

• Klartextprogramme koennen manipuliert werden

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

Seite 15

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

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.

Seite 17

Funktionen & Daten

• CED (Computing with Encrypted Data)

• CEF (Computing with Encrypted Functions)

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.

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.

Seite 20

„nur leichte Angriffe“

• Replay-Attacken

• Zufällige Veränderungen des Sourcecodes

• DoS-Attacken

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)

Seite 22

Mysterium E()

• Normale Verschlüsselung kann nicht angewandt werden

• Algorithmen haben homomorphe Gegenstücke.

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?

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

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).

Seite 26

Signieren von Dokumenten?

• Das Geheimnis kann gewahrt bleiben

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

• Verkettung von Dokument und Routine

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

Seite 28

Anwendungen

• Einkaufen übers Netz, mit Vergleichen

• Auktionen

• System mit besten Vorraussetzungen finden.

Recommended