40
distPaste Dein Browser gehört zu meinem Pastebin! Möglichkeiten und Risiken von HTML5 Jan-Ole Malchow, M.Sc. Arbeitsgruppe Sichere Identität Fachbereich Mathematik & Informatik Freie Universität Berlin 21. Februar 2013

DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPasteDein Browser gehört zu meinem Pastebin! Möglichkeiten

und Risiken von HTML5

Jan-Ole Malchow, M.Sc.

Arbeitsgruppe Sichere IdentitätFachbereich Mathematik & Informatik

Freie Universität Berlin

21. Februar 2013

Page 2: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Inhalt

Hintergrund

Motivation

HTML5

distPaste

Offene Fragen

Ausblick

Fazit

Page 3: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Motivation

I Die Spatzen pfeifen es von den Dächern: HTML5 RocksI HTML5 steckt bereits in allen wichtigen Browsern

I Erste Frage: Was bietet HTML5?I Zweite Frage: Was ist möglich?

Page 4: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Motivation

Abbildung: Mehr als 75% der verwendeten Browser unterstützen HTML5(Quelle: http://www.statcounter.com)

Page 5: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Motivation

Abbildung: Überblick über HTML5 und verwandte Technologien.(Quelle: Peter Krönger, https://github.com/SirPepe/SpecGraph)

Page 6: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Was bietet HTML5?

I Für uns sind insbesondere die neuen Funktionen vonJavaScript interessant

I Auswahl besonders interessanter FunktionenI WebSockets API [3] / WebSocket Protocol [2]

I Cross-Origin Resource Sharing (CORS) [9]

I Web Storage API [4]

I Web Worker API [5]

Page 7: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Was ist möglich?

I JavaScript erhält Zugriff auf den NetzwerkstackI JavaScript kann Zugriffe über Domaingrenzen hinweg

ausführenI JavaScript erhält erweiterten, persistenten

SpeicherplatzI JavaScript kann im Hintergrund ausgeführt werden

Page 8: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Wir können komplexe Netzwerkanwendungen entwickeln!

Page 9: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Warum erzählt er uns das?

Page 10: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Warum erzählt er uns das?

Frage: Woher stammt ausgeführtes JavaScript?

Page 11: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Warum erzählt er uns das?

Der Benutzer weiß es nicht!

Page 12: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

HTML5

Warum erzählt er uns das?

Browser führen Code aus unbekannter Quelle aus

Page 13: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Inhalt

Hintergrund

Motivation

HTML5

distPaste

Offene Fragen

Ausblick

Fazit

Page 14: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Ein Beispiel für neue Anwendungen im Browser

distPaste - distributed Pastebin

Es tatsächlich zu bauen ist etwas Anderes als es zubeschreiben

Page 15: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Problemstellung

I Speichern von Textdaten in einer verteiltenInfrastruktur

I Ausschließlich native Browser TechnologieI Keine ExploitsI Anonymität der Veröffentlicher (gegenüber anderen

Nutzern)I Daten sollen vor Manipulation geschützt werden

Page 16: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Features

I Speicherung der Daten erfolgt auf den Rechnern derBenutzer

I Jeder Besucher der Webseite speichert automatischDaten

I Verschlüsselung der Daten

Page 17: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

SpeicherplatzTabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedenerQuellen zu speichern (2,5MB pro Node). Wir nehmen dabei eine durchschnittlicheWortlänge von fünf Buchstaben an.

Dataset Anzahl Worte Anzahl Nodes

Moby Dick 212.758 ≈ 0, 4→ 1

Wikileaks cablegate 261.276.536 ≈ 500

Wikipedia (de) 495.000.000 (2009) ≈ 950

Wikipedia (en) 2.100.000.000 (2012) ≈ 4000

Page 18: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Funktionsweise: VerbindungsaufbauI Benutzer öffnet Seite und lädt distPasteI DistPaste Script stellt Verbindung zum Server herI Browser wird Teil des Systems (Node)I DistPaste script übermittelt eventuell gespeicherte

Daten

Page 19: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Funktionsweise: SendenI Benutzer sendet DatenI Server vergibt IDI Server wählt Speicherort (Node)I Server übermittelt Daten an NodeI Server löscht Daten lokalI Server gibt ID an Benutzer zurück

Page 20: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Funktionsweise: AbrufenI Benutzer sendet IDI Server sucht SpeicherortI Server ruft Daten abI Server übermittelt Daten an Benutzer

Page 21: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPasteArchitektur

Webserver Webserver

Web Sockets Web Sockets

Web Sockets

Domain A Domain BW

eb S

ocke

ts

Local Storage

Local Storage Local Storage

Local StorageLocal Storage

Web Messaging

Replication

Web Sockets Web Sockets

Local StorageW

eb S

ocke

ts Web Sockets

Abbildung: Architektur des distPaste Systems mit cross-domain Replikation

Page 22: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Herausforderungen

I Adressieren von DatenI Auswahl von Nodes für DatenI ChurnI Domainbindung der DatenI Datensicherheit

Page 23: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Herausforderungen

I Adressieren von Daten - Zufällige achtstellige IDI (26 · 2 + 10)8 = 218.340.105.584.896 Datensätze

I Auswahl von Nodes für Daten - Zufällig durch ServerI Churn - Replikation (volle Kopie)I Domainbindung der Daten - Web Messaging oder

CORSI Datensicherheit - Hash-based message authentication

code (SHA1 / AES-256)

Page 24: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

ImplementierungI Client - JavaScript

I 50 Zeilen Code

I 33 kB

I Payload wird nachgeladen, direkt sichtbar sind nur 4Zeilen Code

I Server - node.js (JavaScript)I 400 Zeilen Code

I 3MB

Page 25: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

distPaste

Kompatibilität

Mac OS X Windows 7 Ubuntu 12.04 iOS 5.1Chrome X X X X

Firefox X X X -Safari X X X X

Opera X X X -

Page 26: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Inhalt

Hintergrund

Motivation

HTML5

distPaste

Offene Fragen

Ausblick

Fazit

Page 27: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Offene Fragen

Durch das Öffnen einer Webseite stellt der Benutzer demBetreiber der Seite eigene Ressourcen zur Verfügung.

I Namentlich Rechenzeit und Speicherplatz.I Zudem können Netzwerkverbindungen zu anderen

Systemen hergestellt werden.

Page 28: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Offene Fragen

I Wer ist verantwortlich für den gespeicherten Inhalt?I Anfangsverdacht

I Daten im Cache begründen Besitz [7]

Page 29: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Offene Fragen

I Wer ist verantwortlich für Netzwerkverbindungen?I Anfangsverdacht

I Störerhaftung [6]

I Beispiel: DDoS Angriff unter Führung vonAnonymous [8]

Page 30: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Offene Fragen

I Muss ein Nutzer informiert werde?I Datenspeicherung

I Nutzung von Rechenzeit

I Verbindungen

Wer muss informieren?

Page 31: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Inhalt

Hintergrund

Motivation

HTML5

distPaste

Offene Fragen

Ausblick

Fazit

Page 32: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Ausblick

I WebSockets und das Nachladen von Code ermöglich esWebseiten “live” zu verändern

I WebRTC [1] wird voraussichtlich ein browserbasiertesPeer-to-Peer Netzwerk ermöglichen

Page 33: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Inhalt

Hintergrund

Motivation

HTML5

distPaste

Offene Fragen

Ausblick

Fazit

Page 34: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Fazit

I Es hilft nur das Deaktivieren der FunktionenI Aktuell nicht komfortabel möglich

I Insbesondere nicht pro Seite möglich

I Die Vision vom Browser als Betriebssystem rückt sehrnahe und es müssen entsprechende Maßnahmenergriffen werden

Page 35: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Vielen Dank für die Aufmerksamkeit.

Page 36: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Quellen I

Adam Bergkvist, Daniel C. Burnett, Cullen Jennings,and Anant Narayanan.

WebRTC 1.0: Real-time Communication BetweenBrowsers.

Working draft, W3C, February 2012.

http://www.w3.org/TR/webrtc/.

I. Fette and A. Melnikov.

The WebSocket Protocol.

RFC 6455 (Proposed Standard), December 2011.

Page 37: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Quellen II

Ian Hickson.

The Web Sockets API.

Candidate recommendation, W3C, December 2011.

http://www.w3.org/TR/websockets/.

Ian Hickson.

Web Storage.

Candidate recommendation, W3C, December 2011.

http://www.w3.org/TR/webstorage/.

Page 38: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Quellen IIIIan Hickson.

Web Workers.

Last call wd, W3C, September 2011.

http://www.w3.org/TR/workers/.

Zivilkammer 8 Landgericht Hamburg.

Urheberrechtsverletzung: Haftung für offeneWLAN-Hotspots.

http://medien-internet-und-recht.de/pdf/vt_MIR_Dok._191-2006.pdf.

Abgerufen: 06.07.2012.

Page 39: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Quellen IV

Hanseatisches Oberlandesgericht Hamburg 2.Strafsenat.

Besitz kinderpornografischer Schriften: Betrachten vonaus dem Internet in den Arbeitsspeicher einesComputers geladenen Dateien als Unternehmen derBesitzverschaffung.

http://www.landesrecht.hamburg.de/ jportal/portal/page/bshaprod.psml? showdoccase=1&doc.id=KORE205092010 &st=ent.

Abgerufen: 06.07.2012.

Page 40: DeinBrowsergehörtzumeinemPastebin!Möglichkeiten … · 2013-03-01 · distPaste Speicherplatz Tabelle: Anzahl der notwendigen Nodes, um die Datenmenge verschiedener Quellen zu speichern

Quellen VUS-CERT.

Alert (TA12-024A): Anonymous DDoS Activity.

http://www.us-cert.gov/cas/techalerts/TA12-024A.html.

Abgerufen: 06.07.2012.

Anne van Kesteren.

Cross-Origin Resource Sharing.

W3c working draft, W3C, July 2010.

http://www.w3.org/TR/cors/.