280 likes | 391 Views
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.
E N D
Protecting Mobile Agents vs. Malicious Hosts Dennis Knorr 10.07.2004 Seite 1
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 2
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 3
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 4
Sicherheitsprobleme eines MA Kann ein mobiler Agent sich in fremder Umgebung vor Manipulation schützen? Seite 5
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 6
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 7
Zentrale Probleme • Code & Execution Integrity • Code Privacy • Computing with Secrets in Public Seite 8
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 9
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 10
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 11
Lösungen? • Nur authentifizierte Systeme werden als Hosts anerkannt. • Bei Kenntnis der Manipulation eines Agenten wird der betreffende Host ausgeschlossen • Kontrolle durch Pseudodaten Seite 12
Weitere Lösungen? • Code Obfuscation • rundenbasierte/interaktive Verfahren • einen vertrauenswürdigen Masteragent • Homomorphe Verschlüsselungsprotokolle Seite 13
Wiederholung der Probleme • Klartextdaten koennen gelesen und geaendert werden • Klartextprogramme koennen manipuliert werden • Nachrichten zwischen Agenten („von aussen“) koennen gefaelscht sein. Seite 14
Verschlüsselte Programme könnten das Problem lösen. Seite 15
„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 16
Funktionen & Daten • CED (Computing with Encrypted Data) • CEF (Computing with Encrypted Functions) Seite 17
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 18
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 19
„nur leichte Angriffe“ • Replay-Attacken • Zufällige Veränderungen des Sourcecodes • DoS-Attacken Seite 20
Ein Beispiel • Die Verschlüsselung einer Funktion wird E(f) genannt. • Die Implementation wird P() genannt. Verfahren 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) 1. Alice verschlüsselt f -> E(f) 2. Alice baut P(E(f)) 3. Alice schickt P(E(f)) an Bob Seite 21
Mysterium E() • Normale Verschlüsselung kann nicht angewandt werden • Algorithmen haben homomorphe Gegenstücke. Seite 22
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 23
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 24
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 25
Signieren von Dokumenten? • Das Geheimnis kann gewahrt bleiben • Wie wird verhindert, dass das falsche Dokument signiert wird? • Verkettung von Dokument und Routine Seite 26
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 27
Anwendungen • Einkaufen übers Netz, mit Vergleichen • Auktionen • System mit besten Vorraussetzungen finden. Seite 28