Für eine korrekte Darstellung dieser Seite benötigen Sie einen XHTML-standardkonformen Browser, der die Darstellung von CSS-Dateien zulässt.

/ die-ele / lehre / dsps / PG MiB /
 

proXsi

Ziel dieser Projektgruppe war die Entwicklung eines Proxy-Servers, der zu sendende E-Learning-Inhalte transparent und ohne Zutun von Lernenden digital signiert bzw. Signaturen empfangener Inhalte entsprechend verifiziert.

Struktur dieser Seite:
  1. Motivation
  2. Ergebnis
  3. Screenshots
  4. Dokumente
  5. Download
  6. Schnellstart-Konfiguration
  7. Lizenzen
  8. Entwickler / Kontakt

1. Motivation

Lern-Management-Systemen sind häufig nur notdürftig abgesichert. Am Beispiel des Lern-Management-Systems Moodle, das u.a. auch an der Universität Siegen zur Unterstützung der Lehre eingesetzt wird, bedeutet dies, dass Zugriffe auf vertrauliche Daten und Manipulationen von Lerninhalten und Kommunikationsnachrichten nur durch den Prozess der Authentifizierung (Benutzername/Passwort) und der damit verbundenen rollenbasierten Zugriffskontrolle geschützt sind. Um eine zusätzliche Hürde bei Identitätsdiebstählen zu etablieren, lassen sich digitale Signaturen nutzen, die jeder Nachricht von Seiten des Benutzers angefügt werden. Der Angreifer kann zwar noch immer vertrauliche Dokumente betrachten, jedoch nicht mehr unbemerkt Änderungen vornehmen. Manipulationen würden sofort aufgrund einer invaliden Signatur offenkundig.
Die digitale Signierung jeder Nachricht, die das System verlässt, kann jedoch vor allem bei sehr kurzen und vermeintlich unwichtigen Nachrichten die Geduld des Benutzers stark strapazieren und vom Lernen ablenken. Der Benutzer müsste diese Verfahren für jede noch so kurze Nachricht komplett durchlaufen, um das Risiko unbemerkter Manipulation zu umgehen. Das ist vor allem bei schnellen Kommunikationsmitteln mit kurzen Nachrichten, wie z.B. Chats, ein Aufwand,der nicht zu vertreten wäre. Aus diesem Grund sollte eine automatisierte Herangehensweise programmiert werden, bei der die Signierung transparent für den Benutzer im Hintergrund stattfindet. Hierfür wird das Konzept eines lokalen Proxy-Servers (wörtlich: eines Stellvertreters) verwendet, so dass der schützenswerte private Schlüssel den Computer eines Lernenden nicht verlassen müsste.
(Vollständige Projektgruppen-Ausschreibung mit Erläuterungen)

2. Ergebnis

"proXsi" ist ein in Java mit Hilfe der Java-Netz-Bibliotheken (java.net.*) entwickelter Proxy-Server, der vollständig standardkonform zu HTTP/1.1 (sowie HTTP/1.0 und 0.9) arbeitet. Er kann mit jedem Web-Browser verwendet werden. Bei der Entwicklung wurde darauf geachtet, dass der Proxy-Server einfach erweiterbar und konfigurierbar sein soll. Das bedeutet, dass die Anwendung über dynamisch zu ladende Bibliotheken an verschiedene Protokolle und Lern-Management-Systeme anpassbar sein soll. Der Proxy kann daher auch mit weiteren E-Learning-Systemen gekoppelt werden ohne größere Anpassungen am System machen zu müssen. Da im einfachsten Fall jede Verbindung vom Benutzer zum Internet über diesen Proxy läuft, muss sichergestellt sein, dass Verbindungen, die nicht über eine dynamisch eingebundene Bibliothek verarbeitet werden können, ungehindert und unverändert weitergeleitet werden.
Der Proxy wurde internationalisiert und durch mehrere Sprachpakete ergänzt. Momentan stehen die Sprachen chinesisch, deutsch, englisch und französisch zur Verfügung.

Die Features im Überblick:
  • nebenläufige Prozesse und unterstützung mehrerer Verbindungen
  • Durchschleifen von Audio-/Videostreams für bessere Geschwindigkeit (statt diese zu puffern)
  • Unterstützung verschlüsselter Verbindungen (über HTTPS)
  • dynamisch zu ladende Module für verschiedene Einsatzzwecke/LMS
  • Unterstützung mehrerer Moodle-Versionen, andere LMS folgen bei Bedarf
  • Unterstützung für Internationalisierung
  • Plattformunabhängigkeit durch Programmierung in Java
  • hohes Maß an Konfigurierbarkeit
  • barrierefreie Konfigurationsoberfläche
  • Unterstützung von Proxy-Ketten, d.h. Weiterleitung des Datenstroms an weitere Proxy-Server
  • Signierung kompatibel zu PGP-Standard
  • Verwendung moderner Krypto- und Hashverfahren

