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
- ElectionGuard als Bibliothek für Funktionalitäten
- Orientierung an Wahlablauf des Helios-Systems
- Keine Blockchain! (just in case)
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-Coder — KickOff-Folien | Raum 211, Gebäude 50.34 |
07.11.2022 | 15:00 – 16:15 Uhr | Erstes Gruppentreffen — e-lection — KickOff-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 | ||
10.03.2023 | 11:00 – 12:30 Uhr | Gruppentreffen — e-lection | Raum 211, Gebäude 50.34 |
13.03.2023 | 09:45 – 11:15 Uhr | Gruppentreffen — Die Crypto-Coder | Raum 211, 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 |
30.03.2023 | 17:00 – 18:00 Uhr | Abschlusspräsentation | Raum 236, Gebäude 50.34 |
Dokumente
- Tipps & Tricks vom IPD Snelting