48
Masterarbe it Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

Embed Size (px)

Citation preview

Page 1: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

Masterarbeit

Sicherheit in verteilten mobilen Anwendungen

Vorgetragen von Anton Afanasjew

Page 2: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

2

1. Motivation und Ziele der Masterarbeit.

2. Architektur, Entwurf und Realisierung eines Tracking-Dienstes.

3. Sicherheit des Dienstes.

4. Sicherheit der mobilen Kommunikation.

5. Datenschutz.

6. Status Quo.

Inhalt

Page 3: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

3

1. Motivation und Ziele der Masterarbeit.

Page 4: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

4

Motivation: Ziele der Masterarbeit

Sicherer Tracking-Dienst

Lokalisierung v. Personen mittels GPS und GoogleMaps.

Elemente aus Social Networks und standortbezogenen Diensten.

Sicherheit und Datenschutz.

Erweiterbarkeit und Anpassungsfähigkeit.

Page 5: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

5

Motivation: Ziele der Masterarbeit

Außendienst-mitarbeiter

Außendienst-mitarbeiter

GPS-Signale

Auswertungsserver

Koordinaten über HTTPs

Koordinator

GoogleMap mit Positionen der

Mitarbeiter

GoogleMaps-Server

GoogleMaps-Dienst

Page 6: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

6

Motivation: Tracking-Dienst als Teil einer Kollaborationsplattform

Das Pilotprojekt

Einführung und Evaluation einer Kollaborationsplattform.

Gefördert vom Hessischen Ministerium für Wissenschaft und Kunst.

Gemeinsam mit dem Hessischen Ministerium für Wirtschaft, Verkehr und Landesentwicklung.

Laufzeit 1. Mai 2008 bis 30. April 2009.

Page 7: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

7

Motivation: Funktionale Anforderungen

Standortermittlung und –visualisierung über Mobiltelefone der Gruppenteilnehmer.

Koordination der mobilen Benutzer.

Asynchrone Kommunikation zwischen dem Koordinator und den mobilen Benutzern.

Erstellung und Verwaltung von Orientierungspunkten.

Anzeige der Entfernungen zwischen mobilen Benutzern.

Page 8: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

8

Motivation: Nichtfunktionale Anforderungen

Sicherheit: Anwendung und Kommunikation müssen vor unerlaubten Zugriff geschützt werden.

Datenschutz: Benutzer müssen entscheiden können, wem sie ihre persönlichen Daten zur Ansicht stellen.

Portierbarkeit: Alle Komponenten des Dienstes müssen sich auf Spezifikationen, statt auf Hardware/Betriebssystemeigenschaften stützen.

Erweiterbarkeit: Durch Objektorientierung und lose Kopplung sollen die Komponenten leicht erweiterbar und austauschbar sein.

Testbarkeit: Die Geschäftslogik des Dienstes muss von automatisierbaren Unit-Tests abgesichert werden.

Page 9: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

9

Motivation: Herausforderung

Anspruch Sicherheitskonzept für den Tracking-Dienst. Schutz des Dienstes. Schutz der mobilen Kommunikation. Datenschutz.

Problematik Sicherheit abhängig von der Plattform. Unausgereifte und fehlerhafte Security-Frameworks. Fehlende Unterstützung der Sicherheitsstandards. Eingeschränkte Ressourcen auf mobilen Geräten.

Page 10: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

10

2. Aufbau des Tracking-Dienstes.

Page 11: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

11

Aufbau des Tracking-Dienstes: Architektur

Page 12: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

12

Aufbau des Tracking-Dienstes: Tracking Service-Komponente

Page 13: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

13

Aufbau des Tracking-Dienstes: Tracking Service-Komponente

eStudy/eCollab-Modul.

WebServices-Schnittstelle für mobile Clients.

Dispatcher für Ajax-Requests.

Realisiert in PHP.

Page 14: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

14

Aufbau des Tracking-Dienstes: Tracking Service-Komponente

WSDL Schnittstelle GetCertificate Login ReceivePosition ReceiveMessage MessageAcknowledgement CreateLandmark SendLandmarks DeleteLandmark Logout

Clients

Kommunikation mit Mobilgeräten

Page 15: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

15

Aufbau des Tracking-Dienstes: Tracking Service-Komponente

AjaxDispatcher Schnittstelle GetGroups GetPersons GetPersonData GetMessages AcknowledgeMessage SendMessage

Clients

Kommunikation mit Webbrousern

Page 16: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

16

Aufbau des Tracking-Dienstes: ORM-Layer

Page 17: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

17

Aufbau des Tracking-Dienstes: ORM-Layer