3. Screenshots

E-Learning erfordert eine möglichst ungestörte Konzentration auf die eigentlichen Lerninhalte. Die Interaktionen mit dem Benutzer wurden daher auf ein Minimum beschränkt. Ein kleiner Auszug lässt sich dennoch zeigen:

Icon "X" im Symbolbereich

Kontextmenü zur Steuerung

Baloon-Tip für aktuelle Meldungen

Eintrag mit ungültiger Signatur (Inhalt wurde manuell verfälscht)

Eintrag mit gültiger Signatur
 

Server-Zertifikat wird weitergereicht zur Kontrolle

4. Dokumente

Die Dokumente beschreiben die Vorgehensweise und Ergebnisse der studentischen Projektgruppe. Der Download-Bereich enthält eventuell neuere Versionen der "proXsi" Software, die durch diese Dokumente nicht mehr exakt abgedeckt werden.

5. Download

Die angebotenen Dateien haben den Stand vom 12. Mai 2009, 12 Uhr. Detailverbesserungen werden in den nächsten Wochen aufgenommen und hier in einer aktuellen Version angeboten.
Bitte beachten: Es kann keine Garantie für Fehlerfreiheit und Funktion auf Ihrem Rechner übernommen werden. Verwendung auf eigene Gefahr.

6. Schnellstart-Konfiguration

Der Proxy-Server ist momentan als erster Prototyp eines Sicherheitsagenten zu sehen und verfügt noch nicht über die gewünschte Benutzungsfreundlichkeit. Vor allem bei der Konfiguration bleiben Fragen offen bzgl. der Form, was eingegeben werden darf. In diesem Abschnitt ist eine Beispielkonfiguration zusammengestellt, die einen Schnellstart ermöglichen soll -- natürlich ist das an die eigene Situation anzupassen. Aufgrund von Abhängigkeiten bei der Konfiguration einzelner Elemente, wird eine Reihenfolge wie folgt vorgeschlagen:
  1. Keyserver hinzufügen
    Beispiel:
         Adresse: "http://pgpkeys.pca.dfn.de/pks/lookup?op=get&search=<userid>" (<userid>-Eintrag ist obligat, da dies durch die gesuchte UserID ersetzt wird für Suche)
  2. Privaten Schlüssel hinzufügen
    Beispiel:
         Pfad: "/home/eibl/.gnupg/secring.gpg"" (vollständiger Pfad zur Schlüsseldatei; hier am Beispiel von Linux mit GPG)
         Benutzer: (beliebigen Eintrag in Schlüsseldatei auswählen)
    Hinweis:
    Mit dem Programm GnuPG lassen sich Schlüsselpaare über das Kommando "gnupg --gen-keys" erzeugen.
  3. Modul für LMS eintragen
    Beispiel:
         Name des LMS-Moduls: "Moodle" (beliebig)
         Name der Java-Klasse: "Moodle_1_9_4" (wird im Paket mitgeliefert)
  4. LMS hinzufügen
    Beispiel:
         Internet-Adresse: "moodle.uni-siegen.de" (ohne HTTP(S))
         LMS-Modul: (Auswahlbox für bisher eingetragene Module, s.o.)
         Keyserver: (Auswahlbox für bisher eingetragene Keyserver, s.o.)

7. Lizenzen

Die Ergebnisse des Produktes werden als freie Software mit offenen Quellen zur Verfügung gestellt, der GNU General Public License (GPL) folgend. Es ist jedem gestattet, diese Software zu verbreiten und nach eigenem Ermessen zu verändern, sofern die ursprünglichen Autoren mitgenannt werden und der Bezug zur Universität Siegen erhalten bleibt.
Des weiteren wurden Fremdbibliotheken verwendet, die den folgenden Lizenzen unterliegen:

8. Entwickler / Kontakt

Teilnehmer dieser Projektgruppe waren
  • Martin Reimer (Projektleitung)
  • Huaiyu "Sam" Ding (Datenhaltung)
  • Joachim Nink (Netzfunktionalität)
  • Michael Pulfrich (Netzfunktionalität)
  • Michael Schmidt (Signierfunktionalität)
  • Joel Tsannang Sokeng (Signierfunktionalität)
  • Ronny Wolf (Konfigurationsoberfläche)
  • Narcisse Njoya Ngatat (vorzeitig ausgeschieden)
Betreut wurde die Lehrveranstaltung von Dipl.-Inf. Christian J. Eibl und Dipl.-Inf. Kirstin Schwidrowski.

Bei Fragen und Anregungen wenden Sie sich bitte an Christian J. Eibl.