Fakultät Informatik Institut für Systemarchitektur Lehrstuhl für Datenschutz und Datensicherheit Implementierung einer Software für datenschutzfreundliche Ad-hoc-Abstimmungen Verteidigung der Diplomarbeit Richard Wolsch richard.wolsch@gmx.de Betreuer: Dipl.-Inf. Benjamin Kellermann Betreuender Hochschullehrer: Dr.-Ing. Stefan Köpsell 17. Mai 2011
1 Anforderungsanalyse Szenario Schutzziele 2 Das Protokoll Angriffe Kryptografie 3 Server und Client Demo Ausblick Datenschutzfreundliche Ad-hoc-Abstimmungen 2
Szenario Anforderungsanalyse Szenario Schutzziele Datenschutzfreundliche Ad-hoc-Abstimmungen 3
Szenario Anforderungsanalyse Szenario Schutzziele Datenschutzfreundliche Ad-hoc-Abstimmungen 3
Szenario Anforderungsanalyse Szenario Schutzziele Datenschutzfreundliche Ad-hoc-Abstimmungen 3
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Schutzziele der Akteure Szenario Schutzziele Anonymität keine Zuordung zwischen Teilnehmer und Stimme Vertraulichkeit einzelne Stimmen der Teilnehmer geheimhalten schreibender Zugriff Wahlberechtigten die Teilnahme erlauben lesender Zugriff berechtigten Personen Einblick in das Ergebnis geben Integrität Manipulation von Stimmen entdecken korrekte Zählung aller Stimmen Voraussetzung Vertrauensbereich: Jeder Teilnehmer verwendet sein eigenes Abstimmungsgerät (Handy, Smartphone). Datenschutzfreundliche Ad-hoc-Abstimmungen 4
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Freigabe Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Freigabe Stimmenabgabe Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Freigabe Stimmenabgabe Ergebnisberechnung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Freigabe Stimmenabgabe Ergebnisberechnung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Freigabe Stimmenabgabe Ergebnisberechnung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Vorausberechnungen Freigabe Stimmenabgabe Ergebnisberechnung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll I Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer (Clients) Initiator (Server) Alice Bob Carol Ivan Vorausberechnungen Konfiguration Anmeldung Vorausberechnungen Freigabe Stimmenabgabe Ergebnisberechnung Datenschutzfreundliche Ad-hoc-Abstimmungen 5
Das Protokoll II Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer Antwort 1 Antwort 2 Antwort 3 Alice Bob Carol 2 0 1 Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 6
Das Protokoll II Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer Antwort 1 Antwort 2 Alice 1 0 0 Bob 1 0 0 Carol 0 0 1 2 0 1 Antwort 3 DC-Netz eine DC-Netzrunde pro Antwort Schlüsseltexte = Klartexte Anonymität begünstigt Manipulation der Stimmen Lösung: mehrere simultane DC-Netzrunden pro Antwort Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 6
Das Protokoll II Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer Antwort 1 Antwort 2 Alice 1 0 0 Bob 1 0 0 Carol 0 0 1 2 0 1 Antwort 3 DC-Netz eine DC-Netzrunde pro Antwort Schlüsseltexte = Klartexte Anonymität begünstigt Manipulation der Stimmen Lösung: mehrere simultane DC-Netzrunden pro Antwort Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 6
Das Protokoll II Anforderungsanalyse Das Protokoll Angriffe Kryptografie Teilnehmer Antwort 1 Antwort 2 Alice 1 0 0 Bob 1 0 0 Malory 0-1 2 2-1 2 Antwort 3 DC-Netz eine DC-Netzrunde pro Antwort Schlüsseltexte = Klartexte Anonymität begünstigt Manipulation der Stimmen Lösung: mehrere simultane DC-Netzrunden pro Antwort Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 6
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit I min. Erkennungswahrscheinlichkeit für ( 1)-Angriff 1 0.8 0.6 0.4 0.2 3 Teilnehmer 0 0 20 40 60 80 100 120 140 simultane Runden Datenschutzfreundliche Ad-hoc-Abstimmungen 7
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit I min. Erkennungswahrscheinlichkeit für ( 1)-Angriff 1 0.8 0.6 0.4 0.2 3 Teilnehmer 25 Teilnehmer 0 0 20 40 60 80 100 120 140 simultane Runden Datenschutzfreundliche Ad-hoc-Abstimmungen 7
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit I min. Erkennungswahrscheinlichkeit für ( 1)-Angriff 1 0.8 0.6 0.4 0.2 3 Teilnehmer 25 Teilnehmer 100 Teilnehmer 0 0 20 40 60 80 100 120 140 simultane Runden Datenschutzfreundliche Ad-hoc-Abstimmungen 7
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit II simultane Runden 160 140 120 100 5% 80 60 40 20 0 0 20 40 60 80 100 Anzahl der Teilnehmer 80% Erkennungswahrscheinlichkeit Datenschutzfreundliche Ad-hoc-Abstimmungen 8
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit II simultane Runden 160 ( 1)-Angriff 2 3 4 140 120 100 5% 80 60 40 20 0 0 20 40 60 80 100 Anzahl der Teilnehmer 80% Erkennungswahrscheinlichkeit Datenschutzfreundliche Ad-hoc-Abstimmungen 8
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit II simultane Runden 160 ( 1)-Angriff 2 3 4 140 120 100 5% 80 60 40 20 0 0 20 40 60 80 100 Anzahl der Teilnehmer 80% Erkennungswahrscheinlichkeit Datenschutzfreundliche Ad-hoc-Abstimmungen 8
Das Protokoll Angriffe Kryptografie Minimale Erkennungswahrscheinlichkeit II simultane Runden 160 ( 1)-Angriff 2 3 4 140 120 100 5% 80 60 40 10% 20 1 2 3 4 5 6 7 8 9 0 0 20 40 60 80 100 Anzahl der Teilnehmer 80% Erkennungswahrscheinlichkeit Datenschutzfreundliche Ad-hoc-Abstimmungen 8
Das Protokoll Angriffe Kryptografie Rechenzeit kryptografischer Operationen Schlüssel generieren (DH, RSA) DH-Schlüsselvereinbarung Rundenschlüssel erzeugen Stimme verschlüsseln (Addition modn) Stimme signieren (RSA) Signaturen verifizieren (RSA) Ergebnis berechnen (Addition modn) Datenschutzfreundliche Ad-hoc-Abstimmungen 9
Das Protokoll Angriffe Kryptografie Rechenzeit kryptografischer Operationen Schlüssel generieren (DH, RSA) DH-Schlüsselvereinbarung Rundenschlüssel erzeugen Stimme verschlüsseln (Addition modn) Stimme signieren (RSA) Signaturen verifizieren (RSA) Ergebnis berechnen (Addition modn) Anteil an Gesamtrechenzeit 10% 50% Messung: 50 Teilnehmer, 5 Antwortmöglichkeiten Datenschutzfreundliche Ad-hoc-Abstimmungen 9
Das Protokoll Angriffe Kryptografie Rechenzeit kryptografischer Operationen Schlüssel generieren (DH, RSA) DH-Schlüsselvereinbarung Rundenschlüssel erzeugen Stimme verschlüsseln (Addition modn) Stimme signieren (RSA) Signaturen verifizieren (RSA) Ergebnis berechnen (Addition modn) Anteil an Gesamtrechenzeit 10% 50% Messung: 50 Teilnehmer, 5 Antwortmöglichkeiten Datenschutzfreundliche Ad-hoc-Abstimmungen 9
Das Protokoll Angriffe Kryptografie Rechenzeit kryptografischer Operationen Schlüssel generieren (DH, RSA) DH-Schlüsselvereinbarung Rundenschlüssel erzeugen Stimme verschlüsseln (Addition modn) Stimme signieren (RSA) Signaturen verifizieren (RSA) Ergebnis berechnen (Addition modn) Anteil an Gesamtrechenzeit 10% 50% Messung: 50 Teilnehmer, 5 Antwortmöglichkeiten Datenschutzfreundliche Ad-hoc-Abstimmungen 9
Das Protokoll Angriffe Kryptografie Rechenzeit kryptografischer Operationen Schlüssel generieren (DH, RSA) DH-Schlüsselvereinbarung Rundenschlüssel erzeugen Stimme verschlüsseln (Addition modn) Stimme signieren (RSA) Signaturen verifizieren (RSA) Ergebnis berechnen (Addition modn) Anteil an Gesamtrechenzeit 10% 50% Messung: 50 Teilnehmer, 5 Antwortmöglichkeiten Rechenzeit abhängig von Hardware und Teilnehmerzahl Wahl der krypt.parameter: Sicherheit Geschwindigkeit Datenschutzfreundliche Ad-hoc-Abstimmungen 9
Server und Client Anforderungsanalyse Server und Client Demo Ausblick Server Java-Webanwendung Konfiguration der Abstimmungen Verwaltung der Teilnehmer und Stimmen Ergebnisberechnung und -validierung Visualisierung der Ergebnisse Datenschutzfreundliche Ad-hoc-Abstimmungen 10
Server und Client Anforderungsanalyse Server und Client Demo Ausblick Server Java-Webanwendung Konfiguration der Abstimmungen Verwaltung der Teilnehmer und Stimmen Ergebnisberechnung und -validierung Visualisierung der Ergebnisse Client Stimmenabgabe prototypische Java2ME-GUI Ergebnisberechnung, Validierung und Visualisierung fehlt noch! Datenschutzfreundliche Ad-hoc-Abstimmungen 10
Server und Client Anforderungsanalyse Server und Client Demo Ausblick Server Java-Webanwendung Konfiguration der Abstimmungen Verwaltung der Teilnehmer und Stimmen Ergebnisberechnung und -validierung Visualisierung der Ergebnisse Client Stimmenabgabe prototypische Java2ME-GUI Ergebnisberechnung, Validierung und Visualisierung fehlt noch! Netzwerk Kommunikation über Bluetooth (Bluecove, Java2ME-API) Datenschutzfreundliche Ad-hoc-Abstimmungen 10
Demonstration der Software Server und Client Demo Ausblick Datenschutzfreundliche Ad-hoc-Abstimmungen 11
Ausblick Anforderungsanalyse Server und Client Demo Ausblick Ergebnis auf dem Client Ergebnisberechnung, Validierung und Visualisierung Android, iphone & Co ausgereifte GUI für diverse Client-Plattformen ECDH Diffie-Hellman auf Basis elliptischer Kurven Identifikationsphase optionales Aufdecken bei Angriffen WLAN-Unterstützung Bluetooth nicht für viele Teilnehmer geeignet Datenschutzfreundliche Ad-hoc-Abstimmungen 12
Vielen Dank! Anforderungsanalyse 1 Anforderungsanalyse Szenario Schutzziele 2 Das Protokoll Angriffe Kryptografie 3 Server und Client Demo Ausblick Datenschutzfreundliche Ad-hoc-Abstimmungen 13
Datenschutzfreundliche Ad-hoc-Abstimmungen 14
Angriff erkennen (einfaches DC-Netz) Teilnehmer Stimme Alice 1 Bob 1 2 Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 15
Angriff erkennen (einfaches DC-Netz) Teilnehmer Stimme Alice 1 Bob 1 Mallory 1 1 Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 15
Angriff erkennen (einfaches DC-Netz) Teilnehmer Stimme Teilnehmer Stimme Alice 1 Bob 1 Mallory 1 1 Alice 1 Bob 0 Mallory 1 0 Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 15
Angriff erkennen (einfaches DC-Netz) Teilnehmer Stimme Teilnehmer Stimme Teilnehmer Stimme Alice 1 Bob 1 Mallory 1 1 Alice 1 Bob 0 Mallory 1 0 Alice 0 Bob 0 Mallory 1 1 Quelle: Dudle-Protokoll (B. Kellermann 2010), DC-Netz (D. Chaum 1988) Datenschutzfreundliche Ad-hoc-Abstimmungen 15
Angriff erkennen (DC-Netz mit simultanen Runden) Teilnehmer Stimme Teilnehmer 1. Runde 2. Runde 3. Runde Alice 1 Bob 1 Mallory 1 1 Alice 1 0 0 Bob 0 0 1 Datenschutzfreundliche Ad-hoc-Abstimmungen 16
Angriff erkennen (DC-Netz mit simultanen Runden) Teilnehmer Stimme Teilnehmer 1. Runde 2. Runde 3. Runde Alice 1 Bob 1 Mallory 1 1 Alice 1 0 0 Bob 0 0 1 Mallory 0 1 0 1 1 1 = 1 Datenschutzfreundliche Ad-hoc-Abstimmungen 16
Simultane DC-Netzrunden Ē 1 Ē 4 Ē 5 Ē 1 Ē 1 Ē 2 Ē 2 Ē 3 Ē 2 Ē 3 Datenschutzfreundliche Ad-hoc-Abstimmungen 17
Simultane DC-Netzrunden υ P Emin (υ) = ( 1) i+1 i=1 ( ) ( υ 1 i ) P 1 i l Datenschutzfreundliche Ad-hoc-Abstimmungen 18
DC-Netz Schlüssel erzeugen ( ) h decr dhpi,p k pi,p j,o,λ = j (uuid o λ) mod n ( ) h decr dhpi,p j (uuid o λ) mod n wenn p i < p j sonst Datenschutzfreundliche Ad-hoc-Abstimmungen 19
DC-Netz Verschlüsselung d p,o,λ = v p,o,λ + P 1 i=0,p i p k p,pi,o,λ mod n Datenschutzfreundliche Ad-hoc-Abstimmungen 20
DC-Netz Ergebnisberechnung s o = = = l 1 λ=0 l 1 λ=0 P 1 i=0 P 1 i=0 P 1 i=0 d pi,o,λ mod n v pi,o,λ mod n v pi,o mod n Datenschutzfreundliche Ad-hoc-Abstimmungen 21
Ausstattung von Handys 39 Befragte 23 WLAN 30 Bluetooth 24 Java oder Java2ME 19 Browser mit JS Datenschutzfreundliche Ad-hoc-Abstimmungen 22