Object Relational Mapping Doctrine 1.1 als ORM-Framework. Framework generiert Record-Klassen aus dem DB-Schema. Subklassen enthalten die Geschäftslogik. Datensätze als Objekte gekapselt. Zugriff auf die DB ausschließlich objektorientiert.

public static function createMessage($strTitle, $strText, $iAuthorId, $iMobile) {$objMessage = new GmMessage();$objMessage["title"] = $strTitle;$objMessage["text"] = $strText;$objMessage["author_id"] = $iAuthorId;$objMessage["mobile"] = $iMobile;$objMessage["time"] = time();$objMessage->save();return $objMessage["id"];

}

Page 18: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

18

Aufbau des Tracking-Dienstes: Ajax Client-Komponente

Page 19: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

19

Aufbau des Tracking-Dienstes: Ajax Client-Komponente

Webbrowserbasierter GUI.

Koordinierung der Gruppenteilnehmer.

Visualisierung von Standortdaten und Routen.

Ajax-Anwendung.

Besteht zu 100 % aus JavaScript und HTML.

Entwickelt mit Java 1.4 und Google Web Toolkit.

Page 20: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

20

Google Webtool Kit

Entwicklung von Ajax-Clients mit Java.

Panels, Layouts, Listener, OOP usw.

Debuggen, Testen und Ausführen der Anwendung im Hosted Mode direkt aus Eclipse (JavaScript wird emuliert).

Übersetzung nach JavaScript.

Ergebnis ist browserunabhängig und performanter als die herkömmliche JavaScript-Entwicklung.

Erweiterbar mit Hilfe des Java Script Native Interface (JSNI).

Aufbau des Tracking-Dienstes: Ajax Client-Komponente

Page 21: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

21

Entwurf ähnlich Java-Swing.

Benutzeraktionen stoßen ActionHandler an.

Diese führen AJAX-Requests aus.

An ActionHandler werden Listener registriert.

Gwt-GoogleMaps und Gwt-EXT APIs zeichnen Karte und GUI-Komponenten.

Aufbau des Tracking-Dienstes: Ajax Client-Komponente

Page 22: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

22

Aufbau des Tracking-Dienstes: Mobile Client-Komponente

Page 23: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

23

Aufbau des Tracking-Dienstes: Mobile Client-Komponente

Plattform: Java 2 Mciro Edition (J2ME).

Konfiguration: Connected Limited Device Configuration (CLDC1.1).

Profil: Mobile Information Device Profile (MIDP2.0).

Optionale Pakete: JSR-172 und JSR-179.

Container: Java Wireless Toolkit.

Page 24: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

24

Aufbau des Tracking-Dienstes: Mobile Client-Komponente

J2ME - Schnittstellen:

lcdui-API: Grafische Oberfläche.

rms-API: Speicherung der Daten auf dem Gerät.

location-API: Ermittlung der Koordinaten.

webservice-API: Kommunikation mit dem Server.

Teilmenge der Mobile Service Architecture (MSA), die von den meisten relevanten Handyherstellern unterstützt wird.

Page 25: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

25

Aufbau des Tracking-Dienstes: Mobile Client-Komponente

Anwendung besteht aus Formularen.

Jedem Formular können mehrere Kommandos zugeordnet werden.

Kommandos führen zu WebService-Requests und abhängig vom Ergebnis zu Formularübergängen und Zustandsänderungen der Anwendung (asynchron).

WebServiceRequest-Klassen werden aus der WSDL-Definition vom WTK generiert.

Page 26: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

26

3. Sicherheit des Dienstes.

Page 27: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

27

Sicherheit des Dienstes

Schadenszenarien: Funktionalität Datenbankinkonsistenz. Falsche Werte bei den Ausgaben. Verlust von Daten.

Schadenszenarien: Datenschutz Ansicht der Standorte von Gruppenteilnehmern durch

Unberechtigte. Unerlaubtes Aufzeichnen der Bewegungsprofile. Verlust der Vertraulichkeit von Nachrichten. Missverständnisse wegen falscher Nachrichten oder

Positionen.

Page 28: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

28

Sicherheit des Dienstes:SQL-Injection Angriffsverfahren

Modifizierung der Datenbankabfragen durch SQL-Metazeichen in den Eingaben. SELECT * FROM User WHERE Username = ’$username’ AND Password = ’$password’ Eingabe Anton’ -- setzt die Passwortüberprüfung außer Kraft.

Schutzmöglichkeiten

Maskierung aller SQL-Metazeichen vor der Auswertung der Abfrage. Prepared Statements.

Umsetzung

ORM-Schicht mit dem Doctrine Framework. Zugriff auf Daten ausschließlich über Prepared Statements. Entwickler sehen DB-Datensätze als PHP-Objekte.

