Inhalt

3. SICHERHEITSASPEKTE

3.1 Einleitung

Der Abschnitt Sicherheitsaspekte beschäftigt sich mit Datenschutzaspekten, die das Projekt "Simulation in 3D Informationssystemen" betreffen. Es soll dargestellt werden, aus welchen Gründen Datenschutz notwendig ist und wie dieser im Rahmen der Möglichkeiten im Projekt umgesetzt wurde.

Die folgenden Seiten unterteilen sich dabei in folgende Unterbereiche:


 

3.2 Datenschutz

3.2.1 Datenschutz: Warum und Wie?

Im Rahmen des Projektes werden dem Benutzer eine große Anzahl von Daten zur Information, zur reinen Ansicht und zur Modifikation zur Verfügung gestellt. Diese Daten werden in einer Datenbank festgehalten und grafisch aufbereitet.

Dabei ist es angebracht, Aspekte des Datenschutzes (siehe auch: Exkurs Datenschutz) zu berücksichtigen, und zwar aus folgenden Gründen:

Die Begriffe Informationen und veränderbare Daten sind im Rahmen des Projektes im mehrfachen Kontext zu verstehen. Damit sollen zum einen die konkret zur Verfügung gestellten Informationen bezeichnet werden, wie beispielsweise die Öffnungszeiten eines Sekretariats, dargestellt auf einem Türschild (als Bild) oder auf auf einer HTML-Seite (als Text). Gleichermaßen sind auch die Daten und Metadaten zur Navigation und Betrachtung des virtuellen 3D-Informationsraums gemeint, also zum Beispiel die Anordnung der Innenausstattung eines Raumes oder die Information, ob die Berechtigung einen Raum zu betreten, vorliegt.
 
 

Die Gefahren der Datenintegrität, -authentizität und des uneingeschränkten Datenzugriffs sind im Rahmen des Projektes nicht auszuschließen, und zwar an folgenden zwei Stellen:
 

Das Thema der folgenden Abschnitte ist nun die Behandlung dieser zwei Sicherheitslücken, die prinzipiell jedes System aufweist und je nach Anwendungsbereich ein mehr oder weniger großes Problem darstellt.

Die Probleme der offenen Datenübertragung werden im folgenden nur kurz angesprochen. Es werden einige Sicherheitsmechanismen vorgestellt, mit denen die Übertragung von Daten "sicherer" wird. Diese Sicherheitsmechanismen sind aber im Rahmen des Projektes nicht zur Implementierung vorgesehen, da sie die Übertragungsprotokolle im allgemeinen ansprechen.

Das Schwerpunktthema ist die Zugriffsverwaltung. Dieses Thema wird detailliert dargestellt und eine mögliche Implementierung für das Projekt präsentiert. Es wurde ein Benutzerkonzept entworfen und in einer Benutzerverwaltung umgesetzt.

Exkurs: Datenschutz


Die Technologie von Computersystemen ist in nahezu jeden Lebensbereich eingedrungen und breitet sich mehr und mehr aus. Beim Einkaufen, Zahlen, Buchen und Reservieren mittels bequemer Chip- oder Magnetstreifenkarten, bei der Kommunikation mittels digitaler Netze, bei Arztbesuchen mit Krankenversichertenkarten oder evtl. zukünftig mit Patientenkarten, auch durch Teilnahme an Online-Diensten sowie an nationalen und internationalen Netzwerken.
  Das weltweite Computernetz Internet, in dem hunderttausende größere Rechnerverbünde und somit Millionen einzelner Computer zusammengeschlossen sind, hat sich zum weltgrößten und mächtigsten globalen Informations- und Kommunikationsmedium entwickelt.

Durch das Internet können viele Prozesse kostengünstig abgebildet werden, sofern sie maschinell umsetzbar sind. Aufgrund der Tatsache, daß diese nicht überwacht werden müssen, ermöglichen sie ein großes Spar- und Ausbaupotential.

