Skip to content

Stimmanonymität

Marius Krüger edited this page Jan 10, 2019 · 28 revisions

1. Präambel

Der gemeinnützige Verein DEMOCRACY Deutschland e.V. treibt mit seiner gleichnamigen App DEMOCRACY die Entwicklung einer öffentlichen Beteiligungsinfrastruktur voran, die das Funktionieren einer lebendigen Demokratie begünstigen soll. Als Nutzer informiert Sie die App DEMOCRACY dafür über die aktuellen Bundestagsabstimmungen und ermöglicht Ihnen eine eigene direkte Abstimmung. Aus Sicht des DEMOCRACY Deutschland e.V. sind die dabei entstehenden Nutzerdaten keine handelbaren Wirtschaftsgüter, sondern im Sinne des Grundgesetzes zu schützen. Weiterhin sind wir der Überzeugung, dass die größtmögliche Vermeidung (Konzept der Datenvermeidung) und der Schutz Ihrer Daten (Konzept des Datenschutzes) langfristig wichtig für Ihre informationelle Selbstbestimmung sind. Die Aufrechterhaltung des Abstimmungs- bzw. Wahlgeheimnis ist insofern zentraler Bestandteil der DNA der DEMOCRACY App.

Dieses Konzeptpapier erklärt Ihnen, welche Nutzerdaten („Profiling Daten“) die App DEMOCRACY über Sie (nicht) sammelt, und wie die Software das Wahlgeheimnis aufrechterhält. Das Wahlgeheimnis ist eine der zentralen Anforderungen an ein Wahlverfahren. Das nachstehende Bild zeigt eine unvollständige Liste der Anforderungen.

2. Ein kurzer, aber notwendiger Exkurs

Bei der klassischen Papierwahl, wie sie in Deutschland für politische Wahlen verwendet wird, wird dem Wähler die Möglichkeit gegeben, durch ein Kreuz auf einem Stimmzettel, den er anschließend in eine Urne wirft, seine Stimme abzugeben.

Gelöst werden bei einem solchen sogenannten Wahlverfahren also mindestens 2 Probleme:
(1) das Urnenbuchproblem und (2) das Auszählungsproblem.

Während sich das Urnenbuchproblem mit der Frage beschäftigt: „Wer darf an der Abstimmung teilnehmen?“ und die Berechtigten eben im sogenannten Urnenbuch führt, befasst sich zweiteres Problem damit, dass die von Berechtigten abgegebenen Stimmen unter der Wahrung des Wahlgeheimnis (Anonymität) korrekt und nachvollziehbar (Nachvollziehbarkeit) ausgezählt werden.

Bezogen auf das Beispiel der klassischen Papierwahl, bedeutet dies, dass der/die Abstimmungsberechtigte zunächst seine Berechtigung im Urnenbuch durch die Wahlkommission prüfen lassen muss (Lösung des Urnenbuchproblems auf Basis der Wählerkartei), bevor er auf einem vorher leeren Stimmzettel, den er in einer Wahlkabine ausfüllt und anschließend in die Urne wirft, durch ein Kreuz, seine Stimme anonym abgibt. Der Wähler kann sich dabei selbst davon überzeugen, dass sein Stimmzettel in der Urne gelandet ist - er hat ihn schließlich selbst hineingeworfen - und durch Wahlbeobachtung kann sichergestellt werden, dass das Wahlergebnis richtig ausgezählt wird.

Wird nun diese Art der Stimmabgabe durch einen Wahlcomputer ersetzt oder verläuft sogar dezentral über das Internet, entstehen mehrere Probleme und Zielkonflikte, die es zu lösen gilt.

Zum einen ist diese oben beschriebene Nachvollziehbarkeit durch Wahlbeobachtung so nicht mehr gegeben, was bedeutet, dass neue Maßnahmen zum Erhalt der verifizierbaren Korrektheit der Wahl herangezogen werden müssen; zum anderen verschärft sich dabei das vom klassischen Papierwahlsystem durch (Medien-)Bruch gelöste Problem der Interdependenz des Urnenbuch- mit dem Auszählungsproblem.

