

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:- Motivation
- Ergebnis
- Screenshots
- Dokumente
- Download
- Schnellstart-Konfiguration
- Lizenzen
- 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.- Projektgruppenausschreibung (PDF, 98 KB)
- Präsentation (PDF, 507 KB)
- Pflichtenheft (PDF, 590 KB)
- Benutzungshinweise (PDF, 586 KB)
- Dokumentation
- Lehrvideos zur Einrichtung und Verwendung von "proXsi":
- proXsi starten (MPEG, 4.9 MB)
- proXsi für LMS konfigurieren (MPEG, 25 MB)
- Keyserver in proXsi eintragen (MPEG, 10.6 MB)
- proXsi für privaten Schlüssel konfigurieren (MPEG, 13.2 MB)
- Browser für proXsi konfigurieren (MPEG, 25.3 MB)
- Eintrag in LMS einstellen (MPEG, 15.6 MB)
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.
- Binärversion (2.8 MB)
- Quellen (3.9 MB)
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:- 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) - 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. - Modul für LMS eintragen
Beispiel:
Name des LMS-Moduls: "Moodle" (beliebig)
Name der Java-Klasse: "Moodle_1_9_4" (wird im Paket mitgeliefert) - 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:
- Bouncy Castle: MIT License http://www.bouncycastle.org
- BrowserLauncher2: GNU Lesser General Public License. (LGPL) http://browserlaunch2.sourceforge.net
- HTMLEntities: GNU Lesser General Public License v.2.1 (LGPL) http://htmlentities.dev.java.net
- Java: Copyrighted and/or licensed by Sun Microsystems, Inc. http://www.sun.com/java/
- JDOM: Apache Style License (with the acknowledgment clause removed) http://www.jdom.org
- log4j: Apache License, Version 2.0 http://logging.apache.org/log4j/
- Open Clip Art Library: Public Domain http://www.openclipart.org
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)
Bei Fragen und Anregungen wenden Sie sich bitte an Christian J. Eibl.







