MSP: Datenschutzkonformer Datenauszug

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Info.png

Modul-Entwickler beachten bitte die (Programmier-)Richtlinie für Modul-Entwickler.


Gruppenmitglieder

  • Christopher Allan
  • Peter Baus
  • Philipp Hoffmann (Projektleiter)
  • Martin Karry (Stellv. Projektleiter)
  • Björn Kasteleiner
  • Björn Rathjens

Vision document

Introduction

Im Rahmen der Veranstaltung Methoden des Softwareentwicklungsprozesses wollen wir als Projektgruppe mit 6 Studenten, die Lernplattform eStudy auf die Einhaltung der geltenden Datenschutzrichtlinien überprüfen und gegebenenfalls nachbessern.

Damit jeder Benutzer Einsicht in die über ihn gespeicherten Daten nehmen kann, soll im Wesentlichen die Generierung eines datenschutzkonformen Datenauszugs ermöglicht werden. Die gesammelten Daten sollen ferner auf Wunsch des Benutzers gelöscht werden können. Wenn dies (beispielsweise bei einer Prüfungsleistung) nicht möglich ist, dann soll stattdessen eine Anonymisierung / Pseudonymisierung durchgeführt werden. Für die angesprochenen Abläufe soll außerdem ein Verfahrensverzeichnis erstellt werden.

Business Needs/Requirements

  • Es ist zu analysieren, in wie weit sich die geltende Rechtslage auf den Datenauszug auswirkt. Das eStudy wird im Rahmen der FH Gießen-Friedberg betrieben und unterliegt damit als öffentliche Einrichtung des Landes Hessen besonderen Richtlinien.
  • Um einen vollständigen Datenauszug zu gewährleisten, ist zu überprüfen, wie und wofür Daten innerhalb des eStudy erfasst werden.
  • Da innerhalb des Datenauszugs die Möglichkeit bestehen soll, Elemente zu löschen oder unkenntlich zu machen, muss ein „technisch zumutbares“ Konzept zur Löschung und Anonymisierung der Daten ausgearbeitet werden.

Product/Solution Overview

Ist-Stand (user history):

  • Statisch (nicht verlinkt; Problem: Archivierte / Geschlossene Kurse)
  • Unvollständige und verkürzte Darstellung
    • inkonsistenter Datenauszug
    • nicht erreichbare Foreneinträge (durch Archivierung)
    • unvollständiger Auszug durch neue Module

Aufgaben:

  • Datenauszug überarbeiten
  • Forenbeiträge vollständig anzeigen oder verlinken
  • Neue Module im Datenauszug aufnehmen

Major Features (Optional)

  • Interaktivität durch geeignete Verlinkungen
  • Übersichtliche Anzeige (Chronologisch / Kategorien in Tabs)
  • Selektives und komplettes Löschen oder Anonymisieren / Pseudonymisieren
  • PDF Export

Scope & Limitations

Das Löschen, Anonymisieren / Pseudonymisieren:

  • von Beiträgen zu einer Prüfungsleistung darf nicht möglich sein.
  • stellt im Forum eine große Herausforderung dar, weil Namen in Zitaten und insbesondere im Text vorkommen können.

Other Needs

Durch Löschen, Anonymisieren / Pseudonymisieren soll die Community nicht wesentlich gestört werden.

Mission Statement

Entscheidungsfunktion

  • Regelmäßige Treffen: 1. + 2. Block am Montag (vor MSP)
  • Weitere Treffen
    • Weitere Treffen sind bei Bedarf möglich
    • Zu außerordentlichen Treffen wird mindestens 3 Tage im Voraus eingeladen.
    • Auf Einladungen ist dem Einladenden eine Teilnahmebestätigung zu schicken.
  • Abwesenheit
    • Begründetes Fehlen kann bis zum nächsten Tag beim Einladenden entschuldigt werden.
    • Wiederholtes (un)entschuldigtes Fehlen wird festgehalten und ggf. eskaliert.

Koordinationsfunktion

  • Projektleiter: Philipp Hoffmann
  • Stellv. Projektleiter: Martin Karry

Integrationsfunktion

  • Soziomat
  • höfliche Kommunikation
  • Online Verfügbarkeit über eStudy, Jabber und E-Mail