Bei der Nutzung der Computersysteme fallen eine Fülle von Einzeldaten über den Nutzer an. Diese elektronischen Spuren sind geeignet, persönliche Profile über den Einzelnen hinsichtlich seines Verhaltens zu bilden.
Aus diesen Gründen entwachsen jedoch gleichermaßen große Gefahren für die Systemsicherheit. Wenn ein unsicheres Glied der Prozeßkette geknackt wird, dann ist möglicherweise das ganze System in Gefahr. Informationen, die elektronisch gespeichert und übertragen werden, können - stelleweise sogar unbemerkt - kopiert, manipuliert und gelöscht werden.

Insbesondere der Anschluß an das Internet ist mit erheblichen Gefährdungen des Datenschutzes und der Datensicherheit verbunden. Die Rechner und Übertragungswege dieses weltweiten Computernetzes sind nicht kontrollierbar. Welchen Weg eine Nachricht nimmt oder in welchem Vermittlungsrechner die Nachricht bearbeitet wird, ist nicht transparent. Denn das Internet wurde ursprünglich nur unter Verfügbarkeitsaspekten entwickelt - auch wenn neuere Entwicklungen versuchen, weiteren Sicherheitsbedürfnissen Rechnung zu tragen. Deshalb wird den Risiken für Vertraulichkeit, Integrität und Zurechenbarkeit vielfach nicht in der gebotenen Weise begegnet. Schwächen finden sich in den Protokollen für die Datenübertragung, in den Implementierungen und Installationen der Programme für die Internet-Dienste und in den angeschlossenen Rechnersystemen. Ohne besondere Schutzmaßnahmen kann sich ein Angreifer oft mit wenig Aufwand unter Ausnutzung der Sicherheitslücken unberechtigten Zugang zu fremden Rechnern verschaffen und dort Daten ausspähen oder sogar manipulieren oder zerstören. Dies ist besonders gravierend, weil angesichts von mehreren hundert Millionen Internet-Teilnehmern auch die Zahl der potentiellen Angreifer, die diese Sicherheitslücken ausnützen und somit die am Internet angeschlossenen Verwaltungsrechner bedrohen, sehr groß ist.
 
 

Grundbedrohungen

Abhängig vom Zweck gibt es Bedrohungen, denen eine Kommunikation ausgesetzt ist:
- Verlust der Vertraulichkeit
Unter Vertraulichkeit von Informationen versteht man die Tatsache, daß die Informationen nur Befugten zugänglich sind und kein unbefugter Informationsgewinn stattfinden kann.
- Verlust der Integrität
Unter Integrität von Informationen versteht man die Tatsache, daß Informationen nur von Befugten in beabsichtigter Weise verändert und nicht unzulässig modifiziert werden können.
- Verlust der Verfügbarkeit
Mit Verfügbarkeit bezeichnet man den Tatbestand, daß Funktionen eines IT-Systems ständig innerhalb einer vorgegebenen Zeit, die von Funktion zu Funktion unterschiedlich sein kann, zur Verfügung stehen und die Funktionalität des IT-Systems nicht vorübergehend oder dauerhaft beeinträchtigt ist.
- Verlust der Verbindlichkeit
Verbindlichkeit bedeutet in diesem Zusammenhang, daß Informationen korrekt sind, die Nachweisbarkeit des Sendens und Empfangens gegeben ist, elektronische Unterschriften geleistet werden können und neutrale Gutachter existieren. Die Methoden und Verfahren müssen auch juristisch akzeptiert werden. Dies betrifft insbesondere vertragliche Transaktionen, die über Kommunikationssysteme zustande kommen.
- Verlust der Anonymität
Anonymität bedeutet die Möglichkeit, Transaktionen durchzuführen, ohne den anderen Institutionen die eigene Identität preisgeben zu müssen. Bei Streitigkeiten müssen die Transaktion und die beteiligten Partner rekonstruierbar sein. Die theoretische Möglichkeit, so zu verfahren, wurde nachgewiesen. Diese - aus Sicht des Datenschutzes wesentliche - Grundbedrohung wird oft nicht gesondert aufgeführt, sondern auch unter den "Verlust der Vertraulichkeit" gefaßt.

3.2.2 Datenübertragung

Datenübertragungen von einem Computer zu einem anderen erfolgen in der Regel über Netzwerke und im zunehmenden Maße über das Internet, dem weltweiten Zusammenschluß von vielen Netzwerken.
Insbesondere der Anschluß an das Internet ist mit erheblichen Gefährdungen des Datenschutzes und der Datensicherheit verbunden, denn die Rechner und Übertragungswege dieses weltweiten Computernetzes sind kaum kontrollierbar.