Page 29: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

29

Sicherheit des Dienstes:Cross-Site Scripting Angriffsverfahren

Einschleusen von Skripten. z.B. ein JavaScript in ein Kommentar einbinden. Beim Lesen des Kommentars wird der Skript auf dem Webbrowser des betroffenen Benutzers

ausgeführt.

Schutzmöglichkeit

Maskierung aller HTML-Metazeichen vor der Generierung der Ausgabe. Verzicht auf HTML-Contents. Alternative Markup-Sprache.

Umsetzung

Klasse HtmlEncoding übernimmt die Maskierung bei der Ausgabegenerierung. HTML-Contents werden vermieden. Daten werden mit JSON strukturiert.

Page 30: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

30

Sicherheit des Dienstes: Cross-Site Request Forgery Angriffsverfahren

Unterschieben eines Requests an einen angemeldeten Benutzer. Köder lockt zum Klicken des Hyperlinks oder zum Abschicken eines Formulars. Request löst eine Transaktion im Sinne des Angreifers aus.

Schutzmöglichkeit

Nur zustandmodifizierende Requests betroffen. Validierung der Hyperlink- bzw. Formularquellen nötig. Nur Requests aus vertrauenswürdigen Quellen werden akzeptiert.

Umsetzung

Klasse SecurityToken versieht die betroffenen Ajax-Requests mit zufälligen Werten (Tokens) und speichert ihre Kopien in der Session-Variable des Benutzers.

Empfangener Token wird vom Client zusammen mit dem nächsten Request verschickt. Der Token des Requests wird validiert. Requests mit unbekannten Tokens werden abgewiesen.

Page 31: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

31

4. Sicherheit der mobilen Kommunikation.

Page 32: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

32

Sicherheit der Kommunikation

Sicherheitsziele Authentifizierung

Server und Clients können einander ihre Identität beweisen.

Vertraulichkeit der SOAP-Nachrichten. Geheime Positionsdaten. Geheime Orientierungspunkte. Geheime Kurzmitteilungen.

Integrität Niemand kann die Position fälschen. Niemand kann die Kurzmittelungen manipulieren.

Kryptographische Maßnahmen Zertifikate Verschlüsselung Digitale Signaturen

Page 33: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

33

Sicherheit der Kommunikation:Umsetzungsmöglichkeiten

Umsetzungsmöglichkeiten:

SSL/TLS Manchmal nicht ausreichend. Zusätzliche Absicherung notwendig.

WS-Security Spezifikationen Sinnvolle Möglichket, aber… Keine (oder keine ausreichende) Unterstützung seitens PHP-WS-Frameworks

PHP SOAP enthält die Spezifikation nicht. PHP WSF ist noch zu fehlerhaft.

Anwendungsebene Manuelle Implementierung notwendig. Kryptographiemodule/-pakete für PHP und J2ME notwendig.

Page 34: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

34

Sicherheit der Kommunikation:Kryptographiemodule

J2ME

BouncyCastle Lightweight-API Symmetrische/Asymmetrische Verschlüsselung Digitale Signaturen Alle wichtigen kryptographischen Algorithmen Keine Zertifikatsvalidierung

PHP openssl

Page 35: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

35

Sicherheit der Kommunikation:Authentifizierung

Der Server authentifiziert sich mit seinem Zertifikat. Client fragt nach dem Zertifikat. Server schickt das Zertifikat (bzw. die Zertifikatskette). Client erkennt das Root-Zertifikat oder fügt das

unbekannte Zertifikat zu den vertrauenswürdigen Zertifikaten in seinem Speicher hinzu.

Die Clients authentifizieren sich mit den Passwörtern aus den Tracking-Accounts in eCollab Username/Password beim Login. Dann Ticketaustausch mit dem Server.

Page 36: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

36

Sicherheit der Kommunikation:Verschlüsselung

Initiale RSA-Verschlüsselung der Login-Daten:

Client verschlüsselt Daten mit dem öffentlichen Schlüssel aus dem Zertifikat.

Daten enthalten den vom Client generierten Sitzungsschlüssel. Server kann die Daten mit seinem privaten Schlüssel entschlüsseln

und den enthaltenen Sitzungsschlüssel speichern.

Dann AES-Verschlüsselung:

Gemeinsamer Sitzungsschlüssel wird verwendet. Symmetrische Verschlüsselung ist performanter.

Page 37: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

37

Sicherheit der Kommunikation:Integritätsprüfung

Vor dem Versand der Nachricht wird ein Prüfwert gebildet.

digest := SHA1(plainmessage)

Prüfwert wird zusammen mit der Nachricht versandt.

Änderung der Nachricht führt zu einem anderen Prüfwert.

