Open Topics
Available Theses Topics (mostly in German)
Implementation eines Mix-Netzes als SDN
Mix-Netze sind Overlay-Netze, die den Prinzipien eines klassisches Netz entsprechen, d.h. jede Komponente muss einzeln überwacht, instand gehalten und angepasst werden. Sogenannte SDNs (Software-Defined Networks) zählen ebenfalls zu den Overlay-Netzen, bieten jedoch neue Möglichkeiten der Instandhaltung und Anpassung durch die zentrale Kontrolle aller Komponenten. Anforderungen können in SDNs effizienter und flexibler angepasst werden, wodurch sich u.a. die Skalierbarkeit, Fehlertoleranz oder Evaluation neuer Einstellungen einfacher gestaltet.
Bisher bestehende generische Fehlertoleranzmechanismen für verteilte Systeme sind nicht auf Mix-Netze anwendbar. Spezifische Ansätze, die die Fehlertoleranz in Mix-Netzen verbessern, tun dies entweder auf Kosten der Anonymität oder verschieben den Angriffsvektor auf andere Komponenten, die oft einen Single Point of Failure darstellen. Mit der Einführung von SDNs bieten sich neue Möglichkeiten der Fehlerdetektion und -behebung sowie der Angriffsdetektion und -behebung.
Innerhalb dieser Abschlussarbeit soll
- ein Mix-Netz als SDN implementiert werden,
- neue Möglichkeiten der Fehlertoleranz für dieses Netz betrachtet werden,
- eine Evaluation hinsichtlich Anonymität und Verfügbarkeit des Netzes erfolgen.
Automatischer Vergleich zwischen Protokollbeschreibung und Code - Implementation
In der Kryptographie werden oft bestimmte Protokolleigenschaften wie z.B. die Sicherheit von personenbezogenen Daten theoretisch bewiesen. Bei der Umsetzung in praktischen Programmcode können allerdings Fehler passieren, die für unerwartete Sicherheitslücken sorgen. Es gibt bereits verschiedene Tools, die unter anderem mit Hilfe von künstlicher Intelligenz die Korrektheit von Programmcode beurteilen sollen (z.B. [PSS98;Kan+20;Sam+21]). Es wirkt naheliegend, darauf aufbauend auch automatisch prüfen zu wollen, ob der Programmcode einer gegebenen Protokollspezifikation entspricht. In einer Vorarbeit wurden bereits mögliche Anforderungen an ein Tool aufgestellt, das eine Protokollbeschreibung und den zugehörigen Code vergleicht. Zusätzlich wurden mehrere Techniken herausgearbeitet, die dafür genutzt werden könnten.
Diese Arbeit soll einen Prototypen des Tools implementieren und anhand der gegebenen Anforderungen sowie weiterer Metriken evaluieren. Die konkrete Auswahl der Techniken ist dabei freigestellt, sollte jedoch sinnvoll begründet werden. Nach Möglichkeit sollen verschiedene Techniken getestet und miteinander verglichen werden. Ebenfalls kann eine rein KI-basierte Variante des Tools als Vergleich implementiert werden.
Referenzen:
[PSS98] Amir Pnueli, O Shtrichman, and M Siegel. The Code Validation Tool(CVT). In: International Journal on Software Tools for Technology Transfer(STTT) 2.2 (1998), pp. 192–201.
[Sam+21] Michael Sammler et al. RefinedC: automating the foundational verification of C code with refined ownership types. In: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. PLDI 2021. Virtual, Canada: Association for Computing Machinery, 2021, pp. 158–174.