Unsichere und sichere Datenuebertragungswege
Aufgrund der Struktur des Internets ergeben sich zwei wesentliche Ursachen, die die Datenübertragung so unsicher machen:
Das ist zum einen die Tatsache, dass der Weg der Datenpakete oftmals nicht ohne weiteres voraussagbar ist. Die Datenpakete koennen ihren Weg ueber viele Zwischencomputer gehen, welche nicht unbedingt als vertrauenswuerdig anzusehen sind, weil sie die Datenpakete eventuell unbemerkt umleiten oder manipulieren koennen. Absender und Empfaenger eines Datenpaketes muessen diesen Vorgang noch nicht einmal bemerken, wenn der Zwischenhost diesen Vorgang geschickt verschleiert.
Der zweite Grund ist ebenso gravierend und stellt in Kombination mit dem ersten Grund ein grosses Sicherheitsproblem dar: Sofern keine Sicherheitsmassnahmen getroffen werden, ist die Kommunikation offen, so dass die uebertragenen Informationen von jeder Stelle auf dem Uebertragungsweg einsehbar sind.

Der erste Punkt ist kaum zu beeinflussen. Das Problem der offenen Datenuebertragung kann hingehen dadurch eingedaemmt werden, indem die Informationen verschluesselt uebertragen werden. Die Daten bleiben dadurch zunaechst weiterhin lesbar, sind aber durch die Verschluesselung nicht mehr interpretierbar. Zudem kann eine Authentifizierung der Kommunikationspartner angefordert werden, d.h. es wird sichergestellt, dass die Kommunikation wirklich mit der gewuenschten Gegenstelle erfolgt und nicht mit einem Angreifer, der die Identitaet der eigentlichen Gegenstelle nur vortaeuscht.

Es existieren eine Reihe von Verschluesselungs- und Authentifizierungsmechanismen, von denen nur SSL angesprochen werden soll:

SSL: Secure Sockets Layer

SSL ist ein Protokoll, das die Datensicherheit auf einer Schicht zwischen HTTP und TCP/IP gewährleistet. Dieses Sicherheitsprotokoll, genannt SSL (Secure Sockets Layer), ermöglicht Datenverschlüsselung, Echtheitsbestätigung von Servern und Sicherstellen der Nachrichtenintegrität für TCP/IP-Verbindungen. SSL ist der W3C-Arbeitsgruppe für Sicherheit als Standard für die Sicherheit von World Wide Web-Browsern und -Servern im Internet vorgelegt worden.

SSL führt vor dem Aufbau einer TCP/IP-Verbindung eine Sicherheitsüberprüfung ("Handshake") durch. Diese Überprüfung legt die Sicherheitsstufe fest, auf die sich der Client und der Server einigen, und übernimmt die notwendigen Echtheitsbestätigungen für die Verbindung.

Während die Verbindung besteht, übernimmt SSL die Ver- und Entschlüsselung des Datenstroms des verwendeten Protokolls (z.B. HTTP beim WWW-Dienst). Sämtliche Informationen, sowohl die der HTTP-Anfrage als auch die der HTTP-Antwort, werden vollständig verschlüsselt. Dazu gehört auch die URL, die der Client anfordert, die in Formularen übermittelte Informationen (wie etwa die Nummer einer Kreditkarte), die Informationen zur Echtheitsbestätigung des HTTP-Zugriffs (Benutzernamen und Kennwörter) sowie alle Daten, die der Server an den Client überträgt.

(siehe auch : www.w3.org/Security/)

Optimierte Architektur

Für bestimmte Anwendungen kann die Gefahr der Datenintegritaet durch eine optimierte Architektur eingedaemmt werden. Die Konsequenzen aus den Gefahren des Abhörens und der Manipulation lassen sich dadurch minimieren.