Der Angreifer kann den Prüfwert nicht anpassen, weil die Nachricht verschlüsselt übertragen wird.

Page 38: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

38

5. Datenschutz.

Page 39: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

39

Datenschutz

Recht auf informationelle Selbstbestimmung:

Recht des Einzelnen, grundsätzlich selbst über die Preisgabe und Verwendung seiner personenbezogenen

Daten zu bestimmen.

Page 40: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

40

Der Benutzer entscheidet, wer seine standortbezogenen Daten ansehen darf.

Der Benutzer kann seine Lokalisierung jederzeit unmöglich machen.

Der Benutzer ist jederzeit über seine Lokalisierung

im Bilde.

Datenschutz: Ziele

Page 41: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

41

Datenschutz: Maßnahmen Benutzer entscheidet, wer seine standortbezogenen Daten

ansehen darf: Explizite Berechtigung für die Lokalisierung notwendig. Sichtbarkeitsregeln. z.B.

Projektleiter im Projekt A. Projektleiter, Mitarbeiter und Sekretariat in den Projekten A, B. Mitarbeiter im Foyer.

Benutzer kann seine Lokalisierung jederzeit unmöglich machen: Kein Tracking, bevor ein Tracking-Account angelegt wurde. Account kann jederzeit gelöscht und wieder angelegt werden. Portalmitgliedschaft ohne Tracking-Account möglich.

Der Benutzer ist jederzeit über seine Lokalisierung im Bilde: Zustimmung der Policy beim Anmelden an den Tracking-Dienst. Nachricht auf dem Handybildschirm.

Page 42: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

42

6. Status Quo.

Page 43: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

43

Status Quo

Aktueller Zustand des Tracking-Dienstes: In die eCollab-Plattform integriert. Wird automatisch mit eCollab installiert. Bietet den Tracking-Client als Download an. Einsatzbereit.

Real-Life Tests Drei Testrechner und die eCollab-Testumgebung als Server. Unix und Windows-XP als Server-Betriebssysteme. Nokia E71, Sony Ericsson C905 sowie die MIDP2.0-

Referenzimplementierung als mobile Clients. Firefox, Chrome und Safari als Ajax-Clients. Drei Testpersonen bei Reisen und Spaziergängen getrackt.

Page 44: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

44

Status Quo:Qualitätssicherung

Tests der Trackingdienst-Komponente: ca. 100 Unit-Tests mit rund 600 Zusicherungen. Vollständig automatisierte Testsuite für PhpUnit. Testdatenbank mit Preconditions.

Tests der mobilen Komponente: Automatisierte WS-Request-Tests. Können im Debug-Modus der Anwendung angestoßen werden.

Tests der Ajax-Komponente: Manuelle Tests.

Software-Metriken: Test-Coverage. Zyklomatische Komplexität. C.R.A.P.-Werte.

Page 45: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

45

Status Quo: Metriken

Klasse Test-Coverage (%) C.C.N. (max) C.R.A.P. (max)

WebServices Schnittstelle

WebServicesImpl 85,6 5 5,6

ActionHandler

GetMessagesAH 61,7 13 182,0

GetPersonDataAH 79,2 7 7,4

GetPersonsAH 96,7 8 8,0

SendMessageAH 84,6 3 12,0

AcknowledgeMessageAH 85,1 3 12,0

GetGroupsAH 100,0 2 2,0

ORM-Records

DoctrineUser 92,5 2 2,0

DoctrineCourse 81,3 2 2,0

GmAccess 90,9 3 3,0

GmPosition 95,7 4 4,0

GmMessage 100,0 4 4,0

GmAuthorization 100,0 3 3,0

GmAuthentication 100,0 3 3,0

GmLandmark 100,0 2 2,0

Utils

JsonUtils 89,0 5 5,0

AuthTicket 46,6 2 6,0

Page 46: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

46

Mobile Komponente: iPhone-Adaption des Clients. Multimedianachrichten mit Fotos und Dokumenten. Treffpunktkompass. Signal beim Betreten des Zielgebietes.

Serverkomponente: Bereitstellung von standortbezogenen Daten. Routenplaner. Wetterinformationen, Fahrpläne, Radaranzeigen…

Ajax-Komponente: Weitere Visualisierungen. Abdeckung von Regionen durch Personen. Filterung der Personen nach Ort.

Weiteres: Notenexport. eCollab-Funktionen wie Forum, News, Privatnachrichten…

Status Quo: Weiterentwicklungsvorschläge

Page 47: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

47

Danke für die Aufmerksamkeit!

Page 48: Masterarbeit Sicherheit in verteilten mobilen Anwendungen Vorgetragen von Anton Afanasjew

48

Fragen und Demo