Wenn wir uns zurückerinnern, bedeutet Wahlgeheimnis, dass während und nach einer Wahl keine Information bekannt werden darf, die darauf schließen lässt, was ein Wähler gewählt hat. Im Konkreten geht es dabei also genau um die Trennung von Person und Stimme in Urnenbuch und Auszählung. Erfolgt eine Stimmabgabe nun digital, ist diese Trennung konzeptuell nicht mehr sauber, denn ggfs. könnte Ihre Stimmabgabe per digitaler Spur zu Ihnen zurückverfolgt werden.

3. Wie wird die Stimmanonymität gewährleistet?

Wie also hält die Software DEMOCRACY nun Ihr Wahlgeheimnis aufrecht, wenn in der digitalen Welt doch alles eine Spur hinterlässt?

Unser Konzept sieht vor, jede Ihrer Abstimmungsentscheidungen (Ja, Enthaltung, Nein) zu einem Papier von Ihren personenbezogenen Identifikationsdaten zu trennen. Um für die dazugehörigen technischen Begrifflichkeiten ein besseres Verständnis zu erlangen, werfen wir gemeinsam einen Blick auf die Software-Architektur des DEMOCRACY-Diensts.

Weil bundestag.de (1) keine maschinenlesbare API zum Auslesen aller parlamentarischen Informationen für die Zivilgesellschaft bereitstellt, haben wir mit bundestag.io (2) einen eigenen Open-Data-Service geschaffen, der durch ständiges Abgreifen der DIP-21-Parlamentsdatenbank diese Informationen sammelt und strukturiert aufbereitet anbietet.

Unser eigentliche Dienst, die DEMOCRACY App, splittet sich wiederum in 2 Teile, den DEMOCRACY Application Server (3) und die eigentliche Applikation auf dem Handy, den DEMOCRACY Application Client (4). Während der Application Server auf der einen Seite als Mittler für die Parlamentsdaten zwischen bundestag.io (Datenquelle) und dem Application Client (Datenanzeiger) dient (Bundestag.io ⇆ Application-Server), ist dieser auf der anderen Seite auch für die Dokumentierung der Nutzeraktivitäten (Abstimmungsentscheidungen,...) sowie deren Identifikation als Abstimmungsberechtigte zuständig.

3.1 Identifikation

Eine zentrale Anforderung an ein Wahlverfahren ist, neben der Aufrechterhaltung des Wahlgeheimnis, die sogenannte 'Integrität'. Integrität bedeutet, dass bei einer Wahl/Abstimmung nur diejenigen Stimmen gezählt werden dürfen, die von wahlberechtigten Wählern abgegeben wurden. Es dürfen keine Stimmen hinzugefügt, gelöscht oder verändert werden. Daraus ergeben sich 2 Notwendigkeiten: 1. die eindeutige Identifikation der Wahlberechtigten und 2.) die überprüfbare, unter Aufsicht mehrerer Parteien durchgeführte Auszählung der abgegebenen Stimmen. In folgenden Abschnitt beschäftigen wir uns mit der (eindeutigen) Identifikation.

Da uns von DEMOCRACY Deutschland e.V. keine Wählerkartei vorliegt, haben wir uns dafür entschieden, das sogenannte Urnenbuchproblem heuristisch zu lösen und eine deutsche Handynummer (in Kombination mit einer Geräte-ID) als Schlüsselidentifikator zu verwenden.

Beim ersten erfolgreichen Start des DEMOCRACY Application Client legt der DEMOCRACY Application Server, basierend auf der verschlüsselten Handy-Identifikationsnummer (Geräte-ID) eine Nutzeridentität an. Diese wird in einem Token (JWT) verschlüsselt zurück an das Mobiltelefon gegeben und auf diesem hinterlegt.

