GT ideas: Difference between revisions

From
Jump to navigation Jump to search
mNo edit summary
Line 2: Line 2:
== jpr ==
== jpr ==
[[jpr1]]
[[jpr1]]

== wolfm ==

===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:
* Erfolgreicher Besuch der VL IT-Sicherheit Grundlagen
* Basiskenntnisse zu ISO7816

Links:
* [https://www.smartcardfocus.com/shop/ilp/id~829/smartcafe-expert-7-0-215k-crypto-usb-token-s/p/index.shtml SmartCafe Expert]
* [https://docs.oracle.com/javacard/3.0.5/guide/eclipse-java-card-plug.htm JavaCard Plugin für Eclipse]
* [https://sourceforge.net/p/globalplatform/wiki/GPShell/ GP Shell]
* [https://github.com/martinpaljak/GlobalPlatformPro GlobalPlatformPro]
* [https://github.com/martinpaljak/GlobalPlatformPro/tree/master/docs/JavaCardBuyersGuide JavaCardBuyersGuide]

Mentor: [https://sar.informatik.hu-berlin.de/people/wolf_mueller.htm Wolf Müller]

=== KNXD und KNX-IP-Secure===


== Prozessbasierte, diskrete Simulation in Rust ==
== Prozessbasierte, diskrete Simulation in Rust ==

Revision as of 10:24, 25 September 2019

jpr

jpr1

wolfm

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:

  • Erfolgreicher Besuch der VL IT-Sicherheit Grundlagen
  • Basiskenntnisse zu ISO7816

Links:

Mentor: Wolf Müller

KNXD und KNX-IP-Secure

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-Pie 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.