Das Ziel dieser Diplomarbeit war es, eine Steckdosenleiste zu entwerfen, die über das Internet steuerbar ist.
Der Name IP-Steckdosenleiste leitet sich von dem IP-Protokoll (TCP / IP Protocol) ab, das für die Verbindung verwendet wird. Die automatische Erkennung von Datenpaketverlusten durch einen CRC Check war ein wesentlicher Grund dafür, warum die Entscheidung auf das Übertragungsprotokoll TCP fiel und nicht UDP verwendet wurde.
Diese Diplomarbeit wurde in 3 Bereiche geteilt, in denen parallel gearbeitet wurde. Diese 3 Bereiche umfassten Hardware, Firmware und Software. Bei der Software handelt es sich um ein eigenständiges Benutzerprogramm. Die Firmware hingegen ist für die Steuerung der Hardware zuständig.
Hauptaufgabe war es eine Verbindung vom Internet zur Steckdosenleiste herzustellen, was durch einen Chip von Microchip ermöglicht wurde (ENC28J60). Weiters waren die Befehle, welche die Software sendet, so zu senden, dass Passwörter nicht abgefangen werden können. Aus diesem Grund wurden statt der herkömmlichen Passwörter Transaktionsnummern eingesetzt, welche die Sicherheit erhöhten. Abgesehen von diesen Transaktionsnummern, welche beim Aufbau der Verbindung gesendet werden müssen, wurden noch Session-IDs beim erfolgreichen Login vergeben, welche am Ende jedes Befehl mitgesendet werden müssen. Nach Beendinung einer Session ist es nicht mehr möglich sich mit einer alten Session-ID oder einer alten Transaktionsnummer einzuloggen.
Durch dieses Maß an Sicherheit und das dafür entwickelte Protokoll war es möglich die Steckdosen auf dieser Steckdosenleiste (nun ist sie bereits eine IP-Steckdosenleiste) über Befehle, welche per TCP/IP gesendet werden ein- oder auszuschalten. Als Steuersoftware dient eine C++ Applikation, die eine grafische Oberfläche bereitstellt und die Befehle im Hintergrund sendet. Weiters ist es aufgrund des entwickelten Protokolls möglich die IP-Adresse, den Gateway, die Subnetmask, den DNS-Server etc. zu ändern, indem ebenfalls wieder ein Befehl verschickt wird, welcher vom Mikroprozessor in der IP-Steckdosenleiste interpretiert und ausgeführt wird.
Ein weiterer Sicherheitsaspekt war das Ignorieren von synchronize-floods, was soviel bedeutet, wie das senden vieler Verbindungsanfragen gleichzeitig.
Client (Synchronize) -> Server (Synchronize, Acknowledge) -> Client (Acknowledge)
Wenn das letzte Acknowledge vom Client nicht gesendet wird, wartet der Server (die IP-Steckdosenleiste) ewig auf dieses Acknowledge. Dies wurde unterbunden, da jede Verbindung, die nicht innerhalb von wenigen Sekunden mit einem Acknowledge des Clients beantwortet wird, automatisch getrennt wird.