====== Themen für Abschlussarbeiten im IPv6-Labor der Beuth Hochschule: ====== ===== Machine Learning Packet Classification ===== ===== Implementierung eines DNSSEC gesicherten DNS Servers ===== ===== Untersuchungen zu CryptoLibraries ===== NaCL, ... * https://en.wikipedia.org/wiki/Comparison_of_cryptography_libraries ===== Untersuchungen zu gRPC und Protocol Buffers ===== https://www.heise.de/developer/meldung/Alternative-zu-REST-gRPC-Web-jetzt-allgemein-verfuegbar-4202697.html \\ ===== Untersuchungen zum Stand der IPv6 Implementierung für den ESP8266 ===== In der Arbeit soll der aktuelle Stand der IPv6 Implementierung für den ESP8266 untersucht werden. Dazu soll der Funktionsumfang, die Vollständigkeit der Implementierung, sowie die Nutzung von IPv6 in eigenen Netzwerkprojekten praktisch nachgewiesen werden. **Links:** * https://github.com/esp8266/Arduino/issues/638 \\ ===== Untersuchungen zum Aufbau eines Mesh-Netzwerks mit dem ESP8266 ===== In der Arbeit soll praktisch untersucht werden, ob es mit dem ESP8266/ESP32 möglich ist eine WLAN-Mesh Vernetzung aufzubauen. Mittels der Mesh-Vernetzung sollen Nachrichten von Mikrocontroller zu Mikrocontroller weitergeleitet werden, ohne dass dazu ein WLAN-Access-Punkt (WLAN-Router) benötigt wird. **Links:** * https://wiki.ipv6lab.beuth-hochschule.de/iot/expressiv?s[]=mesh#mesh_networking \\ ===== Untersuchungen zur Interoperabilität zwischen verschiedenen IoT Betriebssystemen ===== An der FU Berlin wird derzeit mit **RIOT-OS** ein neues Betriebssystem für das IoT entwickelt. In der Arbeit soll untersucht werden wie gut **RIOT** mit dem an der Beuth Hochschule bisher eingesetzten **Contiki OS** kompatibel ist und welche Dinge beim gleichzeitigen Einsatz von RIOT und Contiki zu beachten sind. Die Arbeiten sollen auf einem CC2538DK-Board von Texas Instruments durchgeführt werden. **Links:** * [[https://riot-os.org]] * [[https://github.com/RIOT-OS/RIOT/issues/4220]] * [[contiki:start|Contiki OS]] * [[iot:riot-os|RIOT OS auf dem CC2538DK-Board]] \\ ===== Internet Messungen / Internet Measurements ===== Das IPv6-Labor der Beuth Hochschule ist Teil eines weltweiten Netzwerks von Messpunkten im Internet. In diesem Netzwerk werden spezielle Hardware-Probes benutzt um aktive Messungen durchzuführen. Ziel der Arbeit ist es sich mit den verfügbaren Werkzeugen vertraut zu machen und deren Nutzbarkeit für eigene Messungen zu überprüfen. * Erstellung einer Übersicht der Funktionalität von RIPE Atlas * Durchführung und Visualisierung von Messungen * Untersuchung der verfügbaren Schnittstellen (APIs) zur Erstellung eigener Messungen **Links:** * [[https://atlas.ripe.net/]] * [[https://labs.ripe.net/]] * [[https://atlas.ripe.net/probes/3157/]] * [[https://www.internetsociety.org/blog/development/2016/03/ripe-atlas-what-can-it-do-you]] \\ ===== Weiterentwicklung eines IPv6 Paketgenerators ===== Vor einigen Jahren wurde an der Beuth-Hochschule ein Werkzeug zur graphischen Erstellung von IPv6-Paketen (IP-Paketgenerator) entwickelt. Das Werkzeug setzt auf dem Kommandozeilen-Tool ''scapy'' auf und stellt eine einfache Bedienoberfläche bereit. Diese Software soll in der Arbeit aktualisiert und um neue Funktionen erweitert werden. Das Software-Hosting soll von Google-Code auf Github umgezogen werden. Mögliche Erweiterungen sind: * Generierung von IPv6-Datenströmen (integration von tcp-replay) * Visualisierung von Protokollabläufen * Implementierung von Sicherheitsfeatures * IPv4-Unterstützung * Visualisierung von Paketen, Daten und deren Position im OSI Stack **Voraussetzung:** * Python-Programmierkenntnisse * Linux-Kenntnisse * Bereitschaft in die Einarbeitung von ''scapy'' **Links:** * [[http://code.google.com/p/scapy-gui-ipv6/]] * https://github.com/albfan/scapy-gui-ipv6 * http://tcpreplay.appneta.com * http://www.secdev.org/projects/scapy/ * http://www.idsv6.de/Downloads/IPv6PacketCreationWithScapy.pdf \\ ===== Software Defined Networks (I) ===== SDN (Software Defined Networking) ist momentan ein wichtiger Trend im Netzwerkbereich.\\ Ziel der Arbeit ist es eine eigene ONOS App zu entwickeln. **Voraussetzungen:** * Es werden grundlegende Linux und Java-Kenntnisse benötigt. * Die entwickelte App soll auf einem PC mit mehreren Netzwerkkarten laufen. **Links:** * https://www.youtube.com/watch?v=Q3ptlUWoAE8 * https://wiki.ipv6lab.beuth-hochschule.de/ne/sdn \\ ===== Software Defined Networks (II) ===== SDN (Software Defined Networking) ist momentan ein wichtiger Trend im Netzwerkbereich.\\ Ziel der Arbeit ist es eine Open Virtual Switch (Open vSwitch) Installation zu erstellen. **Voraussetzungen:** * Es werden grundlegende Linux-Kenntnisse benötigt. * Die Open vSwitch Installation soll auf einem PC mit mehreren Netzwerkkarten laufen. **Links:** * http://openvswitch.org/ \\ ===== Software Defined Networks (III) ===== SDN (Software Defined Networking) eignet sich auch um verschiedene Funktionen von Netzelementen zu virtualisieren.\\ Im Rahmen der Arbeit soll untersucht werden, welche Sicherheitsfeatures sich in einem Internet-Access-Switch erstellen erstellen lassen. \\Dabei soll der RYU-Controller in Zusammenspiel mit einem Edge-Core AS4610_30T SDN Switch zum Einsatz kommen. **Voraussetzungen:** * Es werden grundlegende Linux-Kenntnisse und die Fähigkeit zur Programmierung in Python benötigt. **Links:** * https://tools.ietf.org/html/rfc4862 * https://tools.ietf.org/html/rfc6105 * https://www.cisco.com/c/en/us/td/docs/wireless/controller/technotes/8-0/IPV6_DG.html#pgfId-76771 \\ ===== Erweiterung eines Tutorials für die Entwicklung von Wireshark Plugins ===== Wireshark ist ein wichtiges Werkzeug für die Analyse des Datenverkehrs in Netzwerken. Es verfügt über eine Programmierschnittstelle, mittels derer sich eigene Protokoll-Analysen (so genannte //Dissectors//) erstellen lassen. Im Rahmen der Arbeit soll ein bereits vorhandenes Tutorial erweitert werden, welches die weiterführende Schritte der Erstellung eines Wireshark-Dissectors anhand eines selbst gewählten Beispielprotokolls dokumentiert. **Voraussetzung:** * grundlegende Linux-Kenntnisse * LaTeX-Kenntnisse * Bereitschaft in die Einarbeitung der Programmiersprache LUA **Links:** * https://wiki.ipv6lab.beuth-hochschule.de/ne/wireshark#dissector_programmieren \\ ===== Erweiterung eines bestehenden 6LoWPAN Routers - Modulare Funkinterfaces ===== Im IPv6 Labor der Beuth-Hochschule wurde im letzten Jahr ein eigener Router für die Kopplung eines 6LoWPAN-Funknetzes mit einem Ethernet-Netzwerk entwickelt. \\ Dieser Router soll um die Fähigkeit erweitert werden separate Funkmodule für unterschiedliche Frequenzbereiche aufzunehmen. Dabei sind folgende Punkte zu untersuchen: * Recherche verfügbarer Funkmodule * Entwicklung eines Konzepts zur Anbindung der Funkmodule (Transceiver/komplettes Mikrocontroller-Board) * Anpassung des bestehenden Bord-Layouts in Eagle * Erstellung der Platine * Anpassung des Contiki-Betriebssystems (Gerätetreiber) Links: * [[http://www.researchgate.net/publication/269319668_Development_of_a_Contiki_border_router_for_the_interconnection_of_6LoWPAN_and_Ethernet|Link zur Publikation der Router-Entwicklung]] * [[http://shop.in-circuit.de/index.php?cPath=22_27|mögliche Funkmodule]] \\ ===== Erweiterung eines bestehenden 6LoWPAN Routers - Power over Ethernet ===== Im IPv6 Labor der Beuth-Hochschule wurde im letzten Jahr ein eigener Router für die Kopplung eines 6LoWPAN-Funknetzes mit einem Ethernet-Netzwerk entwickelt. \\ Dieser Router soll um eine Energieversorgung per Power-over-Ethernet (PoE) erweitert werden. Dabei sind folgende Punkte zu untersuchen: * Recherche verfügbarer PoE Lösungen * Anpassung des bestehenden Bord-Layouts in Eagle * Erstellung der Platine Links: * [[http://www.researchgate.net/publication/269319668_Development_of_a_Contiki_border_router_for_the_interconnection_of_6LoWPAN_and_Ethernet|Link zur Publikation der Router-Entwicklung]] * [[https://de.wikipedia.org/wiki/Power_over_Ethernet]] \\ ===== Umsetzung eines Referenzdesigns für das Energy-Harvesting eines Sensormoduls ===== Sensorknoten sollen über Jahre hinweg ohne weitere Installations- und Wartungsarbeiten einsatzfähig sein. Die momentan verfügbaren Batterietechnologien stellt das vor Herausforderungen. Durch den Einsatz energiesparender Mikrocontroller gepaart mit einer Lösung zur Gewinnung von Energie aus der direkten Umgebung können neue Einsatzfelder erschlossen werden. Im Rahmen der Arbeit soll ein Referenzdesign von Texas Instruments umgesetzt und bewertet werden. Links: * [[https://e2e.ti.com/blogs_/b/msp430blog/archive/2015/08/31/design-a-battery-powered-building-automation-system-to-last-for-decades?DCMP=ep-mcu-msp-buildautomation-en&HQS=ep-mcu-msp-buildautomation-em-blog-automation-en&sp_rid_pod4=MTE1NzI4NjM2OTY4S0&sp_mid_pod4=49438255&detailID=19721111|Link zur TI-Publikation]] * [[http://www.ti.com/tool/tida-00246?DCMP=tida00246&HQS=sys-ind-fa-tida00246-em-rd-tida00246-wwe&sp_rid_pod4=MTE1NzI4NjM2OTY4S0&sp_mid_pod4=49249183&detailID=19721111&spMailingID=49249183&spUserID=MTE1NzI4NjM2OTY4S0&spJobID=740683884&spReportId=NzQwNjgzODg0S0|Referenzdesign (Texas Instruments)]] \\ ===== WAN Link-Emulation ===== Weitverkehrsnetze (WAN) unterscheiden sich in einer Reihe von Parametern wie z.B. Delay und Durchsatz von Lokalen Netzen (LAN). Diese Parameter haben unmittelbare Auswirkungen auf Übertragungsprotokolle und Anwendungen.\\ In dieser Arbeit soll ein WAN-Emulator auf Basis eine Linux-Systems auf einem Raspberry PI entworfen und getestet werden. Idealerweise sollen die Emulationsparameter per GPIO steuer- und einstellbar sein. Links: * [[http://www.linuxfoundation.org/collaborate/workgroups/networking/netem|netem]] * [[http://info.iet.unipi.it/~luigi/dummynet/|dummynet]] \\ ===== DHCPv6 Client für einen 6LoWPAN Border-Router ===== Für die internetfähige Steuerung von SmartObjects wird derzeit eine Microcontroller-Plattform entwickelt, welche die Vernetzung über das IPv6 Protokoll ermöglicht. Dabei kommt mit [[http://tools.ietf.org/html/rfc6550|RPL]] ein Routing Protocol for Low-Power and Lossy Networks zum Einsatz. In der Arbeit soll ein einfacher DHCPv6-Client entwickelt/portiert werden, der es erlaubt dem 6LoWPAN Border-Router per DHCP Prefix-Delegation [[http://tools.ietf.org/html/rfc3633|RFC 3633]] einen IPv6-Präfix zuzuweisen. **Voraussetzung:** * Gute Kenntnisse der Programmiersprache C * Kenntnisse IPv6, Netzwerkmanagement mit DHCP * Bereitschaft zur Einarbeitung in die Netzwerkprogrammierung **Links:** * [[http://www.cisco.com/en/US/tech/tk872/technologies_configuration_example09186a0080b8a116.shtml|Cisco Beispiel]] * [[http://en.wikipedia.org/wiki/Prefix_delegation|Präfix Delegation]] * [[http://en.wikipedia.org/wiki/Udhcpc|Udhcp]] \\ ===== Restful Webservice für die Überwachung von Ereignissen in einem Sensornetz ===== In der Arbeit soll untersucht werden wie eine Restful Webservice auf einem OpenWRT Heimrouter installiert werden kann um ein angeschlossenes Sensornetz zu überwachen. Dazu ist auf dem OpenWRT Router ein Webserver zu installieren und mittels einer geeigneten Schriftsprache (PHP, Perl, etc.) ein Restful Service auf den Sensorknoten in geeigneten Zeitabständen abzufragen und per Java-Script zu visualisieren. **Links:** * OpenWRT: https://openwrt.org * Anbindung des Sensornetzes: https://wiki.ipv6lab.beuth-hochschule.de/contiki/openwrt \\ ===== Vergleich verschiedener IP-Paket-Generierungs-Bibliotheken ===== Testwerkzeuge für Datennetzwerke benötigen sehr oft die Möglichkeit frei konfigurierbare Paketdatenströme zu erzeugen (Lasttests, Test des Antwortverhaltens, Router- und Firewalltests) Für die freie Erzeugung von IP-Paketen zur Übertragung in Netzwerken werden dazu in Betriebssystemen sogenannte Paket-Generierungs-Bibliotheken eingesetzt. Diese Bibliotheken unterscheiden sich hinsichtlich ihrer Performance und der bereitgestellten Funktionalität, sowie der Einfachheit ihrer Verwendung. Im Rahmen der Arbeit sollen verschiedene Bibliotheken (python-pcs, libnet, libdnet, ...) hinsichtlich der folgenden Parameter miteinander verglichen werden: * Unterstützung von IPv6 * Funktionalität * wie einfach können Pakete erzeugt werden, * welche Higher-Layer werden unterstützt * Performance (max. + Overhead beim Erzeugen) **Voraussetzung:** Gute Linux-Kenntnisse, sehr gute Programmier und Netzwerkkentnisse \\ \\ ===== Weitere Ideen: ===== * Es gibt einen recht interessanten **Low Interaction Honeypot** mit dem Namen honeytrap (http://honeytrap.carnivore.it/), der nach bisheriger Recherche leider noch nicht ipv6 fähig ist. Er bietet gute Proxy-Mechanismen und ist in der Lage Exploits bis zu einem gewissen Grade mit [[http://libemu.carnivore.it/|libemu]] zu erkennen und auszuführen. Es soll geprüft werden ob es möglich ist diesen Honeypot IPv6-fähig zu machen. * **IPv6-Tunnelerkennung:** Ein bestehendes Tool zur Netzwerkanalyse soll analysiert und evaluiert werden. Das Thema setzt Python-Kenntnisse voraus und Interesse sich auch mit den theoretischen Hintergründen und IPv6 Standards zu beschäftigen. * **Entwicklung eines Lego Mindstorms Sensors:** Es soll ein Gyroskop-Sensor entwickelt und an das LegoMindstorms Roboter-System angepasst werden. [[http://www.youtube.com/watch?v=4ulBRQKCwd4 _blank external-link-new-window|Youtube Link]] ---- [[public_v6:abschlussarbeiten_in_bearbeitung|... hier finden Sie bereits bearbeitete Aufgabenstellungen]]