Wintersemester 2022/23

Praxis der Softwareentwicklung (PSE)

Sichere Online-Wahlen mit ElectionGuard und Helios

Prof. Dr. Bernhard Beckert, Prof. Dr. Jörn Müller-Quade
Michael Kirsten, Felix Dörre

Allgemeines

In "Praxis der Softwareentwicklung" (PSE) lernen die Teilnehmenden, ein vollständiges Softwareprojekt nach dem Stand der Softwaretechnik in einem Team mit etwa 5 bis 6 Teilnehmenden durchzuführen. Ziel ist es insbesondere, Verfahren des Software-Entwurfs und der Qualitätssicherung praktisch einzusetzen, Implementierungskompetenz umzusetzen, und arbeitsteilig im Team zu kooperieren.

Allgemeine Informationen zum Bachelor-Modul inklusive formaler Voraussetzungen und Prüfungsmodalitäten sind auf den Seiten des Lehrstuhls für Programmierparadigmen am IPD zu finden.

Projektinhalt

Hintergrund

Eines der Forschungsthemen in unseren Forschungsgruppen ist die Entwicklung, Formalisierung und Verifikation sicherer E-Voting-Systeme, um einen sicheren und vertrauenswürdigen Wahlvorgang zu ermöglichen. Wahlen sind schon aus theoretischer Sicht interessant, da hier immer eine Abwägung zwischen Sicherheit und Privatheit getroffen bzw. in die eine oder andere Richtung Vertrauensannahmen gemacht werden müssen. Bei den in diesem Projekt betrachteten Systemen möchten wir uns dabei auf die Sicherheitseigenschaft der Ende-zu-Ende-Verifizierbarkeit konzentrieren.

Dieses PSE-Projekt ist Teil des Forschungsprojekts Ende-zu-Ende-verifizierbare und geheime Online-Wahlen am KIT. Im Rahmen des Projektes entwickeln unsere Forschungsgruppen ein sicheres Online-Wahl-System mit Sicherheitsmechanismen nach dem aktuellen Stand der Technik.


Aufgabenbeschreibung

Innerhalb dieses Projekts sollen Sie ein sicheres Online-Wahl-System entwerfen und implementieren. Dabei bauen Sie auf dem System ElectionGuard oder Helios auf und passen diese(s) auf ein praktisches Wahlszenario mit ausgewählten Sicherheitseigenschaften an und implementieren eine passende Oberfläche. Die entsprechenden Eigenschaften sowie das Szenario geben wir vor bzw. bauen wir gemeinsam mit Ihnen aus. Hierbei erwarten wir, dass Sie sich selbstständig in eines der beiden E-Voting-Frameworks sowie in ausgewählte Grundkriterien und -mechanismen sicherer Online-Wahlen einarbeiten.


Anforderungen

  • Funktionalitäten für Wählende und Wahlleitung
  • Verschlüsselte (Online-)Übermittlung der Stimmen
  • Funktionalitäten zur individuellen und universellen Ende-zu-Ende-Verifizierung
  • Drei graphische Benutzungsoberflächen (Konfiguration, Abstimmung, Verifizierung)


Technischer Rahmen

Hinweise und Erwartungen

  • Aktives Source-Code-Management mittels eines Versionsverwaltungssystems
  • Automatische Softwaretests
  • Kontinuierliche Integration
  • Anwendung bzw. Einhaltung von Design-Patterns, Best-Practices, und Style-Konventionen
  • Kommentierter Quellcode, sowie Dokumentation und Testprotokolle

Termine

Termin Zeit Inhalt Ort
28.10.2022 15:45 – 17:15 Uhr Auftaktveranstaltung — Projektvorstellung Hertz-Hörsaal (Geb. 10.11)
07.11.2022 14:00 – 15:00 Uhr Erstes Gruppentreffen — Die Crypto-CoderKickOff-Folien Raum 211, Gebäude 50.34
07.11.2022 15:00 – 16:15 Uhr Erstes Gruppentreffen — e-lectionKickOff-Folien Raum 211, Gebäude 50.34
14.11.2022 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
15.11.2022 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
21.11.2022 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
21.11.2022 15:45 – 17:15 Uhr Gruppentreffen — e-lection Raum 211, Gebäude 50.34
28.11.2022 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
29.11.2022 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
06.12.2022 14:00 – 15:30 Uhr Kolloquium Pflichtenheft (Abgabe am 02.12.2022) Raum 010, Gebäude 50.34
12.12.2022 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
13.12.2022 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
19.12.2022 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
20.12.2022 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
24.12.2022  –  07.01.2023 Weihnachtspause
09.01.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
10.01.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
17.01.2023 14:00 – 15:30 Uhr Kolloquium Entwurf (Abgabe am 13.01.2023) Raum 010, Gebäude 50.34
23.01.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
24.01.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
30.01.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
31.01.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
06.02.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
07.02.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
14.02.2023 14:00 – 15:30 Uhr Kolloquium Implementierung (Abgabe am 10.02.2023) Raum 010, Gebäude 50.34
20.02.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
21.02.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
20./21.02.2023  –  06./07.03.2023 Klausurpause
13.03.2023 09:45 – 11:15 Uhr Gruppentreffen — Die Crypto-Coder Raum 211, Gebäude 50.34
14.03.2023 14:00 – 15:30 Uhr Gruppentreffen — e-lection Raum 010, Gebäude 50.34
21.03.2023 14:00 – 15:30 Uhr Kolloquium Qualitätssicherung (Abgabe am 17.03.2023) Raum 010, Gebäude 50.34
27.03.2023 09:45 – 11:15 Uhr Interne Abnahme — Die Crypto-Coder Raum 211, Gebäude 50.34
28.03.2023 14:00 – 15:30 Uhr Interne Abnahme — e-lection Raum 010, Gebäude 50.34
??.03.2023 ??:?? Uhr Abschlusspräsentation Raum ???, Gebäude 50.34

Dokumente

Weiteres Material