White Paper zur Auditierbarkeit der E-Voting-Software
Viktoria König
Bern, Zürich im Januar 2025
Mit der Unterstützung von Xavier Monnat, Product Owner Solution & Market E-Voting bei der Schweizerischen Post, Denis Morel, vormals Head of E-Voting bei der Schweizerischen Post, heute Geschäftsführer und Partner bei der mabuco GmbH.
Bezug dieses White Papers: pascal.sieber@sieberpartners.com | PDF-Download
Ausgangslage
Vor über 20 Jahren haben die Politik und Verwaltung der Schweiz damit begonnen, sich mit der Frage zu befassen, inwiefern es erwünscht und möglich ist, Volksabstimmungen und Wahlen durchgängig zu digitalisieren. Bei der Auswertung und Aufbereitung der Resultate sind schon seit langer Zeit digitale Hilfsmittel im Einsatz, dagegen war die Stimmabgabe noch nicht digitalisiert.
Nach verschiedenen Analysen, mehreren Versuchen über 20 Jahre lang und einem Stopp im Jahr 2019 hat der Bundesrat an seiner Sitzung vom 25. Mai 2022 die teilrevidierte Verordnung über die politischen Rechte (VPR) in Kraft gesetzt. Er hat davon Kenntnis genommen, dass die totalrevidierte Verordnung der Bundeskanzlei über die elektronische Stimmabgabe (VEleS) gleichzeitig in Kraft tritt. Auf dieser Grundlage können Kantone beim Bundesrat beantragen, im Rahmen des Versuchsbetriebes die elektronische Stimmabgabe (E-Voting) der Bevölkerung anzubieten.
Die Schweizerische Post hat, ausgerichtet auf die rechtlichen Grundlagen des Bundes, ein E-Voting-System für die Schweiz entwickelt. Dieses System bietet sie den Kantonen für die elektronische Durchführung von Volksabstimmungen und Wahlen an. Ein Teil des Systems wird selbständig von den Kantonen betrieben. Die Schweizerische Post stellt den Betrieb des Serverteils, zum Beispiel des Abstimmungsportals, sicher. Im März 2023 wurde die Grundbewilligung für den Einsatz dieses Systems der Schweizerischen Post erteilt.
Dieses System sowie alle damit zusammenhängenden Abläufe und Tätigkeiten (inkl. Entwicklungsprozess) müssen in höchstem Mass resilient gegenüber Fälschungsversuchen sein. Nur, wenn ein Kanton ein solches, resilientes System nutzt, das den hohen Anforderungen der rechtlichen Vorgaben entspricht, hat er eine Chance vom Bundesrat eine Grundbewilligung für den Versuchsbetrieb E-Voting zu erhalten. Dabei spielt das von der Schweizerischen Post entwickelte kryptographische Protokoll eine bedeutende Rolle.
Die neuen Rechtsgrundlagen erhöhen die Transparenzanforderungen und schreiben den Einbezug der Öffentlichkeit und von Fachkreisen bei der Prüfung des Systems und der Dokumentation vor. So wurden die Vorgaben für die Offenlegung von Informationen zur Software und dessen Betrieb präzisiert und Anforderungen für den Einbezug der Öffentlichkeit – zum Beispiel die Pflicht zur Führung eines ständigen Bug-Bounty-Programms – geregelt.
Ein Team der Schweizerischen Post entwickelt und betreibt das E-Voting-System. Dieses Team ist auch für die Organisation der Prüfungen zuständig, die nötig sind, um die Resilienz des Systems zu testen. Externe Überprüfungen sind am wirkungsvollsten, wenn der Quellcode für Dritte gut verständlich ist. Die Post hat daher in die Auditierbarkeit ihres Quellcodes investiert und diese überprüfen lassen. Damit hat sie auch auf Kritik reagiert, die Fachleute nach der Veröffentlichung einer früheren Version des E-Voting-Systems geäussert hatten.
In dieser Fallstudie zeigen wir auf, wie die Auditierbarkeit einer Software sichergestellt werden kann und welcher Nutzen damit verbunden ist.
Ziele und Herausforderungen
Mit dem E-Voting-System der Post können Kantone Wahlen und Abstimmungen vollständig elektronisch durchführen. E-Voting ist in der Schweiz seit dem Start des sogenannten Versuchsbetriebs eingeschränkt möglich. Es dürfen pro Kanton maximal 30% der Stimmberechtigten zur Stimmabgabe über E-Voting zugelassen werden – national maximal 10%. Ausgenommen von dieser Quote sind Auslandschweizerinnen und -schweizer und Menschen mit einer Behinderung.[1]
[1] Die Bundeskanzlei dokumentiert die Versuche laufend auf https://www.bk.admin.ch/bk/de/home/politische-rechte/e-voting/versuchsuebersicht.html
Solche Versuche finden seit 2004 statt. Erstmals zugelassen wurden Stimmberechtigte der Gemeinden Anières, Carouge, Cologny und Meyrin beim Urnengang vom 26.9.2004. Seit dann werden jährlich mehrere Versuche durchgeführt. Derzeit laufen Versuchsbetriebe in den Kantonen Basel-Stadt, Graubünden, St. Gallen und Thurgau.
Die Anforderungen an das E-Voting-System umfasst vor allem die einfachere Stimmabgabe, damit jede und jeder Stimmberechtigte möglichst ohne Einschränkungen selbständig wählen und abstimmen kann. Einfachheit (ohne Schulung machbar), Barrierefreiheit (ohne Hürden für Personen mit Einschränkungen) und Flexibilität (wann und wo findet die Stimmabgabe statt) sind die wichtigsten Vorteile. Das System muss allerdings sicher sein, sodass keine Stimmen gefälscht werden können, und sodass das Stimmgeheimnis jederzeit sichergestellt werden kann. Die Grundsätze der Integrität, Vertraulichkeit und Verfügbarkeit des Systems decken diese Anforderung ab.[2]
[2] Vgl. Bundeskanzlei (2023): Prozess Risikomanagement Vote électronique der Bundeskanzlei, Bern, 1. März 2023.
Gegen diese Grundsätze können sowohl die stimmenden Personen, das E-Voting-System an sich sowie die kantonalen Einrichtungen, die die Urnengänge organisieren, verstossen. Wir konzentrieren uns in diesem Bericht auf das E-Voting-System als mögliche Quelle für Risiken. Es müssen insbesondere die folgenden sechs Sicherheitsziele[3] erreicht werden:
Korrektheit des Ergebnisses
Wahrung des Stimmgeheimnisses
Erreichbarkeit und Funktionsfähigkeit des Systems
Schutz der persönlichen Informationen über die stimmberechtigten Personen
Schutz der Information vor Manipulationen
Keine missbräuchliche Verwendung von Beweisen zum Stimmverhalten
[3] Vgl. Verordnung der Bundeskanzlei über die elektronische Stimmabgabe (VEleS), Art. 4.
Die Herausforderung der Post lag nun darin, dass sie das System der Öffentlichkeit zur Prüfung darlegen wollten und mussten. Personen ohne Insiderkenntnisse soll es mit verhältnismässigem Aufwand möglich sein, geeignete Tests vorzunehmen.
Auf den ersten Blick erscheint dies als einfache Aufgabe. Man veröffentliche einfach den Quellcode, z.B. auf GitLab und fordert die Öffentlichkeit auf, die Software zu prüfen.
Nach ersten derartigen Versuchen wurde aber klar, dass mit diesem Vorgehen keine nützlichen Rückmeldungen erwartet werden können. Was es aber braucht, damit die Software überhaupt mit angemessenem Aufwand analysiert werden kann, stellte sich als komplizierte Frage heraus.
Auditierbarkeit sicherstellen
Grundlage – Bug-Bounty-Prozess
Die Post stand also vor der Herausforderung, die Auditierbarkeit des E-Voting-Systems sicherzustellen und den Prozess der Audits in die Wege zu leiten. Man spricht in dem Zusammenhang von einem kontinuierlichen Bug-Bounty-Prozess.
Ein kontinuierlicher Bug-Bounty-Prozess ist ein fortlaufendes Programm, bei dem Unternehmen externe IT-Sicherheitsexpertinnen und -experten – auch ethische Hackerinnen und Hacker genannt – dafür belohnen, dass sie Schwachstellen in ihrer Software, ihren Websites oder Anwendungen finden und melden. Dieser Prozess läuft kontinuierlich, im Gegensatz zu einmaligen oder zeitlich begrenzten Programmen. Wichtige Aspekte sind:
Crowdsourcing von Sicherheitsexpertise: Unternehmen nutzen das Wissen und die Fähigkeiten einer breiten Gemeinschaft von Sicherheitsexpertinnen und -experten, um Sicherheitslücken zu identifizieren.
Fortlaufende Sicherheitsverbesserung: Durch die kontinuierliche Überprüfung und Meldung von Schwachstellen können Unternehmen ihre Sicherheitsmassnahmen ständig verbessern und anpassen.
Belohnungssystem: Ethische Hackerinnen und Hacker erhalten Belohnungen, die je nach Schwere und Auswirkung der gefundenen Schwachstelle variieren können. Diese Belohnungen können monetär und/oder in Form von Anerkennung erfolgen.
Transparente und faire Richtlinien: Unternehmen stellen klare und faire Richtlinien bereit, die den Umfang des Programms, die Teilnahmebedingungen und die Regeln für die Meldung von Schwachstellen festlegen.
Ein kontinuierlicher Bug-Bounty-Prozess hilft Unternehmen dabei, proaktiv Sicherheitslücken zu schliessen und ihre digitalen Assets besser zu schützen. Die Post setzte diesen Prozess auf und machte sich bereit, ihn zu starten. Vorher wollte sie aber noch die Auditierbarkeit des E-Voting-Systems messen und verbessern.
Kriterien der Auditierbarkeit
Die externen IT-Sicherheitsexpertinnen und -experten müssen in die Lage versetzt werden, schnell eine vollständige Sicht auf das System zu erhalten und sich darin zurechtzufinden.
Dafür hat die Post verschiedene Frameworks herbeigezogen, allen voran das Framework nach ISO 25010, das die Post bereits zur Beurteilung der Qualität und der Risiken im System angewendet hat und die nötig wurde, als das System vom früheren Lieferanten übernommen wurde.
Bei dieser Messung und Beurteilung des Sourcecodes hat die Post auf die Dienstleistungen von sieber&partners zurückgegriffen. sieber&partners nutzt für die Messung des Sourcecodes die Analysetools und die Benchmarking-Datenbank der Software Improvement Group (SIG). Auf der Basis der vollständigen Messung des gesamten Codes und der Benchmarks wird die Qualität nach ISO 25010 beurteilt und Massnahmen zur Behebung allfälliger Qualitätsdefizite aufgezeigt.
Dank dieser Ausgangslage konnte sieber&partners zusammen mit der SIG und der Post ein spezifisches Framework entwickeln, das gezielt die Auditierbarkeit aufzeigt. Das Framework und die beiden Audits (Examinations) sind publiziert auf GitLab.[4] Das Framework definiert die Auditierbarkeit als Produkt der Produktqualität (product quality), der Dokumentation (documentation) und der Veröffentlichung (publishability).
[4] https://gitlab.com/swisspost-evoting/e-voting/e-voting-documentation/-/tree/master/Reports?ref_type=heads
Das Modell geht von einem Code-Audit als manuelle oder teilweise automatisch durchgeführte statische Analyse aus. Es wird erwartet, dass die Prüferin oder der Prüfer Erfahrung im Lesen und Schreiben von Softwarecode hat. Vertieftes Fachwissen zum Zweck der Software, in diesem Fall E-Voting, ist aber nicht erforderlich.
1. Produktqualität
Der Kern des Aspekts „Produktqualität“ ist die Frage der Wartbarkeit. Warum ist Wartbarkeit ein Aspekt der Auditierbarkeit? Eine Prüferin oder ein Prüfer muss verstehen, was die Software tut, wie Funktionen implementiert werden und wie bestimmte Teile des Codes mit anderen verbunden sind. Dies sind Aufgaben, die bei der normalen Wartung von Software durch eine Entwicklerin oder einen Entwickler anfallen. Wenn Code gewartet wird, d.h., wenn Änderungen am Code vorgenommen werden, muss die Entwicklerin oder der Entwickler schnell verstehen, was dieser Teil des Codes tut. Sie oder er ist also mit den gleichen Anforderungen konfrontiert wie eine Auditorin oder ein Auditor.
Bei den Bewertungen verwendet sieber&partners das SIG/TÜViT-Modell für „Trusted Product Maintainability“ auf der Grundlage der Norm ISO/IEC 25010 für Softwarequalität. Die daraus resultierende Bewertung basiert auf dem Wartbarkeitsbenchmark von über zwanzigtausend Anwendungen und hat sich seit mehr als 20 Jahren am Markt bewährt. Dieses Modell wurde für die Sicherstellung der Auditierbarkeit herangezogen und spezifisch angepasst.
Einige Aspekte, die nicht durch das Wartbarkeitsmodell abgedeckt werden, wurden ergänzt. Zum Beispiel die Wahl der Technologie. Wird ein Technologie-Stack oder eine Plattform verwendet, die weit verbreitet und gut bekannt ist? Oder wird eine exotische Plattform gewählt, in die sich eine potenzielle Prüferin oder ein potenzieller Prüfer erst einarbeiten muss, um zu verstehen, was genau im Code passiert? Solche Fragen definieren die Auditierbarkeit zusätzlich mit.
2. Dokumentation
Die Dokumentation ist ein wesentliches Mittel, um eine Codebasis zu verstehen. Sie muss mit dem Code aligniert sein. Insbesondere muss die Spezifikation beschreiben, was tatsächlich implementiert ist. Dazu gehört es auch, dass gleiche Namen, gleiche Funktionsaufrufe etc. im gesamten System verwendet werden. Testautomatisierungsskripte, Funktionsdokumentation sowie Installations- und Betriebsanweisungen tragen ebenfalls zum Verständnis der Funktionsweise der Software bei. Bei der Bewertung liegt der Schwerpunkt auf Vollständigkeit, Qualität und Aktualität der Dokumentation. Je besser diese Kriterien erfüllt sind, desto besser wird die Auditierbarkeit bewertet.
3. Veröffentlichung
Wenn bisher unveröffentlichte Software veröffentlicht wird, gibt es bestimmte Bereiche, die besondere Aufmerksamkeit erfordern. Andernfalls kann die Software nicht vollständig oder nur von einem ausgewählten Kreis von autorisierten Reviewern überprüft werden. Unter dem Aspekt der Publizierbarkeit wird untersucht, inwieweit auf Codeebene die Voraussetzung für eine Veröffentlichung bzw. eine umfassende Prüfung des Codes gegeben sind. Enthält der Code z.B. noch vertrauliche Informationen, die datenschutzrechtlich relevant sein könnten, wie z.B. Namen von Privatpersonen, Passwörter usw.? Oft sind im Sourcecode zudem die Kommentare so verfasst, dass sie nicht verständlich oder sogar irreführend sind. Vor einer Publikation müssen also auch die Kommentare auf ihre Nützlichkeit hin geprüft und allenfalls angepasst werden. Es muss auch sichergestellt werden, dass Lizenzen und IP-Rechte beachtet werden. Die Vollständigkeit des Codes ist ein weiterer wichtiger Aspekt, da es oft wichtig ist, dass der gesamte Code einer Anwendung überprüft werden kann.
Bewertungsrahmen
Um das Modell in der Praxis anwenden zu können, es aber nicht zu sehr an eine bestimmte Bewerterin oder einen bestimmten Bewerter zu binden, wird eine konzeptionelle Ebene des Modells von der Bewertungsmethode getrennt. Das konzeptionelle Modell beschreibt, „was“ gemessen werden muss und was die relative Bedeutung der Aspekte und Unteraspekte ist. Die Bewertungsmethode beschreibt, „wie“ dies im Detail gemessen wird. Dies ermöglicht technologie-spezifische Anpassungen und den Einbau spezifischer Bewertungsinstrumente, ohne die Reproduzierbarkeit und Vergleichbarkeit der Ergebnisse zu beeinträchtigen. So beschreibt das konzeptionelle Modell zum Beispiel vor, wie die Bewertung von Namenskonventionen vorgenommen werden soll. Wie die Benennungskonventionen überprüft werden, ist dann aber Teil der Evaluationsmethode.
Für das Audit werden die Kriterien also in messbare Parameter aufgelöst. Für die Auditierbarkeit sind dies die Parameter aus der Abbildung 1.
Nach der Messung und Beurteilung kann ein System bewertet werden. Für die Auditierbarkeit einer Software wird ein 5-Stufen-Modell vorgeschlagen (vgl. Tabelle 1):
Resultate
Bereinigung und Veröffentlichung
Vorerst hat die Post den Sourcecode des Systems bereinigt und damit sichergestellt, dass es eine exzellente Auditierbarkeit aufweist. Der dazu öffentlich zugängliche Bericht weist dem System eine sehr gute Auditierbarkeit nach (gesamthaft 4,4 von 5 erreichbaren Punkten).[5]
[5] https://gitlab.com/swisspost-evoting/e-voting/e-voting-documentation/-/tree/master/Reports
Jede Software wird kontinuierlich weiterentwickelt und verbessert. Die Post befolgt den Ansatz der transparenten Softwareentwicklung, wonach Änderungen sichtbar gemacht werden. Änderungen am Sourcecode sind daher ab sofort auch zwischen den Releases regelmässig auf GitLab publiziert, damit die Community die Weiterentwicklung einfacher mitverfolgen kann. Dazu hat die Post Entwicklungsrichtlinien verfasst und mit dem Team implementiert, damit die Entwicklerinnen und Entwickler nicht nur die Codequalität, sondern auch die Auditierbarkeit über weitere Versionen aufrechterhalten können.
Schliesslich konnten die dannzumal zentralen 150’000 Zeilen Sourcecode zur Prüfung mit einer hohen Qualität und Auditierbarkeit veröffentlicht werden.[6]
[6] Überblick über das gesamte System:
https://evoting-community.post.ch/de/community-programm
Belohnungen
Die Post legt alle Informationen zum System dauerhaft offen. Die Überprüfung des E-Voting-Systems unterscheidet sich damit von anderen Bug-Bounty-Programmen. Expertinnen und Experten können nicht nur den Sourcecode testen, sondern das System auf ihrem Rechner laufen lassen, untersuchen und auch die kryptografischen Grundlagen auf Fehler prüfen.
Die Post zahlt für bestätigte kritische Schwachstellen Belohnungen von bis zu 250'000 CHF.[7] Dies ist nötig, um die besten Fachleute und Hackerinnen und Hacker der Szene zu gewinnen, und solche Beträge sind im weltweiten Vergleich üblich – sie fallen aber deutlich höher aus als bei durchschnittlichen Bug-Bounty-Programmen in der Schweiz. Dies liegt auch im Umfang und der Komplexität des E-Voting-Systems begründet. Der Aufwand auf Seiten der Hackerinnen und Hacker sowie und Kryptografinnen und Kryptografen für die Prüfung des E-Voting-Systems ist dadurch um ein Vielfaches höher als bei anderen Anwendungen.
[7] https://yeswehack.com/programs/swiss-post-evoting
Keine kritischen Befunde
Die Prüfungen durch unabhängige Expertinnen und Experten hat Schwachstellen aufgedeckt. Seit dem Start des Community-Programms Anfang 2021 sind bei der Post rund 370 Meldungen eingegangen. Die bestätigten Befunde werden nach ihrem Schweregrad kategorisiert. Von den eingegangenen Meldungen zeigen fünf einen hohen Schweregrad auf, kritische Befunde gab es bisher keine. Für die Meldungen hat die Post insgesamt 198'650 CHF an Belohnungen ausbezahlt (Stand 6.11.2024).[8]
[8] https://digital-solutions.post.ch/de/e-government/blog/stetige-weiterentwicklung-des-e-voting-systems-meldungen-aus-der-fachwelt
Am 9. Februar 2025 finden die nächsten Abstimmungen statt und dann können Stimmberechtigte in den Kantonen Basel-Stadt, Graubünden, St. Gallen und Thurgau mit dem E-Voting-System der Post ihre Stimme elektronisch abgeben.
Wie so eine elektronische Abstimmung aus der Sicht der Stimmberechtigten abläuft, kann mit dem Demo-System ausprobiert werden.[9]
Fazit
Die Post zeigt mit dem E-Voting-Projekt, dass sie die Vertraulichkeit in digitalen Prozessen auf höchstem Niveau sicherstellen kann.
Bund, Kantone und private Organisationen betreiben noch eine ganze Reihe anderer, kritischer und ähnlich komplexer Systeme. Das Modell zur Verbesserung der Auditierbarkeit und ein kontinuierlicher Bug-Bounty-Prozess sind nicht an E-Voting geknüpft.
Somit kann die Anwendung des Modells auch in anderen Projekten und Produktentwicklungen wertvolle Verbesserungen ermöglichen.