Die Nutzung von elektronischen Kalendern zur Planung und Verwaltung spielt eine enorme Rolle für viele Privatleute und in vielen Unternehmen.
Firmeninterne und -übergreifende Geschäfte nutzen in vielen die Möglichkeiten von Kalender (Groupware) Applikationen. Mithilfe des iCalendar Standards existiert ein interoperabler Standard zum Austausch von Kalenderinformationen.
Die neue Campus-Software ,,Dualis'' der Dualen Hochschule Baden-Württemberg stellt den Studenten einen elektronischen Vorlesungsplan zur Verfügung. Eine Schnittstelle zur Anbindung an gängige Kalenderlösung wird jedoch nicht bereitgestellt.
Das Ziel dieses Projektes ist es, einen Adapter bereitzustellen mithilfe dessen der ,,Stundenplan'' aus dem ,,Dualis'' System der Dualen Hochschule Baden-Württemberg in eine iCalendar-kompatible Anwendung importiert werden kann.
Dualis ist das interne Verwaltungssystem der DHBW. Es basiert auf der Software ,,CampusNet'' der Firma Datenlotsen Informationssysteme GmbH, Hamburg.
Unter dem Namen ,,BAsys Neu'' wurde Dualis als Ablösung des alten ,,BAsys''-Verwaltungssystem entwickelt. Die Endung ,,-is'' steht für Informationssystem.%cite %http://www.dhbw-stuttgart.de/themen/aktuelles/meldung/2008/11/basys-wird-dualis.html
Studierende können über den Dualis Web-Client ihre Noten, eine Leistungsübersicht über das gesamte Studium und ihren aktuellen Stundenplan einsehen.
iCalendar ist ein Internet Standard (RFC 5545) um Kalenderinformationen auszutauschen.
Dabei gibt es Verschiedene Klassen wir Event, To-Do oder Free/Busy-Information. Im Rahmen dieses Projekts werden nur Events genutzt.
iCalendar Daten besitzen den MIME Content-Type \texttt{text/calender}. Die Daten sind in einem einfachen, ASCII Key-Value Format aufgebaut.
Grundsätzlich bestehen iCalendar Daten aus folgendem Block
BEGIN:VCALENDAR PRODID:-//xyz Corp//NONSGML PDA Calendar Version 1.0//EN VERSION:2.0 .... Event, To-Do, Journal, Free/Busy, Time Zone, Alarm Component ... END:VCALENDAR
Eine Event-Component ist wie folgt aufgebaut, wobei noch weitere optionale Felder möglich sind:
BEGIN:VEVENT DTSTAMP:19960704T120000Z UID:uid1@example.com ORGANIZER:mailto:jsmith@example.com DTSTART:19960918T143000Z DTEND:19960920T220000Z STATUS:CONFIRMED CATEGORIES:CONFERENCE SUMMARY:Networld+Interop Conference DESCRIPTION:Networld+Interop Conference and Exhibit\nAtlanta World Congress Center\n Atlanta\, Georgia END:VEVENT
Wie zu sehen ist bestehen besondere Vorgaben für Zeit- und Textformatierung.
Zeiten können in der UTC-Zone im Format \texttt{YYYYMMDDTHHmmssZ} dargestellt werden. \texttt{T} ist ein Trenner zwischen Datum und Zeit, \texttt{Z} zeigt an, dass es sich um einen UTC-Timestamp handelt\footnote{RFC5545 Sec. 3.3.5}.
Text wird grundsätzlich als ASCII-Test dargestellt. Es bestehen jedoch Fluchtzeichen für nicht-ASCII Zeichen und Satz- und Kontrollzeichen \footnote{RFC5545 Sec. 3.3.11}.
Dem Anschein nach ist der Dualis Web-Client mithilfe der Software Oracle Application Express (APEX) entwickelt. Das erzeugte Markup ist schlecht maschienenverarbeitbar, vermutlich weil es auf die Anzeige gegenüber einem menschlichen Benutzer ausgerichtet ist.
Eine Web-API von Dualis gibt meines unseres Wissens nach nicht. Demzufolge müssen die Webseiten relativ umständlich analysiert werden, um an die benötigten Informationen zu gelangen. Diesen Vorgang nennt man Web-Scraping (engl. ,,kratzen'').
Dadurch wird die Schnittstelle anfälliger für kleinere Änderungen an dem Dualis Web-Client. Schon das Ändern der Beschriftung eines bestimmten Links kann die Funktion beeinträchtigen.
Für einen zuverlässigen Betrieb ist es daher unbedingt nötig, dass von Seiten des Dualis System eine stabile Schnittstelle mit einem zum Informationsaustausch geeigneten Format (zum Beispiel eine XML-Schnitstelle nach dem HTTP/REST Prinzip) angeboten wird. Oder einfach direkt eine iCalendar Schnittstelle.
Zum ,,kratzen'' der Informationen aus dem HTML-Dickicht der Dualis Website wird die Java-Bibliothek htmlunit Verwendet. Deren eigentlicher Zweck ist das automatisierte Headless Testen von Websites. Dazu ist sie in der Lage einen Web-Browser inklusive JavaScript und CSS weitgehend zu emulieren.
Dies sind optimale Ausgangsbedingungen um eine schwer zugängliche Seite wie Dualis einfach auszuwerten.
Ein vereinfachtes Code-Beispiel verdeutlicht die Arbeit mit htmlunit:
... WebClient webClient = new WebClient(); loginPage = webClient.getPage(DUALIS_URL); loginForm = loginPage.getFormByName("cn_loginForm"); usernameField = loginForm.getInputByName("usrname"); usernameField.type(username); passwordField = loginForm.getInputByName("pass"); passwordField.type(password); submitButton = loginForm.getInputByValue("Anmelden"); page = submitButton.click(); HtmlAnchor anchorByText; anchorByText = page.getAnchorByText("Stundenplan"); page = anchorByText.click();
TBD
Die gängige Methode zum Austausch von iCalendar Daten sind entweder lokale Files oder der entfernte Zugriff über HTTP.
Mit diesem Projekt wird der Zugriff über HTTP ermöglicht. Dabei entfällt zusätzlich der Bedarf eine Benutzerkonfiguration zu pflegen. Der Benutzer kann über HTTP Basic Authentication\footnote{RFC 1945 Sec. 11.1}.
Hierzu wurde ein Java-Servlet erstellt welches die Authentifizerung und Steuerung der Dualis Abfrage übernimmt.
Bei der Ansteurerung der Schnittstelle über einfache HTTP-Software ist zu beachten, dass das \texttt{@} im benutzername mit \texttt{\%40} zu escapen ist.
Zusätzlich zur ICS-Schnittstelle existiert eine Schnittstelle für den Webbrowser. Sie ist mit dem Framework vaadin\footnote{\url{http://vaadin.com}} umgesetzt und bietet die Funktionalität den Login durch eine Anmeldung zu testen sowie den ,,Stundenplan'' in einer Tabelle zu Betrachten.
Wie alle Systeme die Authentifizierungs und Benutzerdaten verarbeiten ist dieses hinsichtlich der Vertrauenswürdigkeit zu untersuchen.
Hinsichtlich der Authentifizierungsinformationen die der Benutzer DHBW~Calendar übergibt sind mehrere Angriffspunkte auszumachen.
Problempunkt | Analyse |
---|---|
Auf dem PC des Benutzers | Für die Sicherheit auf seinem Zugriffsgerät ist jeder Benutzer selbst verantwortlich. |
Die Netzwerkverbindung zum DHBW Calendar | Die Netzwerkverbindung zum DHBW~Calender sollte entweder als direkte Lokale Kommunikation ablaufen (der DHBW~Calender arbeitet lokal) oder eine sichere Verbindung (HTTPS) verwenden. |
Die Verarbeitung im DHBW Calendar | Die Verarbeitung im DHBW~Calender speichert die verarbeiteten Daten vorübergehend im Arbeitsspeicher des darunterliegenden System. |
Die Netzwerkverbindung zu Dualis | ist verschlüsselt (HTTPS) %%TODO check was bei unügliten cets passiert |
Die Verarbeitung in Dualis | Über die Verarbeitung innerhalb von Dualis existieren keine Informationen. |
ggf. weitere Verbindungen von Dualis (AD o.ä.) | Über mögliche Kommunikationen von Dualis mit Drittsystem bestehen keine Informationen. |
Durch die quelloffenheit des DHBW~Calendar ist die Verarbeitung der Daten transparent. Daher entstehen dem Anwender durch die Verwendung des DHBW Calender keine weiteren Sicherheitsrisiken.
Die Entwicklung des DHBW~Calendar ermöglicht den Studenten in bezug auf die Organisierung ihres Studentalltags eine neue Dimension von Integration und Komfort.
Der Unzuverlässigkeit des Backend ,,Dualis'' wurde durch die Verwendung einer High-Level Schnittstelle begegnet. Anstatt regulärer Ausdrücke (DHBW Connector) werden die Eingabeelemente angesprochen welche der Benutzer auch sehen würde.
Die Veröffentlichung als Open-Source Projekt stellt das Vertrauen der Studenten sowohl in Hinsicht auf ihre eigene Sicherheit, als auch der Zuverlässigkeit hinsichtlich möglicherweise zukünftig nötiger Anspassungen.