Das Konzept der optimierten Architektur lautet folgendermaßen:
Aufgrund des Bewusstseins, dass die oeffentlichen Kommunikationskanaele unsicher sind, werden ueber diese Kanäle kaum sensible Daten verschickt. Ein Kooperationspartner, der mit dem eigentlichen Zielsystem ueber eine sichere nichtoeffentliche Verbindung verbunden ist, empfaengt diese Daten und dient dabei als Vermittler. Der Vermittler filtert unzulässige Anfragen und übersetzt die unkritischen Anfragen, welche keine kritischen Daten enthalten, in konkrete Anfragen mit zu schützendem Inhalt.
Als Beispielszenario soll hier die Benutzung einer Datenbankverbindung dargestellt werden.
Es ist in der Regel notwendig, sich einem Datenbankmanagementsystem gegenueber mittels eines Benutzernamens und eines Passwortes zu authentifizieren. Mit Kenntnis dieser Authentifizierungen ist eine bestimmte Menge von Operationen auf diesem Datenbankmanagementsystem moeglich.
Moeglicherweise soll jedoch diese Menge von Operationen abhaengig von aeusseren Einfluessen zeitweise kleiner sein, also Restriktionen unterliegen, die das Datenbankmanagementsystem selber nicht anbietet (Beispielsweise das Verbot von mehrfachen Zugriff unter einem Benutzernamen zu einer bestimmten Uhrzeit).
Anders gesagt, mit Kenntnis der Authentifizierungen ist ein Anwender nicht an die gewuenschten Restriktionen gebunden und es ist somit der Zugriff auf das Datenbankmanagementsystem moeglich.
Die Konsequenz daraus ist eine Vorgehensweise, bei der einem externen Benutzer durch fehlende Authentifikation keine direkte Datenbankanbindung moeglich gemacht wird. Die Datenbankanbindung wird nur durch ein Mittlersystem gewaehrleistet, welches sich beliebig einrichten laesst, also auch sehr dynamisch Restriktionen einsetzen kann.
Dadurch, dass die Kommunikation mit dem Datenbanksystem stets ueber das Mittlersystem erfolgt, brauchen auf dem unsicheren Kommunikationskanal keine sicherheitskritischen Daten, wie zum Beispiel die Authentifizierungsdaten uebertragen werden. Der Anwender fragt auf dem Mittlersystem ueber einen allgemeinen Befehl eine Datenbankverbindung an ("startConnection()"). Bestehen von seiten des Mittlersystems keine Einwaende gegen diese Datenbankverbindung, so wird ueber den viel kuerzeren, sicheren Kanal die Authentifizierung gegenueber dem Datenbankmanagementsystem abgewickelt ( if (okay) { db_handle=connectDB() } ).
Die Anbindung an das Datenbankmanagementsystem (DBMS) ist somit erfolgt, der externe Anwender hat jedoch nur indirekten Zugriff. Um Operationen auf dem DBMS durchzufuehren, muss weiterhin das Mittlersystem angesprochen werden, welches entscheiden kann, welche Operationen wirklich ausgefuehrt werden sollen. Somit lassen sich durch das Mittlersystem kritische Operationen auf dem DBMS von vornherein abfangen.


Status der Umsetzung

3.2.3 Zugriff auf Daten

Der Zugriff auf Daten laesst sich genauer klassifizieren.
Manche Daten koennen nur abgerufen werden, ohne daß sie modifiziert werden können.
Andere Daten koennen nach dem Abrufen auch verändert werden.

Darueber hinaus kann man noch den Fall betrachten, dass die Existienz von Daten oder deren Struktur, Anordnung, Bezeichnung etc. - unabhaengig vom eigentlichen Informationsgehalt der Daten - nicht immer preisgegeben werden soll. Das heisst, im dritten Fall sind Informationen ueber die eigentlichen Daten gemeint, also Metadaten.

3.2.3.1 Abruf von Daten

Der Abruf von Daten ohne deren Modifikation ist die am wenigsten kritische Anwendung.
Im Alltag begegnet man einer sehr großen Anzahl von bereitgestellten Informationen, die bewußt oder unbewußt aufgenommen werden, wie zum Beispiel die Preisangabe eines Verkaufproduktes oder die Lichtsignale einer Ampelanlage. Diese Informationen können aufgenommen werden, weil sie zur Verfügung gestellt werden.

