Masterarbeit
Secure Mobile Cloud Service for personal data with web frontend based on HTML5
Betreuer: Prof. Dr. Michael Waidner
Verantwortlicher Mitarbeiter: Jan Peter Stotz
Bearbeiter: Amir Neziri
Einführung
• Persönliche Daten werden vermehrt auf viele unterschiedliche Geräten verteilt
• Aktueller Ansatz: Geräte synchronisieren sich mit einem Cloud-Service-Anbieter
• Cloud-Service-Anbieter bieten den Benutzern billige und größere Speicher zur Verwaltung persönlichen Daten
• Problem: Benutzer hat keine Kontrolle über seine eigenen persönlichen Daten.
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 2
Einführung
• Fraunhofer SIT Studie über Cloud-Speicherdiensten (2012)
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 3
Einführung
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri
• US Patriot-Act
Quelle: heise.de
4
Agenda
• Ziele• Stand der Technik heute• Design• Prototypische Implementierung• DEMO• Evaluation• Ausblick
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 5
Ziele
• Prototypische Entwicklung und Implementierung eines webbasierten Systems
• Implementierung nur mit Hilfe von HTML5 und JavaScript
• Verwaltung von persönlichen Daten nur in verschlüsselter Form
• Bewertung von Mechanismen zur Verwaltung von kryptographischen Schlüsseln
• Benutzerfreundliches System und akzeptable Sicherheit verfügbar
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 6
Stand der Technik heute
• Verschlüsselungsverfahren• Symmetrische Verschlüsselung• Asymmetrische Verschlüsselung• Hybride Verfahren• Elliptische Kurven• Mobiele Verschlüsselungshardware
• Schlüsselmanagement• Webbrowser (Passwordmanagement)• Hardware, Chipkarten Smart Cards und Java Cards
• Hypertext Markup Language5 (HTML5)• localStorage, sessionStorage, AppCache…
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 7
Stand der Technik heute
• Not only SQL Datenbanken (NoSQL)
• Asynchronus JavaScript and XML (Ajax)
• Transport Layer Security Protocol (TLS)
• Alternative Implementierungen• Omnicloud (Fraunhofer Institut)
• Amazon Simple Storage Service (Amazon S3)
• BoxCryptor für Dropbox, Google Drive und Microsoft SkyDrive
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 8
Design
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 9
Design
• Anforderungen
• Simulierung eines Cloud-Service-Anbieters
• Verschlüsselung und Entschlüsselung der persönlichen Daten
• Entwicklung des Web-Front-Ends mit Hilfe von HTML5 und JavaScript
• Schlüsselmanagement
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 10
Design
• Daten werden in JavaScript Object Notation (JSON)-Format strukturiert (Dokument)
• Symmetrische Datenverschlüsselung• NIST-Standard: Advanced Encryption Standard (AES )256 Bit
• Sicherheitskonzept• TLS-Protokoll für Kommunikation zwischen Web-Front-End und
Cloud-Service-Anbieter
• Datenverschlüsselung im Browser
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 11
Design
• Sicherheitskonzept• Jedes Dokument wird mit einem eigenem Schlüssel verschlüsselt• Passwörter werden nicht persistent im Klartext abgelegt• Zugriffskontrolle auf Cloud-Service-Anbieter-Seite
• Schlüsselverwaltung• Benutzer merkt eine einfaches Passwort
• Ein (komplexes) Passwort wird extern gespeichert
• Firefox Browser, Key-Server, Festplatte, USB-Stick oder SD-Karten
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 12
Design
• Struktur der Datenspeicherung
… in JSON-Format umgewandelt{
„name“: „Neziri“,
„vorname“: „Amir“,
„adresse“: „Am triesch 32, Alsfeld“,
„tel“: „0176 0983 8374“
}
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri
Name Vorname Adresse Tel
Neziri Amir Am triesch 32, Alsfeld
0176 0983 8374
13
Design
• Nach der Verschlüsselung der Daten, das JSON-Format wird erweitert• _id: Notwendig zur Identifizierung eines Dokumentes
• _rev_id: Dient für die Revision des Dokuments
• key: Authentication Data, Initial Vector, iter, mode, salt, Tagsize, keysize und der Schlüssel
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 14
Design
{
" _id " : " 82cca8060f3da5e87473f0ae04000b90 " ,
" _rev " : "162bd2b426b958485ef211435879e009d " ,
"name " : " dAWRkJWo4LPrza77d6Y " ,
" vorname " : " ew2Ci //RVQg5XNkF" ,
" adresse " : " ew3LrZWoX2o7S1eJdAaAR0jMVI+lWCuc55DvalmS " ,
" tel " : " ClHcz8fxAyFrA0+JcR4w3wGCLvEmww" ,
" key " : "88ofF26wzuCUXLYYJi8uYvFgi7AvmOj9eZNp+KEniLGuXfW2kN0mzjaHeFslR9
ATWU1p3ZwKTSmW2UETRoR+02I2D1xxNKIU6hP6cS4IaxJKrkva6yIQzpcBLYVIl07BYx25W
PvcBIIJZvFCq3In4DeKDfCz7P/J195kK8b5a/oFEBdVPiE49xS0uzr5NAyxWSLx5u4UYPV251I "
}
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 15
Design - Verschlüsselungsprozess
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 16
Prototypische Implementierung
• Anforderungen (Funktionale Anforderungen)• Web-Front-End soll über einen Web-Server zur Verfügung gestellt
werden
• Verschiedene Einstellung sollen im Web-Front-End angeboten werden, wie z.B.: Verschlüsselungsverfahren, URL Eingabe, Zugangsdaten etc.
• Verwaltung von persönlichen Kontaktdaten in verschlüsselter Form
• Datensynchronisierung
• Verwendung einer NoSQL-Datenbank
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 17
Prototypische Implementierung
• Anforderungen (Nicht Funktionale)• Sicherheit: Sichere Datenübertragung und Datenverschlüsslung im
Browser des Benutzers
• Bedienbarkeit: Benutzungsfreundlichkeit u.a. auch in mobilen Szenarien
• Wartbarkeit: Anpassungen erleichtern
• Effizienz: Auswirkungen auf Ressourcenverbrauch (z.B. Akkulaufzeit in mobilen Geräten)
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 18
Prototypische Implementierung
• Entwicklungsumgebung (Windows7 virtuelle Maschine)
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri
Software Version
Eclipse IDE for JavaScript Web Developers Helios Release
Jquery, Jquery JSONP und JQuery Mobile 1.1.0, 1.7.1, 2.1.4 und 1.1.0
Standford JavaScript Crypto Library (SJCL)
Firefox 11.0
Chrome 18.0.1025.142 m
Opera 11.62
Internet Explorer 9.0.8112.16421
19
Prototypische Implementierung
• Konfigurationsänderung des Firefox-Browsers notwendig für den Zugriff der Passwortverwaltung• Firefox->aobout:config-
>singed.applets.codebase_principal_support=true
• Key-Server für die Schlüsselverwaltung• Datenkommunikation über TLS• Datenstruktur in JSON-Format• Datenverschlüsselung mit AES-256
• USB-Sticks, Festplatten und SD-Karten für die Schlüsselverwaltung• Datenverschlüsselung mit AES-256
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 20
Prototypische Implementierung
• Web-Front –End heißt SMOLCS (Secure Mobile Cloude Service)
• Architektur
• Cloud-Service-Anbieter• Software-As-a-Service• CouchDB mit Representational State Transfer (REST)-APIs
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 21
DEMO
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 22
Evaluation
• Datenübertragung zwischen SMOLCS und Cloud-Service-Anbieter erfolgt über TLS-Protokoll
• Persönliche Daten des Benutzers werden auf der Benutzerseite im Browser mit AES-256 Algorithmus verschlüsselt bzw. entschlüsselt
• Schlüsselverwaltung im Firefox-Browser hat negative Konsequenzen auf die gesammte Sicherheit des Systems
• Key-Server ist eine alternative Lösung zur Browser-Passwortverwaltung
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 23
Evaluation
• HTML5 Sicherheit im SMOLCS• „Persistent Attack Vectors“-Angriff nicht möglich: Daten werden
aus localStorage gefiltert
• „Session-Hijacking“ und „User Tracking“ sind nicht möglich: keine Benutzer-Session-Ids und eindeutige Daten werden im localStorage gespeichert
• „Cache Poisoning“-Angriff ist sehr kritisches Sicherheitsproblem. Dies kann nicht vom Entwickler des Web-Front-Ends vermieden werden (HTML5 Spezifikation).
• Mögliche Lösung: Integrität des Web-Front-Ends durch Browser-Plog-Ins überprüfen.
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 24
Evaluation
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 25
Evaluation
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri
Funktionen HTML5 JavaScript JQuery&JQueryMobile
REST API HTTP/SSL
localStorage X X - - -
AppCache X X - - -
Datei Lesen X X - - -
Browser Passwortverwaltung Zugriff
- X - - -
Key-Server Zugriff
- X X X X
Daten löschen - X X X X
Daten einfügen - X X X X
Login&Logout - X X X X
Kryptographie - X - - -
26
Evaluation
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri
Funktionen Lokal Web-Server
Firefox 1 IE 9 Chrome 18
Opera 11
localStorage X X X X X X
AppCache X X X - X X
Datei Lesen X X X X X X
Browser Passwortverwaltung Zugriff
X X X - - -
Key-Server Zugriff
X X X X X X
Daten löschen - X X X X X
Daten einfügen
- X X X X X
Login&Logout - X X X X X
Kryptographie X X X X X X
27
Evaluation
Was geschieht mit den verschlüsselten Daten, die von jemandem kopiert
werden können?
…warte noch < 20 Jahre damit…
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 28
Ausblick
• Modulerweiterungen und Verschlüsselungsverfahren• z.B. Kalender, Bilderverwaltung, Verwaltung von Notizen und E-
Mails• Public-Key-Verfahren und symmetrische Verschlüsselungsverfahren
• Datensuche durch Musteranwendung ermöglichen
• Implementierung der Web-Front-End Funktionen für den Offline-Modus• Durch den Einsatz vom localStorage oder sessionStorage
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 29
Ausblick
• Verwendung von weiteren HTML5-Schnittstellen• WebSockets für die Realisierung von Web-Applikationen für lokale
Ausführungen. Aktuelle werden WebSockets nicht von allen Browsern unterstützt
• HTML5-Tag keygen: Zur Erzeugung von Schlüsselpaaren für Publick-Key-Verfahren (nur für Formen (Forms) )
• Web Workers für größere Berechnungen (E-Mails, Bilder…)
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 30
Questions???
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 31
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 32
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 33
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 34
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 35
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 36
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 37
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 38
SMOLCS-Screenshots
26/06/2012 | Department 20 | Prof. Dr. Michael Weidner & Jan Peter Stotz | Amir Neziri 39