http://www.tu-ilmenau.de

Logo TU Ilmenau


Ansprechpartner

Prof. Dr.-Ing. Günter Schäfer

Telefon +49 3677 69 4576

E-Mail senden

INHALTE

Softwareprojekt

Zielgruppe

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

Thema 1 - Visualisierung mehrschichtiger, dynamischer Netze

Betreuer: Dr.-Ing.Michael Roßberg

[Vollständige Ausschreibung als PDF]

Szenario

Das ISO/OSI-Schichtenmodell zerlegt Kommunikationsnetze in mehrere Ebenen, um diese besser handhaben zu können. In der Praxis ist diese Zerlegung nur komplexer: IP-Netze können zum Beispiel ohne Weiteres auch gekapselte Ethernet-Pakete transportieren. Das heißt es werden abweichend von der Lehre des Schichtenmodells vielfältigste Tunnel und Verschachtelungen aufgebaut. Dadurch ist es alles andere als einfach, einen Überblick über die eigentlichen Verkehrsflüsse zu erhalten und etwaige Fehler zu beheben. Ein grundlegendes Problem ist, dass die verwendeten Pfade in der Regel nur schichtenweise dargestellt werden. Die Erfassung der Implikationen für darüber und darunter liegende Schichten obliegt dem Betrachter. Verkompliziert wird die Situation durch die zunehmende Virtualisierung ganzer Netze.

Aufgabe

Ziel des Softwareprojektes ist eine für den Menschen visuell zu erfassende Darstellung mehrschichtiger Netzwerkgraphen. Das Zeichnen der Graphen soll dabei in einem Webbrowser erfolgen können. Dabei ist eine Reihe unterschiedlichster Themengebieten zu bearbeiten:

  • Überlegungen, um ein dem Initialgraphen angepasstes Layout mit möglichst wenigen Schnittkanten und wenig überlappende Knoten zu berechnen
  • Adaption des Graphen auf dynamische Veränderungen, wie dem Hinzufügen & Entfernen von Kanten & Knoten
  • Effiziente Implementierung der Algorithmen in TypeScript
  • Nutzung eines Frameworks wie D3.js oder three.js zur Visualisierung und Animation
  • Möglichkeiten zur Interaktion mit dem Nutzer (Highlighting bestimmter Knoten etc.)
  • ggf. die Auslagerung rechenintensiver Aufgaben in C++-Backend

Gleichzeitig können aber auch Vereinfachungen vorgenommen werden. Knoten einer Schicht existieren beispielsweise immer auch in den unterliegenden Schichten. Außerdem können Beispieldaten aus real existierenden Topologien herangezogen werden.

Lernziele


Neben den Kernzielen des Software-Projektes, wie dem Erlernen von effektiver Gruppenarbeit, der strukturierten Analyse von Problemen und der Schulung praktischer Fähigkeiten, wird in diesem Projekt Wissen zum Umgang mit Graphen und ihrer automatischen Darstellung sowie moderner Webprogrammierung vermittelt.

 

Thema 2 - Verschleierung von IPsec in HTTPS-Verbindungen

Betreuer: M. Sc. David Schatz 

 [Vollständige Ausschreibung als PDF]

Szenario

Mit Hilfe der Protokollfamilie IPsec können virtuelle Tunnel zwischen zwei Hosts aufgebaut werden, um (unter anderem) die Vertraulichkeit und Datenintegrität von beliebigen Verbindungen im Internet zu schützen. Durch ein Overlay aus mehreren Tunneln können zudem virtuelle private Netzwerke (VPNs) realisiert werden. Neben der reinen Sicherung der Kommunikation haben sich VPNs auch zu einem beliebten Mittel entwickelt, um eine Zensur (Blockierung von unerwünschten Verbindungen) zu umgehen. Allerdings ist die Verwendung von IPsec effizient erkennbar, so dass ein Angreifer einfach sämtliche IPsec-Tunnel detektieren und anschließend blockieren kann. Dadurch wird auch der herkömmliche Einsatz von IPsec (etwa zur Absicherung zwischen Firmenstandorten) eingeschränkt bzw. unmöglich.

Aufgabe

Im Rahmen des Softwareprojekts soll ein Ansatz entwickelt werden, welcher IPsec-Tunnel verschleiern kann, um so eine Blockierung zu verhindern. Als erster Ansatz soll dabei verfolgt werden, IPsec über HTTPS zu tunneln. Während HTTPS (bzw. das dafür eingesetzte Protokoll TLS) ähnliche Ziele verfolgt wie IPsec, macht der allgegenwärtige Einsatz von HTTPS im „World Wide Web“ eine pauschale Blockierung unwahrscheinlich, da sonst weite Teile des Internets nicht mehr erreichbar wären.

Insgesamt sollen dafür folgende Themengebiete bearbeitet werden:

  • Entwicklung einer Server-Komponente, welche die HTTPS-Tunnel terminiert und ankommende IP-Pakete weiterleitet. Für Unbeteiligte soll sich der Server wie ein normaler Webserver verhalten (d.h. plausible Inhalte ausliefern), um eine Erkennung durch „active probing“ des Angreifers zu vermeiden.
  • Die Client-Software soll beliebige IP-Pakete entgegennehmen können, um sie über die HTTPS-Verbindung zum Server zu tunneln. Paketgröße und Paket-Timing des HTTPS-Tunnels sollen plausible Charakteristika aufweisen.
  • Je nach Gruppengröße ist auch ein Eingriff in das TCP-Protokoll (z.B. geschickte Veränderung der Staukontrolle) denkbar. Dies soll den Nachteil eines Tunnels über TCP im Hinblick auf die Performance der durch IPsec geschützten Kommunikation abschwächen.

Das gesamte Framework soll dabei möglichst flexibel und erweiterbar gestaltet sein, um in Zukunft einfach alternative Tunnel (zu HTTPS) integrieren zu können.

Lernziele

Neben den Kernzielen des Software-Projektes, 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.