Zielgruppe

Für den Studiengang Informatik und Ingenieurinformatik im 4. Semester des Bachelorstudiums.
Zur Übersichtseite für das Softwarepraktikum.
 

Szenario

Kommunikationsnetze beherrschen heute mehr denn je unser tägliches Leben, allerdings sind die Bedingungen mit denen Pakete übermittelt werden häufig stark schwankend und nicht immer optimal. Neben Bandbreitenbeschränkungen gehören dazu Latenzen, die zum Beispiel durch Warteschlangenverhalten in Routern auch stark schwanken können.

Echtzeitsensitive Anwendungen, wie Videotelefonie, aber auch Routing-Protokolle sollen und müssen trotz widriger Umstände in den Netzen bestmöglich funktionieren. Dazu müssen sie nicht nur robuste Algorithmen und Protokolle einsetzen, sondern vor allem auch getestet werden. Dazu werden typischerweise WAN-Emulatoren eingesetzt, die in einem lokalen Netz gezielt und reproduzierbar dem übermittelten Verkehr typische Dienstgüteeigenschaften von WAN-Übertragungen wie Paketverlust, Verzögerung und Verzögerungsschwankungen aufprägen.

Leider sind einerseits kommerzielle WAN-Emulatoren sehr teuer und schlecht zu modifizieren und andererseits können offene Systeme wie Linux NetEm aktuelle Bandbreiten (>= 10 GBit/s) nicht bewältigen.

 

Aufgabe

Ziel des Softwareprojektes ist einen WAN-Emulator zu entwickeln, der grundlegende Funktionen zur Simulation von Latenz- und Bandbreitenparametern bietet. Das System soll dabei

  • mit hohen Gesamtbandbreiten möglichst >10Gbit/s funktionieren
  • Latenz-, Jitter- und Bandbreiten von Verkehrsströmen zwischen beliebigen Hosts eines LANs verändern können
  • Pakete eines Flows sollen umgeordnet werden können

Dazu soll der Emulator auf einem normalen PC/Server arbeiten, der 

  • entweder wie ein Switch auftritt und allen Verkehr durchleitet
  • oder an einen “normalen” Switch angeschlossen wird und nur relevanten Verkehr anzieht und wieder einspielt.

In jedem Fall kann es vorkommen, dass hohe Bandbreiten und vor allem hohe Paketraten zu bewältigen sind. Dies wird in modernen Software-Architekturen mit Hilfe von Poll-Mode-Treibern erreicht (siehe www.dpdk.org). Meist wird hierzu C oder C++ verwendet.

 

Lernziele


Neben den Kernzielen des Software-Projektes, wie dem Erlernen von effektiver Gruppenarbeit, der strukturierten Analyse von Problemen und der Schulung praktischer Programmierfähigkeiten, wird in diesem Projekt Wissen zur Entwicklung effizienter Netzwerk-Software vermittelt.

Thema 2 - Instant Messaging mit starker Anonymität

Betreuer: David Schatz

Szenario

Um die Privatsphäre ihrer Nutzer zu schützen, implementieren viele moderne Instant Messenger wie WhatsApp oder Signal eine Ende-zu-Ende Verschlüsselung. Damit bleibt der Inhalt von Nachrichten selbst vor den Anbietern geheim (Vertraulichkeit). Die Metadaten der Nachrichten werden allerdings nicht geschützt (keine Anonymität). Etwa können die Betreiber nach wie vor nachvollziehen, welche Nutzer wie oft Nachrichten austauschen.

Und obwohl Nachrichten über (de-)zentrale Dienste umgeleitet werden, können externe Beobachter IP-Pakete anhand des verschlüsselten Inhalts oder ihres Timings an unterschiedlichen Stellen im Internet miteinander in Verbindung bringen und somit ebenfalls Metadaten extrahieren. Das bekannte Tor-Netzwerk könnte theoretisch eingesetzt werden, um eine erhöhte Anonymität für Nachrichten zu erreichen. Dadurch, dass der Fokus bei Tor allerdings auf einer Anwendung mit strengeren Anforderungen liegt (HTTP-Traffic), bietet es zahlreiche Angriffsflächen für mächtige Angreifer. Unter anderem schützt es nicht vor Angriffen, die auf dem Timing von Paketen basieren.

Aufgabe

Aufbauend auf dem beschriebenen Szenario wird am Fachgebiet Telematik/Rechnernetze derzeit ein Konzept erarbeitet, das speziell auf eine Anonymisierung von Instant Messaging ausgerichtet ist. Dadurch lassen sich deutlich bessere Garantien realisieren als dies bei Tor der Fall ist (starke Anonymität). Der Grundgedanke ist dennoch ähnlich zu Tor: Nutzer bauen sogenannte Circuits auf, über die Nachrichten geschützt durch eine Verschlüsselung in Schichten („Onion“) über mehrere Kommunikations-Mixe umgeleitet werden.

Im Unterschied zu Tor werden Pakete dabei synchronisiert weitergeleitet, um eventuell vorhandene Muster im Timing von Paketen zu entfernen. Darüber hinaus senden und empfangen Nutzer auch dann „Dummy“-Pakete, wenn sie selbst nicht aktiv sind. Dies verhindert Korrelationen à la „immer wenn Alice eine Nachricht sendet, empfängt Bob eine Nachricht“ (dies trifft nun immer zu, unabhängig davon ob Alice tatsächlich Nachrichten an Bob sendet). Ein Rendezvous-Dienst leitet echte Nachrichten zwischen den Circuit-Endpunkten weiter.

Im Rahmen dieses Projekts sollen die Kernkomponenten des Konzepts weiter verfeinert und prototypisch implementiert werden. Der Fokus soll dabei auf der Client-Software für eine mobile Plattform (bevorzugt Android) liegen, um einen praktischen Einsatz des Systems zu ermöglichen. Neben dem Aufbau von Circuits und einer Benutzeroberfläche zum Senden von Nachrichten, muss die Client-App einen Schlüsselaustausch zwischen Freunden ermöglichen, da der Rendezvous-Dienst darauf angewiesen ist. Je nach Gruppengröße ist es denkbar, dass auch die Software für Mixe und den Rendezvous-Dienst prototypisch implementiert wird. Andernfalls findet diese Entwicklung parallel zum Softwareprojekt am Fachgebiet statt.

Lernziele

Neben den Kernzielen des Softwareprojekts, wie dem Erlernen von effektiver Gruppenarbeit, der strukturierten Analyse von Problemen und natürlich der Schulung praktischer Fähigkeiten, wird in diesem Projekt Wissen zu moderner Netzwerkprogrammierung und IT-Security vermittelt.