Danach kann jeder Nutzer im Application Client eine Anfrage auf Registrierung zum Abstimmen (Verifikation) stellen. Diese Registrierung erfordert die Angabe einer deutschen Handynummer. DEMOCRACY Deutschland e.V. übermittelt diese Handynummer zusammen mit einem generierten Verifikationsschlüssel daraufhin an den SMS-Service-Provider SMSFlatrate (smsflatrate.net, Kloppe Media, Ansbacher Str. 85, 91541 Rothenburg), der den Nutzer per SMS über seinen Verifikationsschlüssel unterrichtet. Die Handynummer und die Device ID werden verschlüsselt in einer Datenbank des Vereins abgelegt; eine weitere Verwendung der Handynummer und Device ID ist insofern ausgeschlossen. Nach Eingabe des per SMS erhaltenen Verfikationscodes erneuert sich das JWT-Token und der Nutzer gilt als verifiziert.

Wir haben das Authentifizierungs- und Verifikationssverfahren für Sie an anderer Stelle ausführlich dokumentiert.

3.2 Dokumentation der Nutzeraktivitäten

Wenn wir nun davon sprechen, dass unser Konzept vorsieht, jede Ihrer konkreten Nutzeraktivitäten (Upvote, Abstimmungsentscheidung) von Ihren personenbezogenen Identifikationsdaten zu trennen, bedeutet das nichts anderes als eine sogenannte 'Profiling-Daten-Vermeidung'.

In der praktischen Umsetzung sieht dieses Konzept also eine Trennung zwischen Identität und inhaltlicher Aktivität eines Nutzers vor. Wie genau kann man sich das vorstellen?

3.2.1 Abstimmen