Orientierungsfunktion

  • Regelmäßige Teilnahme an Vorlesungen
  • Obligatorische Teilnahme an den Team-Treffen
  • Online Verfügbarkeit über eStudy, Jabber und E-Mail

Umsetzung des Projektauftrags

Erster Entwurf

Analyse der Gesetzeslage

Gesetzestexte

Der gesetzliche Rahmen für einen datenschutzkonformen Datenauszug ist durch die folgenden Gesetze und Verordnungen definiert:

  • Hessisches Hochschulgesetz (HHG)
  • Hessisches Datenschutzgesetz (HDSG)
    • §§ 8 Rechte der Betroffenen
      1. Auskunft und Benachrichtigung
      2. Überprüfung der rechtmäßigen Verarbeitung seiner Daten auf Grund von ihm vorgebrachter besonderer persönlicher Gründe
      3. Einsicht in das Verfahrensverzeichnis
      4. Berichtigung, Sperrung oder Löschung der zu seiner Person gespeicherten Daten
      5. Schadensersatz
      6. Anrufung des Datenschutzbeauftragten
    • §§ 12 Erheben, Absatz 4
      1. Werden Daten beim Betroffenen mit seiner Kenntnis erhoben, dann ist er von der datenverarbeitenden Stelle in geeigneter Weise über deren Anschrift, den Zweck der Datenerhebung sowie über seine Rechte nach § 8 aufzuklären.
      2. Die Aufklärungspflicht umfasst bei beabsichtigten Übermittlungen auch den Empfänger der Daten.
      3. Werden Daten bei dem Betroffenen auf Grund einer durch Rechtsvorschrift festgelegten Auskunftspflicht erhoben, dann ist er auf die Rechtsgrundlage hinzuweisen.
      4. Im übrigen ist er darauf hinzuweisen, dass er die Auskunft verweigern kann. Sind die Angaben für die Gewährung einer Leistung erforderlich, ist er über die möglichen Folgen einer Nichtbeantwortung aufzuklären.
  • Hessische Immatrikulationsverordnung (IMMAVo)
    • §§ 23 Aufbewahrungsfristen für Unterlagen von Hochschulprüfungen und zum Nachweis des Studiums

Rahmenbedingungen für den Datenauszug

