View
107
Download
0
Category
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