Es gibt jedoch auch Informationen, die bewußt nur einem beschränkten Personenkreis zugänglich gemacht werden, wie beispielsweise der Herstellerpreis eines Produktes oder die Anschriften der Mitarbeiter einer Firma.
Der Abruf dieser Daten ist somit nur eingeschränkt möglich. Diese Daten liegen zwar ebenso uncodiert vor wie allgemein zugängliche Daten, der Abruf wird jedoch durch eine Zugriffsbeschränkung verhindert.

Aus der Sicht des Datenschutzes muß also die Entscheidung gefällt werden, ob eine Information allgemein oder nur von einer Einzelperson bzw. einer bestimmten Personengruppe abrufbar sein soll.

3.2.3.2 Ändern von Daten

Das Ändern von Daten ist oftmals nicht möglich.
Das liegt zum Beispiel daran, daß der Urheber der Daten ein Exklusivitätsrecht durchsetzen möchte.
Ein weiterer Grund ist, daß die Datenauthentizität gewährleistet bleiben soll. Manche Informationen bleiben für die Empfänger nur authentisch, wenn sie wissen, daß nur bestimmte Personen diese Daten modifizieren können.

3.2.3.3 Metadaten

Metadaten stellen Informationen über eigentliche Daten dar.
Beispielsweise stellen der Verfasser und die Länge einer Nachricht Metadaten einer Nachricht dar. Diese Informationen stehen in keinem unmittelbaren Zusammenhang zur Nachricht selber. Denn der Verfasser kann eine zweite Nachricht in selber Länge verfassen, die (zwei betrachteten) Metadaten sind für diese zweite Nachricht die gleichen.
Andersherum kann eine andere Person eine identische Nachricht verfassen, wie die erste Person. Dadurch ist zwar die Nachricht selber die gleiche (bzw. dessen Informationsgehalt), die Metadaten sind jedoch verschieden, da der Verfasser nicht der selbe ist.

3.3 Die Benutzerverwaltung

3.3.1 Einleitung

Es ergibt sich also der Wunsch, einen benutzerabhängigen Zugriff auf die Daten zu realisieren.
Informationen sollen nicht von jedem gelesen und geändert werden können.
Das Anwendungssystem soll den Benutzern individuelle Zugriffsrechte auf Informationen zuweisen können.

Die Konsequenz daraus ist die Einführung einer Benutzerverwaltung.

Die Benutzerverwaltung, die im folgenden vorgestellt wird, regelt die Zugriffsrechte im System unter folgenden Aspekten: Die Umsetzung dieser Benutzerverwaltung realisiert also die Speicherung und Administration der Benutzerdaten und -rechte.

3.3.2 Erweiterung des ER-Modells

Die Benutzerdaten und -rechte verhalten sich sehr dynamisch, d.h. sie können jederzeit von mehreren Seiten geändert werden. Aus diesem Grunde wird die Speicherung dieser Informationen in einer Datenbank vorgenommen.
Zur Planung der Datenbankstruktur wurde ein Entity-Relationship(ER)-Modell entworfen, welches an
das bereits vorhandene ER-Modell anknüpft.

In diesem ER-Modell sind drei Entities und drei Relationen zu finden: [GRAFIK: ER-MODELL]

3.3.3 Tabellen

3.3.4 Benutzerverwaltung: Benutzung

Damit die Benutzerverwaltung auf eine einfache Weise von den beiden Gruppen "Editor" und "Browser" genutzt werden kann, wurden einige Java-Klassen erstellt. Diese Klassen kapseln die Nutzung der Benutzerverwaltung-spezifischen Klassen und bieten abstrakte, einfacher zu benutzende Konstrukte, so daß nicht direkt auf der Datenbank gearbeitet werden muß.

Es existieren folgende Klassen:
User Die Klasse User stellt Methoden zur Verfügung, die direkt mit einem einzelnen Benutzer zusammenhängen, wie z.B. die Abfrage der Zugriffsrechte dieses Benutzers auf einen bestimmten Raum oder die Ausübung von Zugriffsänderungsoperationen.
Group Die Klasse Group stellt Methoden für Gruppen von Benutzern zur Verfügung, wie z.B. die Abfrage der Zugriffsrechte dieser Gruppe auf einen bestimmten Raum oder die Auflistung der Mitglieder dieser Gruppe.
Access Die Klasse Access bietet eine generelle Sicht auf die Benutzerverwaltung. Sie stellt sozusagen die oberste Zugriffsschicht auf die Benutzerverwaltung dar. Ein Benutzer wird beispielsweise über die Klasse Access am System angemeldet.