Für einen Datenauszug müssen daher folgende Punkte zwingend beachtet werden.

  • Urheberrecht (UrhG)
    • Öffentliche Online-Abgabe von eigenen Werken darf nicht gefordert werden.
    • Foren oder ähnliche Plattformen können nicht als Ort von Prüfungsleistungen zählen.
    • Urheberrecht bleibt bestehen (auch nicht über AGB`s abschaffbar).
    • Eine freiwillige Kursteilnahme hebt dieses Recht nicht auf.
  • Sicherstellen von Urhebern und Echtheit
    • Die Authentizität eines Textes muss für prüfungsrelevante Daten sicherstellbar sein.
  • Allgemein
    • Der Datenauszug darf erst nach gesonderter Authentifizierung ausgeführt werden
    • Es müssen alle personenbezogene Daten die gespeichert wurden aufgezeigt werden.

Software Entwurf

Zur Realisierung des Datenauszugs entschieden wir uns für den Ansatz einer Schnittstellen-Implementierung. Dafür sprachen folgende Gründe:

  • Neue Module müssen nur die Schnittstelle implementieren und sich in der Datenbank registrieren.
  • Die Modul-Entwickler wissen selbst am besten, mit welchen Daten aus der Datenbank gearbeitet wird.
  • Wenn sich Module verändern, muss nicht das eigentliche Datenauszugs-Modul angefasst werden.

Schnittstelle

Datenauszugsschnittstelle und Klassenhierarchie

Die Schnittstelle umfasst die Methode getUserData(...), die als Parameter die ID des Benutzers erwartet. Diese wiederum gibt ein Array mit den entsprechenden Benutzerdaten zurück.

Folgende Werte werden von allen Modulen für die Aufbereitung der Informationen verwendet:

  • Identifikationsnummer des Datensatzes
  • Datum
  • Zugehöriger Kurs
  • Kurze Beschreibung des Inhalts
  • Der Inhalt des Datenauszugselements

Datenbankerweiterung

Die implementierten Schnittstellen in den eStudy-Modulen müssen dem Datenauszugsmodul bekannt gemacht werden. Dazu ist eine Datenbank-Tabelle vorgesehen, in der jedes Modul mit der Referenz auf die Schnittstellen-Klasse vermerkt wird.

Datenauszugsmodul

Das Verfahren des Datenauszugs lässt sich in folgende Schritte aufteilen:

  • Referenzen auf Schnittstellenimplementierungen aus der Datenbank auslesen
  • Jede Schnittstellenimplementierung aufrufen (Funktionsaufruf)
  • Ergebnisse speichern
  • Ergebnissmenge sortieren
  • Daten über die Ausgabeklassen ausgeben

Implementierung der Software

Das Projekt "Datenschutzkonformer Datenauszug" wurde mit agilen Methoden der Softwareentwicklung umgesetzt. Folgende Tools sollten dabei zum Einsatz kommen: XP-Web, eStudy-Planspiel, Subversion und diverse Entwicklungumgebungen. Das Team synchronisierte sich mit Hilfe von Jabber als Sofortnachrichten-Dienst sowie Skype als Telko-Platform für Konferenzschaltungen. Zu wichtigen Teammeetings wurde traditionell per E-Mail eingeladen.

Das komplette Projekt befinden sich auf dem SVN-Server der FH-Giessen. Die einzelnen implementierten Klassen werden in diesem Abschnitt aus dem MSP- Branch verlinkt.

Datenauszugsmodul

Schnittstellenimplementierung

In den folgenden Modulen wurde die Datenauszugsschnittstelle bereits von der Projektgruppe implementiert.

Modul Klasse SVN-Verweis
Benutzerdaten UserDataUser user/classes/class.userdatauser.inc.php
Mitteilungen UserDataNews news/classes/class.userdatanews.inc.php
Forum UserDataForum forum/classes/class.userdataforum.inc.php
Private Nachrichten UserDataMessaging messaging/classes/class.userdatamessaging.inc.php
Dateien & Links UserDataResources ressourcen/classes/class.userdataresources.inc.php

Dokumentation

Eine Ausführliche Dokumentation wurde mit Doxygen erstellt:

Als PDF-Datei
Als gezippte HTML-Seiten

Zusammenfassung und Ausblick

Der aktuelle Stand der Implementierung stellt eine solide Grundlage für einen Datenauszug in eStudy dar. Dank der Lösung mit Hilfe der Implementierung einer Datenauszugsschnittstelle in allen eStudy-Modulen, gibt es nun eine erweiterbare und wartbare Lösung für den Datenauszug. Nun liegt es an den Modulverantwortlichen, die Schnittstelle zu implementieren, um die Vollständigkeit des Datenauszugs zu gewährleisten. Dieser Wiki-Artikel sollte dabei eine Stütze in der Entwicklung sein.

Das Datenauszugsmodul bietet noch offene Punkte zur Verbesserung, die im Rahmen dieses Projektes nicht umgesetzt werden konnten. Aus zeitlichen sowie auch aus rechtlichen Gründen.

  • Derzeit wird vor der Anzeige des Datenauszugs nicht noch einmal das Passwort des Benutzers geprüft. Aufgrund von Problemen (mit Seiteneffekten der common/classes/class.auth.inc.php) wurde eine solche Abfrage aus Sicherheitsgründen vorläufig wieder entfernt.
  • Löschen von Daten - zurzeit wird der Benutzer darauf hingewiesen, seine Daten von Hand zu löschen. Die Modularchitektur bietet jedoch die Möglichkeit, dies zu einem späteren Zeitpunkt noch umzusetzen.
  • In manchen Modulen können oder dürfen die Inhalte nicht gelöscht werden. Hierfür sollte ein Anonymisierungs- und Pseudonymisierungs-Mechanismus implementiert werden.
  • Wenn ein Benutzer seinen Datenauszug drucken möchte, kann er dies derzeit nur über die Druckfunktion des Webbrowsers tun. Hierfür würde sich ein PDF-Export, der die Daten aufbereitet darstellt, anbieten.

Programmier-Richtlinie für Modul-Entwickler

Info.png

Um die volle Funktionalität des Datenauszugmoduls und seiner Komponenten sicherzustellen, ist es notwendig, die eStudy-Basis-URL richtig einzustellen.

Um dem Datenauszug ein weiteres Modul hinzuzufügen, sind die folgenden Schritte notwendig:

Implementierung der Schnittstelle

Das Interface UserDataProvider

  • Durch das Interface UserDataProvider ist die Methode "getUserData($user)" gefordert, die implementiert werden muss.
    • In dieser Methode muss die Klasse die benötigten Daten für den Datenauszug sammeln
    • diese Methode muss ein Array zurückgeben, das im Folgenden beschrieben wird
  • Darüber sind einige Konstanten definiert, welche als Indizes des assoziativen Arrays dienen, dass von dieser Methode zurückgegeben wird
    1. ID : Ein Identifizierer, mit dem das Modul jeden Eintrag eindeutig wiederfinden kann, um in Zukunft weitere Funktionen (z.B. Löschen) zu ermöglichen
    2. DATE: Ein Datum, an dem der Eintrag geschrieben wurde
    3. HINT: Eine Kurzbeschreibung des Eintrags
    4. CONTENT: Der eigentliche Inhalt des Eintrags
    5. COURSE: Den Kurs oder die eCom, in dem der Eintrag geschrieben wurde

Die abstrakte Klasse UserDataAdapter

  • erweitert das Interface UserDataProvider
  • Die abstrakte Klasse UserDataAdapter stellt zwei Hilfsfunktionen, die das Erstellen neuer Auszugsmodule erleichtern sollen
  • Die Methode "getBaseUrl()" liefert die Domain und den Unterordner, in dem eStudy installiert ist. Hier muss der Modulentwickler nur noch seinen speziellen Pfad anhängen, um auf Einträge aus seinem Modul verlinken zu können
  • Die Methode "executeQuery($query)" ist eine Methode, die eine Datenbankabfrage durchführt und das Ergebnis als assoziatives Array zurückgibt, wobei $query ein reguläres SQL-Query enthält.
  • Klassenbeginn
require_once(PATH_TO_ROOT.'/user/classes/class.userdataadapter.inc.php');
/**
 * @see UserDataProvider
 */
class Klassenname extends UserDataAdapter { ... }

Eintragen in die Datenbank

  • In der Datenbanktabelle "userdata_modules" muss das neue Modul eingetragen werden
INSERT INTO `userdata_modules` (`script`, `class`, `name`) VALUES
('pfad/zur/datenauszugsklasse.inc.php', 'Klassenname', 'Name des Modules im Datenauszug');

Projektabschluss

Die „Start-Stop-Wieder-tun“-Liste

Was wir das nächste Mal beginnen werden zu tun, ist...

  • Bessere Organisation im Team
  • Mehr Koordination
  • Mehr delegieren
  • Zusammenarbeit mit Kursleitung verbessern

Was wir das nächste Mal nicht mehr tun werden, ist...

  • Aufgaben redundant abarbeiten
  • Arbeit anderer ablehnen
  • Absprachen brechen
  • Verschiedene Stände der Entwicklungsumgebung zulassen

Was wir das nächste Mal wieder tun werden, ist...

  • Regelmäßige Treffen
  • Harmonie im Team fördern
  • Einzelne Aufgaben an Klein-Gruppen delegieren
  • Kommunikation im Team


Links

MSP Kurs Branch

Hessisches Datenschutzgesetz

Hessisches Hochschulgesetz

Hessische Immatrikulationsverordnung

Einzel Hausübungen

"komplett Download-Feature" von --Kasteleiner-BKae3 10:58, 22. Apr. 2009 (UTC)

"Newsletter 2.0" von --Hoffmann-PHo58 11:04, 22. Apr. 2009 (UTC)

"AJAX-Kurswahlliste" von --Allan-CAl und Rathjens-BRa 11:09, 22. Apr. 2009 (UTC)

"Ansicht Datenauszug" von Baus-PBa 17:29, 22. Apr. 2009 (UTC)

Dokumentverantwortliche