An der Gründungsversammlung der Piratenpartei Schweiz am 12. Juni 2009 erfuhren wir hautnah, mit welchem Aufwand die Organisation einer Versammlung für über hundert Personen verbunden ist. Darum gründeten wir noch am selben Tag eine Arbeitsgruppe «E-Voting». Diese sollte prüfen, wie man mithilfe eines elektronischen Wahlsystems schnellere Reaktionszeiten für demokratisch legitimierte Entscheidungen erreichen und die Partei dadurch handlungsfähiger machen könnte.
Wir verglichen zahlreiche Systeme. Killerkriterien waren dabei Plattformunabhängigkeit, Transparenz, Sicherheit und Anonymität. Transparenz soll jedem Abstimmenden die Überprüfung der Abstimmungsresultate erlauben, damit man den Resultaten auch vertrauen kann. Die Sicherheit soll gewährleisten, dass eine Abstimmung konsistent ist und die Kommunikation und Abstimmungsdaten geheim und vor Manipulationen geschützt sind. Die Anonymität ist wichtig, da nicht jeder Pirat als solcher in der Öffentlichkeit wahrgenommen werden will. Und aus der Praxis der Landsgemeinden wissen wir, dass offene Abstimmungen die Resultate verfälschen kann. Durch das Kriterium der Transparenz kamen eigentlich nur Open-Source-Lösungen in Frage. Webanwendungen schieden aus, da diese oft über ihre zentrale Installation verwundbar sind. Ein sicheres und transparentes System ist das Wahlsystem der Debian-Community mit GPG-signierten E-Mail-Wahlzetteln. Nur leider ist es nicht anonym.
In die engere Auswahl kamen schliesslich Helios und Adder. Helios schien uns zu umständlich in der Bedienung. Bei Adder hatten wir das Problem, dass es nicht weiterentwickelt wird und in C++ geschrieben ist. Eine Sprache die in unserem Team leider niemand genügend gut beherrscht. Die Adder-Entwicklern hatten ein zehnseitiges Papier veröffentlicht, in dem sie die verwendete Mathematik erklären. Unsere Teammitglieder Stefan Thöni und Thomas Bruderer hatten genug mathematische Kenntnisse, um es zu verstehen, und trauten sich zu, das Verfahren in einem in C# geschriebenen Client zu implementieren.
Neben der Software selbst gehört zu einer E-Voting-Lösung immer auch ein Umfeld aus rechtlicher Verankerung in den Partei-Statuten und eine Gewaltenteilung der an der Durchführung der Abstimmung beteiligten Organe. Bereits an der ersten außerordentlichen Piratenversammlung (PV) am 23. August konnten wir die Parteimitglieder von der Notwendigkeit einer entsprechenden Statutenänderung überzeugen. So führten wir die neuen Parteiorgane der Urabstimmung, die Geschäftsprüfungskommission (GPK) und die Abstimmungsbeauftragten ein. Dabei werden der Urabstimmung explizit einige Rechte verweigert: Auch weiterhin kann nur die PV die Statuten ändern und den Vorstand wählen. Die Urabstimmungen werden von fünf Abstimmungsauthoritäten (AA) organisiert: Zwei Mitglieder des Vorstands, die zwei Abstimmungsbeauftragten und ein Mitglied der GPK. Die Ämterkumulierung ist natürlich verboten. Damit eine Urabstimmung gültig ist, muss ein Quorum (Wahlbeteiligung) von 10 % erreicht werden.
An der ersten regulären PV am 5. Dezember 2009 wurden dann die neuen Posten besetzt. Seit Ende April können wir erste Alpha-Tests mit PiVote durchführen und sind zuversichtlich, dass wir an der nächsten außerordentlichen PV am 18. September mit dem Zertifizieren der Mitglieder beginnen können.
Wie funktioniert nun unser PiVote? Mitmachen kann jeder Pirat der über ein gültiges PiVote-Zertifikat verfügt. Dieses erhält er, wenn drei AA seine Identität durch Unterschrift auf dem ausgedruckten Zertifikatsantrag bestätigt haben und der Aktuar die Bezahlung des Mitgliederbeitrags bestätigt hat. Der Antrag wird für als Papertrail archiviert und es werden darauf auch das Ablaufen oder der Wiederruf des Zertifikats vermerkt. Wird eine Abstimmung von einem Piraten beantragt, generieren die fünf AA zusammen einen öffentlichen Schlüssel und erhalten einen geheimen Teilschlüssel. Nimmt nun ein Pirat an der Abstimmung teil, verschlüsselt er seine Stimme mit seinem Zertifikat. Der Server prüft die Stimme per Zero-Knowledge-Beweis auf Gültigkeit und stellt dem Abstimmenden einen Beleg für die Stimme aus. Ist die Abstimmung abgeschlossen, werden alle Stimmen miteinander verrechnet. Dabei erlaubt uns die eingesetzte homomorphe Verschlüsselung (erklären!) das Zusammenzählen der Resultate, ohne die Stimme entschlüsseln zu müssen. Danach müssen vier der fünf AAs das geheime Resultat teilentschlüsseln, bevor das Resultat ganz entschlüsselt werden kann. Danach kann jeder Teilnehmer die Abstimmung prüfen, indem er alle Stimmen herunterlädt, prüft ob seine Stimme dabei ist und er zum selben Resultat kommt.
Alle diese komplizierten Schritte werden vom PiVote-Client über eine simple Oberfläche im Assistenten-Stil zur Verfügung gestellt. Der PiVote-Server enthält nur die Datenbank der gültigen Zertifikatsignaturen, die signierten Abstimmungen und die verschlüsselten Stimmen. Natürlich können heute noch als sicher geltende kryptographische Algorithmen durch neu entdeckte Schwachstellen angreifbar werden. Dann müssten wir auf neue Verfahren setzen. Die größten Gefahren liegen aber beim Menschen. Die Nutzer können Opfer von Identitätsdiebstahl werden. Verlieren sie ihr Zertifikat, sollen sie es umgehend sperren lassen. Um das Risiko von organisatorischem Missbrauch zu minimieren, wird dieses Privileg auf die fünf AA aufgeteilt. Der Ausfall einer AA verhindert das Auszählen nicht.
Weitere Details zu PiVote finden sich in unserem Forum im FAQ.
Autor: Simon Rumpf
Redaktionsmitglied Michael Renner
Meine Karriere als Redakteur bei der Piratenpartei startete 2009 beim Bundesnewsletter, aus dem 2010 die Flaschenpost hervorging. Im Sommer 2012 wurde ich stellvertretender Chefredakteur, Anfang 2014 Chefredakteur. Da die unzähligen Aufgaben an der Spitze der Flaschenpost einen Vollzeitjob in der Freizeit mit sich bringen, machte ich nach zwei guten, aber auch stressigen Jahren zwei Schritte zurück und gab die Redaktionsleitung ab. Die gewonnene Freizeit wird in die Familie und mein zweites großes Hobby, den Amateurfunk, investiert.