Benutzung

Die Vorgehensweise bei der Benutzung der Klassen ist in etwa folgende:

Für weitere Nutzungsmöglichkeiten kann die
javadoc-Dokumentation konsultiert werden.

3.3.5 Benutzerverwaltung: Administrationstool

Bei der Verwendung der Benutzerverwaltung wird auf die zuvor vorgestellten sechs Tabellen zurückgegriffen. Da jedoch nicht nur Dateninhalte ausgelesen, sondern teilweise auch geändert oder neue hinzugefügt werden, muß ein Werkzeug bereitgestellt werden, welches die Verwaltung dieser Daten ermöglicht, dem sogenannten Administrationstool.

Das Administrationstool wird als Applet in einem Appletviewer ausgeführt. Es wird gestartet mit dem Befehl

appletviewer Administrationstool.html
Da das Administrationstool auf zahlreiche zu schützende Daten zugreift, ist eine Identifizierung des Benutzers notwendig. Aus diesem Grund wird beim Start des Tools nach Username und Passwort des Benutzers gefragt.

Das Administrationstool stellt je nach Benutzer mehr oder weniger Funktionaltäten zur Verfügung. Beispielsweise kann nur der Benutzer root die Tabelle User einsehen und auch nur dieser Benutzer kann Änderungen an der Tabelle Gruppe vornehmen.
Um diese Unterscheidungen vornehmen zu können, setzt das Administrationstool die unter
3.3.4 vorgestellten Klassen ein.

Aus einer Auswahlliste kann der Benutzer die zu betrachtende Tabelle auswählen. (Mit dem Administrationstool können die Tabellen User, Group, Member, Userpermission und Grouppermission bearbeitet werden. Die weiter oben angesprochene Tabelle Room wird im Rahmen des Editors angesprochen, deswegen wird auf diese Tabelle nur indirekt zugegriffen).
Mittels der drei Buttons NEW, UPDATE und DELETE können neue Datensätze in eine Tabelle eingefügt werden, einzelne Werte einer Tabellenzeile aktualisiert werden oder ein Datensatz aus einer Tabelle gelöscht werden.



Das Adminstrationstool bietet dem Benutzer eine transparente Sicht auf die Daten der Tabellen und unterstützt ihn bei seinen Aktionen:
In den meisten Tabellen wird nur mit den Indizes der Tabellen User, Gruppe und Raum gearbeitet, der Benutzer kann mit diesen IDs jedoch wenig anfangen. Zu diesem Zweck wird sowohl bei der Auflistung der Tabelleninhalte, als auch beim Neuanlegen, Modifizieren und Löschen von Datensätzen neben den IDs auch immer die Bezeichnung der dazugehörigen Datensätze (ausgelesen aus dem Feld 'name') angezeigt:

Zum Punkt Löschen von Datensätzen ist noch folgendes zu erwähnen:
Löscht man Datensätze aus den Tabellen User oder Group, so kann das Konsequenzen auf die Tabellen Groupmember, Userpermission und Grouppermission haben. Dadurch daß das Datenbanksystem mySQL nicht den Mechanismus der referentiellen Integrität anbietet, weist das Administrationstool selber den Benutzer darauf hin, daß ein Löschen eines Datensatzes Ungereimtheiten in anderen Tabellen hervorrufen würde. Deswegen wird der Benutzer gegebenenfalls darauf hingewiesen.
Sollte der Benutzer beispielsweise einen Datensatz aus der Tabelle User löschen, so können daraus resultierend Datensätze in den Tabellen Groupmember, Userpermission und Grouppermission ungültig werden. Das Administrationstool kündigt deswegen gegebenenfalls in zwei Schritten an, daß auch in diesen Tabellen Datensätze gelöscht werden:

Da die Benutzung des Administrationstools bewußt benutzerfreundlich gestaltet wurde, wird hier auf eine weitere Anleitung verzichtet.

zum Inhaltsverzeichnis