Der authentifizierte Nutzer sendet sein Authentifizierungstoken (JWT), den Vorgang (#P), zu dem er abstimmen möchte und seine Stimme(Ja/Nein/Enthaltung) über eine SSL-verschlüsselte Verbindung an den Server.

Der Server prüft daraufhin, ob der Nutzer, dessen Token er erhalten hat, bereits für den entsprechenden Vorgang abgestimmt hat. Hat der Nutzer noch nicht abgestimmt, speichert der Server, dass der Nutzer nun abgestimmt hat und zählt das akkumulierte Ergebnis des Vorgangs im entsprechenden Bereich (hier Enthaltung) um eine Stimme nach oben. Danach prüft der Server, ob der Nutzer schon eine Aktivität (Upvote) auf dem Vorgang hatte. Hatte der Nutzer noch nicht mit dem Vorgang interagiert, speichert der Server eine Aktivität für den Nutzer zu dem Vorgang. Die neuen Werte des Vorgangs werden zurück an das Endgerät des Nutzers gegeben und die Darstellung aktualisiert. Das Endgerät speichert die Stimme des Nutzers, so dass die konkrete Stimme dem Nutzer auf seinem Gerät angezeigt werden kann.

Das dazugehörige schematische Datenbankmodell können Sie sich im Detail hier ansehen.

3.2.2 Anmerkungen zu diesem Verfahren

Entscheidend bei diesem Verfahren ist also, dass eine Quittung ihrer Abstimmungsentscheidung lediglich lokal auf Ihrem Handy (im Application Client) verbleibt, während Ihre Stimme serverseitig nur akkumuliert gespeichert wird, indem in der procedurespezifischen Votes-Table eine Stimme (in der Ja-Nein- bzw. Enthaltungsspalte) auf das vorherige Ergebnis addiert und in der procedurespezifischen Voters-Tabelle Ihre User-ID hinterlegt wird (vgl. Abbildung).

Diese Umsetzung realisiert die Trennung zwischen Identität und Inhalt der Aktivität eines Nutzers und damit eine serverseitige Profileng-Daten-Vermeidung.

Aber wie sieht das Ganze eigentlich aus, wenn der Nutzer, wie ab dem 02/2019 möglich, zusätzlich seinen Wahlkreis hinterlegt? Wird damit diese strikte Trennung zwischen Identität und Stimme nicht (zumindest teilweise) aufgehoben, wenn ein Wahlkreis-Ergebnis angezeigt wird?

3.2.3 Wahlkreis-Community-Ergebnisse

Ein neues Feature von DEMOCRACY+ (02/2019) soll das sogenannte Wahlkreis-Community-Ergebnis sein, vgl. #626. Die Idee: Der Nutzer hinterlegt seinen Wahlkreis in seinem Profil und bekommt neben dem gesamtdeutschen Community-Ergebnis auch das Abstimmungsverhalten seines geografischen Wahlkreises angezeigt. Weiterhin wird über diese Wahlkreiseingabe auch der Direktkandidaten-Wahl-O-Meter #622 möglich.

Wie wirkt sich diese zusätzliche 'Identitätsinformation des Nutzers' im vorgestellten Verfahren auf die Stimmanonymität aus?

Der authentifizierte Nutzer sendet sein Authentifizierungstoken (JWT), den Vorgang (#P), zu dem er abstimmen möchte, seine Stimme(Ja/Nein/Enthaltung) und seinen Wahlkreis (hier WK 22) über eine SSL-verschlüsselte Verbindung an den Server. Seinen Wahlkreis kennt sein Application Client durch die Eingabe seiner PLZ. Dem Application Server ist diese Information allerdings nicht bekannt; sie wird nicht im 3.1 beschriebenen Identitätsprofil hinterlegt und gilt damit auch nicht als Identitätsinformation i.S. unserer Klassifikation.

Analog zum oben beschriebenen Verfahren, werden die übermittelten Informationen vom Server in die Votes- und die Voters-Tabelle aufgesplittet. Während in der Voters-Tabelle durch das Eintragen der ID – ohne Veränderung zum oben vorgestellten Vefahren – erfasst wird, dass der Nutzer abgestimmt hat, hat sich die Votes-Tabelle dahingehend geändert, dass die Stimmen in sogenannten 'Buckets' abgelegt werden. Die 'Buckets' stellen Untertabellen dar, in denen die kumulierten Ergebnisse der einzelnen Wahlkreise geführt werden. In Summe sind 300 Buckets möglich: 299 Wahlkreise und 'keine Wahlkreisangabe'. Das gesamtdeutsche Communityergebnis ergibt sich demnach durch die Addition aller Unterergebnisse.

3.2.4 Anmerkungen zu diesem Verfahren

Der Application Server kennt bei diesem Verfahren alle kumulierten Bucket-Ergebnisse nach Mehrheitsverhältnissen (Votes-Tabelle) sowie die Liste aller Abstimmenden (Voters-Tabelle). Er weiß insofern auch, wie viele aus welchem Wahlkreis für diese Prozedur abgestimmt haben. Die Zuordnung, wie ein einzelner Nutzer abgestimmt hat, ist für ihn (wie bei 3.2.1) allerdings nicht möglich.

4. Kritische Würdigung

Der Vollständigkeit halber sei gesagt, dass die vorgestellten Verfahren in Grenzfällen zur Deanonymisierung führen, nämlich...

  • Die Anonymität der Stimme des Nutzers ist nur so sicher, wie das Handy, welches er benutzt
  • Notwendige Anonymitätsbedingunung für das Verfahren ist natürlich, dass der Zeitpunkt einer Stimmabgabe serverseitig nicht erfasst wird (kein Server-Traffic-Logging, keine DB-Time-Stamps), denn ansosten wäre eine Rückverfolgbarkeit über die Zeit prinzipiell möglich
  • Die konkrete Stimme wird (verschlüsselt) über das Netzwerk übertragen wird. Kann eine dritte Person den Netzwerkverkehr belauschen und entschlüsseln, verliert die Stimme ihre Anonymität.
  • Weiterhin kennt der Server die Stimme des Nutzers für die Zeit des oben beschriebenen Prozesses. Danach ist die Stimme anonym, vorausgesetzt es sind genügend diverse Stimmen (min. 2 diverse Stimmen) eingegangen.

Der Vollständigkeit halber sei überdies gesagt, dass dieses Verfahren für die Ergebnissicherheit, bzw. die (individuelle wie globale) Verifizierbarkeit des korrekten Auszählungsergebnis (eine weitere Anforderung an ein Wahlverfahren) noch keine adäquate Lösung bietet.

Clone this wiki locally