Sicherheitsabfrage im Server-Programm (ausführlich)

Problemformulierung

Der Lehrer nimmt mit der Server-Applikation sowohl die Verwaltung der Datensätze als auch die Erstellung der temporären Zugriffsdaten vor. Dazu werden die administrativen Rechte („root-Rechte“) für das Datenbanksystem benötigt. Zur Vermeidung von versehentlichen Datenmanipulationen dürfen den einzelnen Lehrern ausschließlich eigene Daten zugänglich gemacht werden. Dies soll praktischerweise über das Passwort aus der „Profil“-Datenbank geregelt werden.

Algorithmischer Lösungsprozess

Der Algorithmischer Lösungsprozess befindet sich auf einer extra Seite.
>> Zum Algorithmischer Lösungsprozess <<

Problemanalyse

Das „Login“-Formular identifiziert den Lehrer eindeutig durch Namen und sein persönliches Passwort. Ist der Benutzername nicht in der Datenbank vorhanden, dann wird der Zugriff verwehrt und eine Fehlermeldung ausgegeben. Kann dem Lehrer ein Profil zugeordnet werden, dann muss als zweite Instanz ein Vergleich der Passwörter stattfinden. Weicht der in der Datenbank angegebene Wert von der Eingabe ab, so wird der Zugriff verwehrt. Anderenfalls ist der Lehrer erfolgreich identifiziert und darf mit seinen Daten arbeiten.

Entwurf von Lösungsalgorithmen für Teilprobleme

Struktogramm

Es kann nie Schaden, ein Struktogramm vor der eigentlichen Programmierarbeit anzulegen, denn viele Probleme werden auf den ersten Blick nur unzureichend erkannt.

Struktogramm

Benutzeroberfläche erstellen und Eigenschaften der Objekte festlegen

Zur Visualisierung wird ein zusätzliches Formular benötigt. Dieses wird beim Start durch den Aufruf „Show Modal“ in den Vordergrund gestellt. Das Hauptfenster wird hierdurch deaktiviert. Die für die Benutzereingaben nötigen Komponenten werden auf dem Formular platziert und mit eindeutigem Namen versehen.

Synthese der Teillösungen

Als Eingabewerte dienen die beiden Edit Felder. Die Verarbeitung findet durch die Prüfprozedur nach „klick“ auf den Button „Anmelden“ statt. Treten während der Verarbeitung Ungereimtheiten bezüglich der Benutzerdaten auf, so wird eine Fehlermeldung ausgegeben. Andernfalls wird das Formular „Login“ geschlossen und das Hauptformular des Programms sichtbar.

Allgemeine Sicherheitsfunktionen

Zum Schutz vor Manipulationen durch Schüler wurde eine Reihe von Mechanismen in das Projekt integriert. Jegliche Art von Kommunikation kann optional verschlüsselt werden. Die „MySQL direct“-Komponenten von Christian Nicola erlauben die Verwendung des „Secure Sockets Layer“-Übertragungsprotokolls (SSL) zum sicheren Datenaustausch zwischen Delphi-Programm und „MySQL“- Datenbankserver. Das Protokoll zeichnet sich durch hohe Sicherheit aus und ist für unsere Zwecke fast übertrieben. Die Kommunikation zwischen Server- und Client-Programm erfolgt standardmäßig in unverschlüsselter „Plaintext“-Form (Klartext). Dadurch fällt es einem Angreifer leicht, die Zugangsdaten mitzuhören. Diese sind aber nur temporär vom Server- Programm erstellt worden und werden nach Abgabe der Arbeit sofort wieder gelöscht. Da auch dieses Passwort zufällig generiert wird, nützen die Zugangsdaten dem Angreifer wenig. Trotzdem habe ich zur Erhöhung der Sicherheit die „RC4“-Unit von Hagen Reddmann(1) zur Verschlüsslung der Kommunikation zwischen Server und Client in die Anwendungen integriert. Mit dieser Unit werden ebenfalls die „INI“-Dateien der Programme verschlüsselt. Auf diese Weise wird verhindert, dass jemand die administrativen Zugangsdaten für unseren „MySQL“-Server auf dem silbernen Tablett serviert bekommt.