GT ideas

From
Jump to navigation Jump to search

jpr

jpr1

IT-Security

MA: JavaCard als Sicherer Schlüsselspeicher

Es soll ein SmartCard-basierter Schlüsselspeicher für eine große Anzahl AES-Schlüssel erschaffen werden, der einen sicheren Schlüsselimport, eine sichere externe Schlüsselspeicherung (key wrapping) und eine Benutzung bereits geladener oder wieder importierter gewrappter Schlüssel für Berechnung von AES-CCM und AES-CMAC ermöglicht, wenn diese Funktion durch eine Authentisierung freigeschaltet wurde. Eimal im Klartext importierte Schlüssel sonnen die SmartCard nie wieder im Klartext verlassen. Ziel ist eine Sichere Schlüsselspeicherung für KNX-Data-Secure. Optional kann die Funktionalität auch auf die sichere Schlüsselspeicherung und Benutzung anderer Schlüssel (z.B. ECC) ausgedehnt werden. Die Implementierung soll auf einer JavaCard erfolgen.

Voraussetzungen:

  • Kenntnisse IT-Sicherheit Grundlagen
  • Basiskenntnisse zu ISO7816
  • Java-Programmierung

Links:

Mentor: Wolf Müller

MA: KNXD und KNX-IP-Secure

knxd ist eine offene Implementierung für ein KNX-Gateway oder KNX-Router. In der Regel erfolgt die Kommunikation über IP-Pakete auf der einen Seite und andererseits über ein KNX-Modem auf der anderen Seite. Bislang wird der Standard KNX-IP-Secure noch nicht unterstützt. Machen Sie sich mit dem Standard gemäß KNX Application Note 159/13 v03 vertraut und versuchen Sie die Unterstützung in das knxd-Projekt zu integrieren.

Voraussetzungen:

  • Kenntnisse IT-Sicherheit-Grundlagen
  • C++-Programmierung
  • Basiswissen Betrienssysteme/Administration

Links:

Mentor: Wolf Müller

Prozessbasierte, diskrete Simulation in Rust

In diesem Masterarbeitsthema geht es um die Implementation einer Rust-Bibliothek für prozessorientierte, diskrete Simulatoren, vergleichbar mit dem älteren ODEMx für C++.

Dazu sind Konzepte zur Umsetzung aktiver Klassen, der Erzeugung hochwertiger Zufallszahlen, der systematischen Sammlung statistischer Messgrößen sowie deren anpassbare Ausgabe zu entwickeln und umzusetzen. Darüber hinaus müssen wesentliche Synchronisationsstrukturen wie Prozesswarteschlangen, Kanäle, beschränkte und unbeschränkte abstrakte und konkrete Ressourcen implementiert werden. Im Gegensatz zu ODEMx wünschen wir uns die Möglichkeit, nicht nur auf zeitbasierte Ereignisse, sondern auch auf zustandsbasierte Ereignisse warten zu können sowie die Umsetzung von Intraprozessparallelität.

Wichtiger Teil der Arbeit ist auch die Dokumentation, Unit-Tests und Benchmarks typischer Szenarien im Vergleich mit alternativen Lösungen wie ODEMx und SLX.

Programmierung von eingebetteten Geräten

Dieses Bachelorarbeitsthema soll überblicksartig die Programmierung von eingebetteten Geräten wie Mikrocontrollern, Raspberry-Pi und/oder Grafikkarten (CUDA/OpenCL) in den jeweils dafür üblichen Sprachen (Lua, Python, Rust, C) erklären und für verschiedene Anwendungsfälle miteinander vergleichen.

Dafür wählt man initial eines oder mehrere eingebettete Geräte aus, beschreibt für die unterstützten Quellsprachen die Werkzeugkette vom Quellcode bis zum ausgebrachten Binärartefakt anhand eines typischen Beispiels und vergleicht anschließend die Komplexität der unterschiedlichen Ansätze bezüglich selbstgewählter und begründeter Kriterien.