Entwurf und prototypische Realisierung von Maßnahmen

Transcription

Entwurf und prototypische Realisierung von Maßnahmen
Hochschule für Technik und Wirtschaft Dresden (FH)
Fachbereich Informatik/Mathematik
Diplomarbeit
im Studiengang Wirtschaftsinformatik
Thema:
„Entwurf und prototypische Realisierung von Maßnahmen eines
Autorisierungs- und Datensicherheitskonzeptes
in einer SQL-basierten chemischen Stoffdatenbank“
eingereicht von:
Mathias Herzog
eingereicht am:
02.11.2009
Betreuer:
Prof. Dr. oec. Gunter Gräfe
Fachbereich Informatik / Mathematik
Hochschule für Technik und Wirtschaft Dresden (FH)
Dr. Vinzenz Brendler
Institut für Radiochemie
Forschungszentrum Dresden-Rossendorf e. V.
Danksagung
Ich möchte mich an dieser Stelle bei allen bedanken, die mich bei der Bearbeitung
meines Diplomarbeitsthemas unterstützt haben.
Für die Betreuung seitens der Hochschule für Technik und Wirtschaft (HTW) Dresden,
bedanke ich mich bei Herrn Prof. Günter Gräfe. Außerdem danke ich Herrn Dr. Vinzenz
Brendler vom Forschungszentrum Dresden-Rossendorf, für zahlreiche interessante
Diskussionen und die Betreuung meiner Diplomarbeit. Des Weiteren möchte ich den
Verbundspartnern im Verbundprojekt THEREDA, besonders Frau Dr. Anke Richter
vom Forschungszentrum Dresden-Rossendorf, Herrn Dr. Helge Moog von der
Gesellschaft für Anlagen- und Reaktorsicherheit sowie Herrn Steffen Leske meinen
Dank aussprechen.
Inhaltsverzeichnis
ABBILDUNGSVERZEICHNIS ................................................................................. IV TABELLENVERZEICHNIS ........................................................................................ V ABKÜRZUNGSVERZEICHNIS ............................................................................... VI 1. EINLEITUNG ......................................................................................................... 1 2. IT-SICHERHEIT .................................................................................................... 3 2.1 ASPEKTE DER IT-SICHERHEIT ............................................................................ 3 2.1.1 Begriffe .......................................................................................................... 3 2.1.2 BSI: Leitfaden IT-Sicherheit ......................................................................... 5 2.1.3 Gesetze und Standards .................................................................................. 6 2.2 MAßNAHMEN ZUR DATENSICHERHEIT IN DATENBANKSYSTEMEN ...................... 8 2.2.1 Transaktion ................................................................................................... 8 2.2.2 Datenintegrität ............................................................................................ 10 2.3 VERSCHLÜSSELUNGSVERFAHREN ZUR SICHEREN KOMMUNIKATION................ 13 2.3.1 Kryptographische Grundlagen.................................................................... 13 2.3.2 Verfahren zur sicheren Kommunikation ..................................................... 17 3. AUTHENTIFIZIERUNG UND AUTORISIERUNG ........................................ 20 3.1 AUTHENTIFIZIERUNG ....................................................................................... 20 3.1.1 Passwort-Authentifizierung ......................................................................... 21 3.1.2 Smart Card .................................................................................................. 25 3.1.3 Fingerprint-Scanner.................................................................................... 26 3.1.4 Digitale Zertifikate ...................................................................................... 26 3.1.5 Digitale Signatur ......................................................................................... 27 3.1.6 Challenge-Response-Authentifizierung ....................................................... 27 3.2 AUTORISIERUNG .............................................................................................. 28 3.2.1 Discretionary Access Control (DAC).......................................................... 28 3.2.2 Mandatory Access Control (MAC) ............................................................. 29 3.2.3 Role-based Access Control (RBAC) ............................................................ 30 -I-
4. WEB-TECHNOLOGIEN UND SPEZIELLE ANGRIFFSTECHNIKEN ...... 31 4.1 SICHERHEITSASPEKTE WEBBASIERTER TECHNOLOGIEN ................................... 32 4.1.1 clientseitige Technologien........................................................................... 34 4.1.2 serverseitige Technologien ......................................................................... 35 4.2 BEDROHUNGEN AUS DEM WWW ..................................................................... 38 4.2.1 Parametermanipulation .............................................................................. 38 4.2.2 SQL-Injection .............................................................................................. 41 4.2.3 Denial of Service (DoS) .............................................................................. 42 4.2.4 Cross-Site Scripting (XSS) .......................................................................... 44 5. 6. THEREDA: AUSGANGSITUATION UND ANFORDERUNGEN ................ 45 5.1 ZIELE UND NUTZEN VON THEREDA............................................................... 45 5.2 AUSGANGSSITUATION ...................................................................................... 46 5.3 FUNKTIONALE ANFORDERUNGEN .................................................................... 48 5.4 NICHT-FUNKTIONALE ANFORDERUNGEN ......................................................... 52 ENTWURF ............................................................................................................ 54 6.1 NUTZERVERWALTUNG ..................................................................................... 54 6.2 BENUTZERFUNKTIONEN ................................................................................... 55 6.2.1 unregisteredUser ......................................................................................... 55 6.2.2 registeredUser ............................................................................................. 57 6.2.3 author .......................................................................................................... 60 6.2.4 auditor ......................................................................................................... 62 6.2.5 accessAdministrator .................................................................................... 65 6.2.6 systemAdministrator.................................................................................... 67 6.3 SYSTEMFUNKTIONEN ....................................................................................... 71 6.3.1 Prüfen / Controlling .................................................................................... 71 6.3.2 Logging ....................................................................................................... 73 6.3.3 Verarbeitung ............................................................................................... 73 7. PROTOTYPISCHE REALISIERUNG .............................................................. 75 7.1 THEREDA: DER DATENBANKNUTZER ............................................................ 75 7.2 AUTHENTIFIZIERUNG ....................................................................................... 76 - II -
7.2.1 Serverauthentifizierung ............................................................................... 76 7.2.2 Clientauthentifizierung................................................................................ 77 8. FAZIT .................................................................................................................... 79 I. ANHANG ............................................................................................................... 81 II. LITERATURVERZEICHNIS ............................................................................. 89 - III -
Abbildungsverzeichnis
Abbildung 1:
Zusammenhang der Begriffe .............................................................. 3 Abbildung 2:
Einfaches kryptographisches Modell, nach [B_KAPPE1], S. 19..... 13 Abbildung 3:
Symmetrische Kryptographie, vgl. [B_KAPPE1], S. 26 ................. 14 Abbildung 4:
Asymmetrische Kryptographie, nach [B_KAPPE1], S. 28 .............. 16 Abbildung 5:
SSL-Handshakeverfahren, vgl. [B_MARTI1], S. 89 ....................... 18 Abbildung 6:
Asymmetrische
Challenge-Response-Authentifizierung,
vgl.
[B_KAPPE1], S. 51 .......................................................................... 28 Abbildung 7:
THEREDA: Web-Architektur .......................................................... 47 Abbildung 8:
THEREDA: Nutzergruppendiagramm ............................................. 48 Abbildung 9:
USE CASE: unregisteredUser .......................................................... 55 Abbildung 10:
USE CASE: registered User ............................................................. 57 Abbildung 11:
USE CASE: author ........................................................................... 60 Abbildung 12:
USE CASE: auditor .......................................................................... 63 Abbildung 13:
USE CASE: accessAdministrator .................................................... 66 Abbildung 14:
USE CASE: systemAdministrator.................................................... 67 Abbildung 15:
Erstellung des Serverzertifikats mittels OpenSSL ........................... 76 Abbildung 16:
Passwortprüffunktion, nach [B_KUNZx1], S. 156f ......................... 78 - IV -
Tabellenverzeichnis
Tabelle 1: Vergleich der Methoden zur Benutzerauthentifizierung, vgl.
[I_BROMB1].................................................................................... 21 Tabelle 2: Übersicht möglicher Passworträume, nach [B_KAPPE1], S. 42 ..... 22 Tabelle 3: Passwortrichtlinien, vgl. [B_RICHT1], S. 13 .................................. 23 Tabelle 4: Crack-Dauer für Windows-Passwörter (NTLM), nach [Z_CT0609],
S. 205 ................................................................................................ 24 Tabelle 5: Open Source Lizenzen, nach [I_KLEIJ1] ........................................ 32 Tabelle 6: Übersicht Angriffsmethoden, vgl. [I_BREAC1], S. 6 ..................... 38 Tabelle 7: THEREDA: Versionsänderungen .................................................... 47 Tabelle 8: THEREDA: Benutzerfunktionen, nach Nutzergruppen geordnet .... 50 Tabelle 9: THEREDA: Systemfunktionen ........................................................ 52 Tabelle 10: Nicht-funktionale Anforderungen, nach ISO 9126 .......................... 53 Tabelle 11: THEREDA: Vordefinierte Auditstati ............................................... 65 Tabelle 12: THEREDA: Passwortrichtlinien ...................................................... 71 -V-
Abkürzungsverzeichnis
ADO.NET .............................ActiveX Data Object.NET
API ........................................Application Programming Interface
ASCII ....................................American Standard Code for Information Interchange
ASP .......................................Active Server Pages
BDSG ....................................Bundesdatenschutzgesetz
BMBF....................................Bundesministerium für Bildung und Forschung
BMU......................................Bundesministerium für Umwelt, Naturschutz und
Reaktorsicherheit
BMWi....................................Bundesministerium für Wirtschaft und Technologie
BSI ........................................Bundesamt für Sicherheit in der Informationstechnik
BSI G.....................................BSI Gesetz
CAPTCHA ............................Completely Automated Public Turing-Test to Tell
Computers and Humans Apart
CC .........................................Common Criteria
CMS ......................................Content Management System
COM......................................Component Object Model
COS .......................................Chip Operating System
CSS........................................Cascading Style Sheets
DAC ......................................Discretionary Access Control
DBMS ...................................Datenbankmanagementsystem
DIN........................................Deutsche Industrie Norm
DoS........................................Denial of Services
FSF ........................................Free Software Foundation
HTML ...................................Hypertext Markup Language
HTTP .....................................Hypertext Transfer Protocol
HTTPS ..................................HTTP Secure
ID ..........................................Identifikator
IEC ........................................International Electrotechnical Commission
IIS ..........................................Internet Information Services
ISO ........................................International Organization for Standardization
- VI -
ITSEC....................................Information Technology Security Evaluation Criteria
ITSK ......................................Deutschen IT-Sicherheitskriterien
J2EE ......................................Java Platform, Enterprise Edition
JDBC .....................................Java Database Connectivity
JSON .....................................JavaScript Object Notation
JSP .........................................Java Server Pages
JVM .......................................Java Virtual Machine
LDSG ....................................Landesdatenschutzgesetz
MAC......................................Mandatory Access Control
MS-EXCEL ...........................Microsoft-Excel
NATO....................................North Atlantic Treaty Organization
NSA .......................................National Security Agency
NTML ...................................NT LAN Manager
OSI ........................................Open Source Initiative
PHP .......................................PHP: Hypertext Preprocessor
PIN ........................................Personal Identification Number
RBAC ....................................Role-bases Access Control
SigG ......................................Signaturgesetz
SQL .......................................Structured Query Language
SSI .........................................Server Side Includes
SSL ........................................Secure Socket Layer
TAN ......................................Transaction Authentication Number
TCP .......................................Transmission Control Protocol
TCSEC ..................................Trusted Computer Security Evaluation Criteria
THEREDA ............................Thermodynamische Referenzdatenbasis
TKG ......................................Telekommunikationsgesetz
TLS........................................Transport Layer Security
URL .......................................Uniform Resource Locator
WAL......................................Write-Ahead-Log
WWW ...................................World Wide Web
XML ......................................Extensible Markup Language
XSS .......................................Cross-Site Scripting
- VII -
1.
Um
Einleitung
die
Sicherheit
eines
Endlagers
für
radioaktive
Abfälle,
sowie
von
Untertagedeponien für chemisch-toxische Stoffe und die Sanierung von Altlasten des
Uranbergbaus
zu
gewährleisten,
ist
es
von
entscheidender
Bedeutung
den
Schadstofftransport in die Biosphäre voraussagen zu können. Hierfür ist ein vertieftes
Verständnis der physikalisch-chemischen Eigenschaften der Schadstoffe, wie auch ihrer
Wechselwirkungen im System Abfall, Geosphäre und Biosphäre erforderlich.
Die derzeit vorhandenen Datenbasen sind jedoch nicht einheitlich, inkonsistent,
unvollständig und bieten nur einen begrenzten Variationsbereich für Temperatur und
Druck. Um Grundzüge einer einheitlichen, konsistenten und qualitätsgesicherten
thermodynamischen Referenzdatenbasis zu entwickeln, hat sich der „Arbeitskreis
Thermodynamische Referenzdatenbasis“ gebildet. Für weitere Details wird auf
Altmaier et al. ([Z_ALTMAI]) verwiesen.
Zu den Mitgliedern des Arbeitskreises gehören die Gesellschaft für Anlagen- und
Reaktorsicherheit, das Institut für Nukleare Entsorgung des Forschungszentrums
Karlsruhe, das Institut für Radiochemie des Forschungszentrums Dresden-Rossendorf,
das Institut für Anorganische Chemie der TU Bergakademie Freiberg sowie die AFColenco AG (Baden/CH).
Seit Juli 2006 wird durch das Bundesministerium für Bildung und Forschung (BMBF),
das
Bundesministerium für Wirtschaft
und
Technologie
(BMWi)
und
das
Bundesministerium für Umwelt, Naturschutz und Reaktorsicherheit (BMU) das Projekt
„THEREDA“ – Thermodynamische Referenzdatenbasis gefördert. Das Projekt zielt
darauf ab, Langzeitsicherheitsanalysen mittel- bis langfristig besser, zuverlässiger,
vergleichbarer, belastbarer und nachvollziehbarer zu machen.
Datenintegrität, sowie Zugriffsschutz spielen in diesem Projekt eine bedeutende Rolle,
da die Datenbasis für sicherheitsrelevante Aufgaben mit hoher öffentlicher
Aufmerksamkeit eingesetzt werden soll. Die vorliegende Diplomarbeit widmet sich
-1-
1. Einleitung
aufgrund dessen daher den verschiedenen Aspekten der IT-Sicherheit, sowie den
Methoden zur Authentifizierung und Autorisierung von Nutzern.
Des Weiteren werden verschiedene Web-Technologien hinsichtlich ihrer Sicherheit
diskutiert und einige Angriffsmethoden vorgestellt. In Zusammenarbeit mit dem
Projektpartner „Forschungszentrum Dresden-Rossendorf“ erfolgte eine Analyse der
Ausgangsituation. Darauf aufbauend werden die einzelnen Nutzergruppen sowie die
damit verbundenen funktionalen Anforderungen an das THEREDA Projekt definiert.
Im weiteren Verlauf erfolgt eine Konkretisierung und Verknüpfung dieser
Anforderungen.
Abschließend werden der Datenbanknutzer, die Webserverauthentifizierung sowie die
Passwortrichtlinien prototypisch realisiert.
Diese Diplomarbeit ist ein weiterer Grundbaustein innerhalb des THEREDA Projektes.
Ihr Wert liegt vor allem in der konzeptionellen Zuarbeit für nachfolgende Projektphasen
mit dem Schwerpunkt der Realisierung der einzelnen hier definierten funktionalen
Anforderungen.
-2-
2. IT-Sicherheit
2.
IT-Sicherheit
In diesem Kapitel werden die für diese Arbeit relevanten Begriffe definiert.
Anschließend wird auf allgemeine Richtlinien, Gesetze und Standards, die sich mit
verschiedenen
eingegangen.
Aspekten
Nach
der
diesem
Sicherheit
allgemeinen
von
Informationssystemen
Überblick
werden
befassen,
Maßnahmen
zur
Datensicherheit in Datenbanken vertieft betrachtet, bevor abschließend einige
Verschlüsselungsverfahren und deren Einsatzgebiet in der Kommunikationstechnik
behandelt werden.
2.1
Aspekte der IT-Sicherheit
2.1.1
Begriffe
„Unter
IT-Sicherheit
versteh[t
man]
den
Schutz
von
Informationen
und
Informationssystemen gegen unbefugten Zugriff und Manipulation sowie die
Sicherstellung der Verfügbarkeit der durch die Systeme bereitgestellten Dienste für
legitime [N]utzer, einschließlich aller Maßnahmen zur Verhinderung, Entdeckung oder
Protokollierung von Bedrohungen.“, Kappe ([B_KAPPE1], S. 2)
IT-Sicherheit
Datensicherheit
Zugriffsschutz
Verfügbarkeit
•
Integritätssicherheit
•
Authentifizierung
•
Protokollauswertung
•
Protokollierung
•
Autorisierung
•
Backup/Recovery
•
Protokollierung
Abbildung 1: Zusammenhang der Begriffe
Die Datensicherheit wird im Rahmen dieser Arbeit mit der Integritätssicherung
gleichgesetzt und beschäftigt sich mit der „Sicherung der Richtigkeit, Vollständigkeit
und logischen Widerspruchsfreiheit der Daten“ ([I_HTWDD1], S. 4). In Kapitel 2.3.2.
-3-
2. IT-Sicherheit
wird
die
Integritätssicherung
näher
betrachtet.
Des
Weiteren
schließt
die
Integritätssicherung die Protokollierung von Änderungen am Datenbestand mit ein.
Unter dem Zugriffsschutz sind die Authentifizierung, Autorisierung und das
Protokollieren von Anmeldeinformationen zu verstehen. Dabei beschäftigt sich die
Authentifizierung mit der eindeutigen Identifikation von Nutzern und Systemen. Die
Autorisierung befasst sich dagegen mit der Zugriffskontrolle (engl. access control) und
der Vergabe bzw. dem Entzug von Rechten/Privilegien an Nutzer. Dabei werden die
verschiedenen Möglichkeiten und Maßnahmen zur Authentifizierung und Autorisierung
in Kapitel 3 ausführlicher diskutiert.
Beim Zugriffsschutz unterscheidet man zwischen Subjekt (engl subject), Objekt (engl.
object) und den eigentlichen Zugriffsrechten (engl. access right). Ein Subjekt ist ein
Nutzer, eine Rolle, ein Prozess oder ein System, welches eine Handlung auslöst. Die
initiierte Handlung wird auf einem entsprechenden Objekt bzw. einer entsprechenden
Ressource ausgeführt. Objekte können z.B. Tabellen oder Funktionen sein. Unter
Umständen können auch Subjekte Gegenstand einer Handlung werden und somit als
Objekte auftreten. Die Zugriffsrechte beschreiben, welche Handlungen ein Subjekt an
einem Objekt durchführen darf. Dabei kann ein Subjekt z.B. lesende, schreibende,
ausführende oder löschende Zugriffsrechte für ein Objekt besitzen.
Die Verfügbarkeit besagt, dass das System für legitime Nutzer immer erreichbar ist.
Hierfür sollen die verschiedenen Protokolldateien ausgewertet werden, um eventuelle
Bedrohungen frühzeitig zu erkennen und ggf. die Angriffspunkte zu eliminieren. Nach
einem Systemausfall kann mittels der in Kapitel 2.3.2. vorgestellten Backupvarianten
sowie der Logging- und Protokolldateien, die Systemwiederherstellung (engl. recovery)
schnellstmöglich gewährleistet werden. Dabei ist es notwendig, die erstellten Backups
auf deren Funktionstüchtigkeit zu prüfen und den Wiederherstellungsprozess zu
trainieren. Innerhalb dieser Arbeit wird auf die Verfügbarkeit des Systems nicht weiter
eingegangen.
-4-
2. IT-Sicherheit
2.1.2
BSI: Leitfaden IT-Sicherheit
Die Bundesregierung hat eine spezielle Bundesbehörde gebildet, das Bundesamt für
Sicherheit in der Informationstechnik (BSI). Diese Behörde befasst sich mit den in
§3 (1) des BSI Gesetzes (BSIG) definierten Aufgaben. Dazu zählen unter anderem:
„3. [die]
Untersuchung
Informationstechnik
von
sowie
Sicherheitsrisiken
Entwicklung
von
bei
Anwendung
der
Sicherheitsvorkehrungen,
insbesondere von informationstechnischen Verfahren und Geräten für die
Sicherheit in der Informationstechnik [..], soweit dies zur Erfüllung von
Aufgaben des Bundes erforderlich ist, einschließlich der Forschung im Rahmen
seiner gesetzlichen Aufgaben;
4. [die] Entwicklung von Kriterien, Verfahren und Werkzeugen für die Prüfung
und Bewertung der Sicherheit von informationstechnischen Systemen oder
Komponenten [...];
5. [die] Prüfung und Bewertung der Sicherheit von informationstechnischen
Systemen oder Komponenten und Erteilung von Sicherheitszertifikaten; […]“.
([I_BSIGx1], §3 (1))
Die durch das BSI erstellten oder in Auftrag gegebenen Studien, Richtlinien und
Empfehlungen sowie zahlreiche Publikationen, welche sich mit Sicherheitsfragen in der
Informationstechnik befassen, werden auf der Webpräsenz des BSI ([I_BSIxx1])
veröffentlicht. An gleicher Stelle ist ebenfalls der Leitfaden IT-Sicherheit, der „einen
kompakten Überblick über die wichtigsten organisatorischen, infrastrukturellen und
technischen IT-Sicherheitsmaßnahmen [gibt].“ ([I_BSILF1], Seite 3), publiziert. Im
Folgenden wird jeweils eine organisatorische, eine infrastrukturelle und eine technische
Maßnahme zur Sicherstellung bzw. Verbesserung der IT-Sicherheit erläutert.
„15.
Datenzugriffsmöglichkeiten
sollten
auf
das
erforderliche
Mindestmaß
beschränkt werden“ ([I_BSILF1], Seite 23)
Ein Anwender sollte immer nur auf die von ihm benötigten Ressourcen und
Informationen Zugriff haben, das „Need-to-Know“ Prinzip. Hierfür ist es sinnvoll und
teilweise notwendig, den Anwendern spezielle Rollen und Profile zuzuordnen, um so
-5-
2. IT-Sicherheit
den organisatorischen Aufwand zu reduzieren. Wichtig ist ebenfalls, dass nicht
benötigte Zugriffsrechte schnellstmöglich entzogen werden können, um die Gefahr von
unberechtigten Zugriffen zu minimieren. Näheres wird in Kapitel 3.2. unter
Autorisierung erläutert.
„22. Zum Schutz von Netzen muss eine Firewall verwendet werden“ ([I_BSILF1],
Seite 26)
Eine Firewall bietet die Möglichkeit, zwei oder mehrere Netze bzw. Teilnetze
voneinander abzuschirmen bzw. den Datenverkehr zu filtern. Dabei wird Datenverkehr
nach speziellen Regeln innerhalb der Firewall gefiltert und auffällige/verdächtige
Datenpakete werden blockiert. Diese Filterung des Datenverkehrs findet anhand
definierter Regeln innerhalb der Firewall statt. So ist man z.B. besser in der Lage, ein
internes Netzwerk vor bekannten Viren oder Angriffen von außen zu schützen.
„37. Alle wichtigen Daten müssen regelmäßig gesichert werden (Backup)“
([I_BSILF1], Seite 31)
Die Datensicherung (engl. Backup) sichert den Zustand oder die Daten eines Systems
zu einem bestimmten Zeitpunkt. Dadurch ist man in der Lage, ein System bzw. Daten
nach einem Hardware- oder Softwareausfall bzw. -defekt ohne größere Datenverluste
wiederherzustellen. Es sollte darauf geachtet werden, dass das Backupmedium, z.B.
eine DVD oder eine andere Festplatte, an einem anderem Ort aufbewahrt wird.
2.1.3
Gesetze und Standards
Neben den Richtlinien, welche im Leitfaden des BSI aufgeführt sind, gibt es in
Deutschland verschiedene Gesetze, die sich mit unterschiedlichen Aspekten der ITSicherheit beschäftigen. Zu diesen zählen unter anderem das Bundesdatenschutzgesetz,
das Telekommunikationsgesetz sowie das Signaturgesetz, die nachfolgend kurz erläutert
werden. Weitere Gesetze werden innerhalb dieser Arbeit nicht betrachtet, stattdessen
wird auf Spezialliteratur wie z.B. [B_KOITZ1] verwiesen.
-6-
2. IT-Sicherheit
Bundesdatenschutzgesetz
Das Bundesdatenschutzgesetz (BDSG) beinhaltet Regelungen für den Umgang und die
Verarbeitung personenbezogener Daten natürlicher Personen, sowie Bußgeld- und
Strafvorschriften. „Jede natürliche Person soll davor geschützt werden, dass sie durch
den Umgang mit ihren personenbezogenen Daten in ihrem Persönlichkeitsrecht
beeinträchtigt wird“, Koitz ([B_KOITZ1], Seite 232). Dies ist auch in §1 Abs. 1 des
BDSG definiert. Der erste Abschnitt des BDSG enthält weitere grundlegende
Definitionen, so genannte Legaldefinitionen. Die weiteren Abschnitte beinhalten u. a.,
wie öffentliche und nicht öffentliche Stellen mit personenbezogenen Daten umzugehen
haben und welche Rechte eine natürliche Person besitzt, um den Umgang mit
personenbezogenen Daten einzuschränken.
Jedes Bundesland besitzt sein eigenes Datenschutzgesetz, die so genannten
Landesdatenschutzgesetze (LDSG). Diese beinhalten die Regelungen für die
öffentlichen und nicht-öffentlichen Stellen des jeweiligen Bundeslandes.
Telekommunikationsgesetz
Das Telekommunikationsgesetz (TKG) umfasst technologieneutrale Regelungen, mit
denen der Wettbewerb in den Bereichen der Telekommunikation sowie der
Telekommunikationsinfrastruktur gewährleistet und gefördert werden sollen. Hierfür
enthält das Gesetz neben den Marktregulierungen und dem Kundenschutz auch die
Aufgaben und Befugnisse der Bundesnetzagentur. „Die Bundesnetzagentur legt den
gesetzgebenden Körperschaften des Bundes [...] einen Bericht über ihre Tätigkeit sowie
über die Lage und die Entwicklung auf dem Gebiet der Telekommunikation vor [...]“,
nach §121 (1) TKG.
Signaturgesetz
Im Signaturgesetz (SigG) sind Rahmenbedingungen für elektronische Signaturen
definiert sowie Legaldefinitionen für diesen Bereich. Auf digitale Signaturen und die
dadurch erreichbaren Authentifizierungsmöglichkeiten wird in Kapitel 3.1.3. näher
eingegangen.
-7-
2. IT-Sicherheit
Neben diesen Gesetzen und Richtlinien existieren noch mehrere verschiedene
Standards. Dazu zählen die Trusted Computer Security Evaluation Criteria (TCSEC),
die in den USA durch die National Security Agency (NSA) zusammengestellt wurden.
Diese Kriterien sind in dem so genannten Orange Book (einfache Systemsicherheit),
dem Red Book (Interpretation des Orange Book im Kontext von Netzwerken) oder dem
Blue Book (NATO TCSEC, 1987, inhaltlich mit Orange Book übereinstimmend)
definiert. Des Weiteren gibt es die Europäischen Kriterien (ITSEC), die deutschen
Sicherheitskriterien (ITSK), sowie die Common Criteria (CC), welche in der ISO-15408
standardisiert wurden. (vgl. [S_FRITZ1])
2.2
Maßnahmen zur Datensicherheit in Datenbanksystemen
In Datenbanksystemen stellt das Datenbankmanagementsystem (engl. Database
Management System, kurz DBMS) unter anderem die Funktionen des Zugriffsschutzes
und der Datensicherheit zur Verfügung. Die Konzepte des Zugriffsschutzes werden in
Kapitel 3 ausführlicher diskutiert. Im Folgenden wird das Transaktionskonzept in
Datenbanken betrachtet und hinsichtlich des Zugriffsschutzes untersucht. Anschließend
wird auf die Integritätssicherung näher eingegangen.
2.2.1
Transaktion
„Eine Transaktion ist eine konsistenzerhaltende Operation auf einer Datenbank, d.h. sie
lässt die Datenbank in konsistentem Zustand zurück, wenn diese vor Beginn der
Transaktion schon konsistent war“, Zehnder ([B_ZEHND1], S. 47). Konsistent steht in
diesem Zusammenhang für die Einhaltung der semantischen Integritätsbedingungen,
basierend auf dem ACID-Prinzip. Dieses stellt die Merkmale einer Transaktion dar:
•
Atomicity (Ununterbrechbarkeit, Atomarität)
Diese Eigenschaft besagt, dass eine Transaktion entweder vollständig oder gar
nicht ausgeführt wird, also nach dem „Alles oder Nichts“-Prinzip. Wird eine
Transaktion nicht erfolgreich abgeschlossen, so wird der konsistente Zustand,
der vor Beginn der Transaktion vorlag, wiederhergestellt und damit die
Zwischenergebnisse der Transaktion zurückgesetzt.
-8-
2. IT-Sicherheit
•
Consistency (Konsistenzerhaltung)
Die Konsistenzerhaltungseigenschaft einer Transaktion stellt sicher, dass sich
die Datenbank vor bzw. nach einer Transaktion in einem konsistenten Zustand
befindet.
•
Isolation (Isolation, Isolierter Ablauf)
Jede Transaktion läuft unabhängig von allen anderen parallelen Transaktionen
ab. Hier wird sichergestellt, dass eine Transaktion nicht auf inkonsistente
Zwischenwerte einer anderen Transaktion zugreifen kann und dass eine
Transaktion selbst keine inkonsistenten Werte zur Verfügung stellt.
•
Durability (Dauerhaftigkeit, Persistenz)
Die Dauerhaftigkeitseigenschaft stellt sicher, dass Ergebnisse erfolgreich
abgeschlossener Transaktionen nicht verloren gehen, selbst wenn vor dem
physischen Schreiben Fehler auftreten.
In einigen Fällen kann das ACID-Prinzip nicht während einer gesamten Transaktion
eingehalten werden. In diesem Fall soll „[d]as Ergebnis einer Transaktion […]
berechnet werden, als sei sie nach dem ACID-Prinzip abgelaufen[…]“, Saake
([B_SAAKE1], S. 500). Zielsetzung ist und bleibt, die Datenbank von einem
konsistenten in einen anderen konsistenten Zustand zu überführen.
Eine Transaktion kann entweder mit einem COMMIT oder ABOUT abgeschlossen
werden. Bei einem COMMIT tritt kein Fehler innerhalb einer Transaktion auf und die
Transaktion wird erfolgreich abgeschlossen. Das heißt, dass sich die Datenbank in
einem neuen konsistenten Zustand befindet. Wird eine Transaktion mittels eines
ABOUT abgebrochen, wird in der Regel der konsistente Zustand vor Beginn einer
Transaktion wiederhergestellt.
Das ACID-Prinzip, COMMIT und ABOUT sind die grundlegendsten Eigenschaften,
welche das Transaktionskonzept aufweist. Innerhalb einer Transaktion, in der mehrere
Befehle/Anweisungen ausgeführt werden können, kann aus unterschiedlichen Gründen
ein Abbruch (ABOUT) der Transaktion erfolgen, beispielsweise durch die Verletzung
von Zugriffsberechtigungen oder von Integritätsbedingungen.
-9-
2. IT-Sicherheit
Innerhalb einer Transaktion wird geprüft, ob ein Subjekt für die Ausführung der
Befehle/Anweisungen die notwendigen Rechte für die davon betroffenen Objekte
besitzt. Ist dies nicht der Fall, so wird diese Transaktion durch ein ABOUT beendet. Ein
Transaktionsabbruch kann außerdem durch die Verletzung der Datenintegrität erfolgen,
welches im nächsten Unterkapitel diskutiert wird.
2.2.2
Datenintegrität
Die Datenintegrität beschäftigt sich mit der „Sicherung der Richtigkeit, Vollständigkeit
und logischen Widerspruchsfreiheit der Daten“ ([I_HTWDD1], S. 4). Dabei
unterscheidet man in
1. Semantische Integrität
2. Operationelle Integrität
3. Physische Integrität.
Semantische Integrität
Die semantische Integrität befasst sich mit der „Gewährleistung der ‚Richtigkeit’,
‚Korrektheit’ und ‚logischen Widerspruchsfreiheit’ der Daten. Die semantische
Integrität [kann] durch Fehler (beabsichtigt oder unbeabsichtigt) bei der Eingabe und
Änderung der Daten verletzt [werden]“ ([I_HTWDD2], S. 4). Dieser Prozess der
Dateneingabe und -änderung wird vom DBMS überwacht und die Einhaltung der
semantischen Integrität anhand von definierten Integritätsbedingungen sichergestellt.
Integritätsbedingungen
müssen
manuell
aufgestellt
werden
und
bestehen
in
vollständiger Form aus den vier nachfolgenden Bestandteilen:
„• die eigentliche Integritätsbedingung
•
Objektangaben (Attributwerte, Spalte, Tupel, Relation), auf die sich die
Integritätsbedingung bezieht
•
die Auslöseregel, die angibt, wann die Einhaltung der Bedingung überprüft
werden soll (z.B. gleich nach Abschluss der Elementaroperation oder am
Ende der Transaktion)
- 10 -
2. IT-Sicherheit
•
die Reaktionsregel, die angibt, welche Aktionen bei der Verletzung der
Bedingung auszulösen sind (z.B. Meldung an den Nutzer, Rücksetzen der
Transaktion)“ ([I_HTWDD2], S. 7).
Die Sicherung der semantischen Integrität lässt sich unter anderem mittels CheckKlauseln, Rules, Assertions oder auch Trigger realisieren. Diese werden im Rahmen
dieser Arbeit nicht näher erläutert, vgl. [I_HTWDD2], [B_GERHA1] sowie
[B_LONEY1].
Operationelle Integrität
Operationelle Integrität wird auch als Ablaufintegrität bezeichnet. Hierbei handelt es
sich um das „Verhindern von Fehlern, die durch den gleichzeitigen Zugriff mehrerer
Nutzer auf die Datenbank entstehen können“, Gerhardt ([B_GERHA1], S. 31). „Zur
Vermeidung dieser Fehler müssen die gleichzeitig zugreifenden Nutzer bzw.
Transaktionen
synchronisiert
–
die
parallelen
Abläufe
serialisiert
werden“
([I_HTWDD3], S. 4). Die größte Gefahr, die durch den Mehrnutzerbetrieb entstehen
kann, sind Fehler im Datenbestand. Diese können durch das Phantomproblem, nichtwiederholbares Lesen, verloren gegangene Änderungen sowie den Zugriff auf
„schmutzige“ Daten bzw. Zugriff auf nicht freigegebene Änderungen auftreten, die in
([I_HTWDD3], S. 5) genauer spezifiziert werden. Auf diese Probleme wird aber nicht
weiter eingegangen.
Zur Sicherstellung der operationellen Integrität gibt es drei unterschiedliche Verfahren:
1. Pessimistische oder Sperrverfahren: Bei diesen Verfahren wird vom
schlimmsten Fall ausgegangen, das heißt, dass „parallele Transaktionen auf die
gleichen Daten [...] zugreifen werden und so Konflikte sehr wahrscheinlich
sind“ ([I_HTWDD1], S. 9). Aus diesem Grund werden die von einer
Transaktion benutzen Daten für deren Dauer für andere Transaktionen gesperrt.
2. Optimistische Verfahren: Im Gegensatz zu dem pessimistischen Verfahren
„gehen [optimistische Verfahren] davon aus, dass parallele Transaktionen nicht
auf die gleichen[...] Daten zugreifen.“ ([I_HTWDD3], S. 9). Um sicherzustellen,
dass durch diese Verfahrensweise keine Fehler im Datenbestand generiert
werden, wird vor Abschluss einer Transaktion geprüft, ob Konflikte aufgetreten
- 11 -
2. IT-Sicherheit
sind. Das heißt, es werden die Datensätze, die während der Transaktion gelesen
wurden, mit den entsprechenden Datensätzen in der Datenbank verglichen. Im
Fall eines Konfliktes wird die Transaktion zurückgesetzt, andernfalls wird sie
erfolgreich abgeschlossen.
3. Zeitstempelverfahren: Bei diesen Verfahren wird mit Zeitstempeln gearbeitet.
Das bedeutet, dass bei der Verwendung von Datenbankobjekten durch eine
Transaktion eine Lesezeitmarke gesetzt wird. Ändert die Transaktion ein
entsprechendes Datenobjekt und versucht dieses zurückzuschreiben, so wird
eine Schreibzeitmarke gesetzt. Durch den „[V]ergleich der unterschiedlichen
Zeitmarken kann ermittelt werden, ob eine Transaktion erfolgreich fortgeführt
werden kann oder [ggf.] erneut gestartet werden muss“ ([I_HTWDD3], S. 9).
Physische Integrität
Mittels der physischen Integrität stellt man den Schutz vor Verlust der Daten durch
physische Zerstörung oder Fehler sicher. Diese Fehler werden in Software- und
Hardwarefehler eingeteilt. Sie können außerdem durch gezielte Angriffe herbeigeführt
werden. Um Daten vor Verlust zu schützen, sollte regelmäßig eine Datensicherung
(engl. Backup) durchgeführt werden. Mit Hilfe der Backups wird ein konsistenter
Datenbankzustand zu einer bestimmten Zeit gesichert. Die darauf folgenden
Änderungen am Datenbestand werden in Protokolldateien dokumentiert.
Im Falle eines Systemausfalls wird der in den Backupdateien gespeicherte konsistente
Zustand durch einen Recovery-Prozess wiederhergestellt. Anschließend werden die in
den Protokolldateien dokumentierten Änderungen am Datenbestand eingespielt, um den
Zustand vor dem Systemausfall zu rekonstruieren. Dabei kann man die Backups nach
komplettem, partiellem oder inkrementellem sowie zwischen Online- und OfflineBackup unterscheiden. Für nähere Beschreibungen und Erläuterungen siehe Störl
([B_STÖRL1], S. 24 – 27) oder Lemay ([B_LEMAY1], S. 485 – 488).
- 12 -
2. IT-Sicherheit
2.3
Verschlüsselungsverfahren zur sicheren Kommunikation
Zum Schutz von sensiblen Daten werden verschiedene Verschlüsselungsverfahren
eingesetzt, z.B. zur Verschlüsselung von Passwörtern. Durch diese Verfahren sind die
Daten nicht ohne Weiteres für Dritte lesbar. Der Schutz innerhalb eines Systems reicht
aber nicht aus, sobald dieses mit anderen Systemen/Nutzern über ein unsicheres
Medium kommuniziert. Das World Wide Web, kurz WWW, ist eines dieser unsicheren
Medien. Darum wurden verschiedene Protokolle und Verfahren für den Einsatz im
WWW entwickelt, um die Kommunikation und somit auch die Daten besonders zu
schützen. Nachfolgend werden die grundlegenden Verfahren der Verschlüsselung kurz
erläutert. Anschließend wird auf das SSL-Protokoll näher eingegangen, das diese
Grundlagen nutzt und im WWW eine sichere Kommunikation ermöglicht.
2.3.1
Kryptographische Grundlagen
Das Verschlüsseln von Daten oder Nachrichten wird als Kryptographie bezeichnet.
Dabei wird vereinfacht dargestellt eine Klartextnachricht in einen Geheimcode
verschlüsselt. Dies passiert bei den modernen Kryptographieverfahren mittels eines so
genannten Schlüssels bzw. eines Schlüsselpaares. Das Verschlüsseln von Nachrichten
wird als Chiffrieren und die verschlüsselte Nachricht als Chiffriertext bezeichnet. Dieser
Chiffriertext lässt sich nur mit dem passenden Schlüssel in die ursprüngliche
Klartextnachricht überführen, was als Dechiffrieren bezeichnet wird. Dies wird
vereinfacht in Abb. 2 veranschaulicht.
Dechiffrierschlüssel
Chiffrierschlüssel
Klartext
Chiffrierverfahren
Verschlüsselung
Chiffriertext
Chiffriertext
Dechiffrierverfahren
Klartext
Entschlüsselung
Abbildung 2: Einfaches kryptographisches Modell, nach [B_KAPPE1], S. 19
- 13 -
2. IT-Sicherheit
Wird zum Ver- bzw. Entschlüssen einer Nachricht derselbe Schlüssel verwendet, so
spricht man von symmetrischen Verfahren. Bei der Verwendung eines so genannten
Schlüsselpaares werden unterschiedliche Schlüssel zum Chiffrieren und Dechiffrieren
eingesetzt. Hierbei spricht man von asymmetrischen Verfahren, welche auch als
Public-Key-Verfahren bekannt sind. Werden symmetrische und asymmetrische
Verfahren in Kombination eingesetzt, spricht man von hybrid Verfahren. Diese
Verfahren können durch den Einsatz von Hashfunktionen unterstützt und sicherer
gestaltet werden. Diese kryptographischen Verfahren werden nachfolgend kurz erläutert
und relevante Algorithmen entsprechend zugeordnet. Hierbei wird kein Anspruch auf
Vollständigkeit erhoben und die mathematischen Hintergründe nicht näher betrachtet.
Für zusätzliche Informationen wird auf die spezielle Fachliteratur verweisen, wie z.B.
[B_SWOBO1], [S_FRITZ1] oder [B_BLESS1].
Das Gegenstück zur Kryptographie ist die Kryptoanalyse, die sich mit dem
Entschlüsseln von Chiffriertexten ohne Besitz des Schlüssels befasst, dies ist jedoch
nicht Thema der vorliegenden Arbeit.
Symmetrische Verfahren
Die symmetrischen Verschlüsselungsverfahren nutzen, wie in Abb. 3 dargestellt,
denselben Schlüssel zum Ver- und Entschlüsseln.
Schlüssel
Klartext
Chiffrierverfahren
Verschlüsselung
Chiffriertext
Chiffriertext
Dechiffrierverfahren
Klartext
Entschlüsselung
Abbildung 3: Symmetrische Kryptographie, vgl. [B_KAPPE1], S. 26
Die verschiedenen Verschlüsselungsverfahren erwarten in der Regel Eingaben mit
fester Länge. Somit ist es für die Verschlüsselung notwendig, dass der Klartext in
Blöcke mit einer festen Länge oder Zeichen aufgeteilt wird.
- 14 -
2. IT-Sicherheit
Aus diesem Grund unterscheidet man die symmetrischen Verfahren in Block- oder
Stromchiffren-Verarbeitung.
Wird der Eingabestrom in Blöcke eingeteilt, so spricht man von Blockchiffren. Dabei
verwendet der entsprechende Algorithmus für jeden Block den gleichen Schlüssel zum
Verschlüsseln. Wenn der Eingabestrom kein Vielfaches der Blockgröße ist, muss beim
letzten Block das so genannte Padding angewendet werden. Hierbei wird der letzte
Block mit entsprechenden Füllzeichen vervollständigt. Innerhalb dieser Füllzeichen
wird entweder die Länge des Füllbereiches oder die des Klartextes kodiert, damit man
beim Entschlüsseln auch die Originalnachricht unverfälscht erhält.
Ein bekanntes Verfahren für Blockchiffren ist der Data Encryption Standard (DES).
Dieser verwendet eine Blockgröße von 64 Bit, wobei davon nur 56 Bit relevant sind.
Heutzutage gilt dieses Verfahren jedoch als unsicher. Als sicher werden unter anderem
die Verfahren AES 128 sowie AES 256 oder auch Triole-DES angesehen.
Bei Stromchriffren wird der Eingabestrom bit- oder byte- bzw. zeichenweise
verarbeitet. Hierfür wird zur Verschlüsselung des Eingabestroms ein Pseudozufallszahlengenerator
genutzt.
Dieser
generiert
für
jedes
Bit
die
entsprechende
Schlüsselfolge. Für die Entschlüsselung benötigt man denselben Pseudozufallszahlengenerator und dessen Initialwert, wodurch der Zufallszahlengenerator die
identische Zufallszahlenfolge, wie sie zur Verschlüsselung eingesetzt wurde, generiert.
Das RC4-Verfahren ist ein Vertreter dieses Verfahrens. Es arbeitet mit Schlüsseln
variabler Länge.
Weitere symmetrische Verschlüsselungsverfahren sind die so genannten One-TimePads. Dafür „wird eine sehr lange Folge zufällig gewählter Schlüsselbuchstaben
benötigt. Mit jedem Schlüsselbuchstaben wird genau ein Klartextzeichen nach einem
definierten Verfahren (z.B. modulo 26) verschlüsselt. Der Schlüssel darf nur in einer
einzigen
Nachricht
verwendet
werden.
Wenn
jede
Schlüsselsequenz
gleich
wahrscheinlich ist, gibt es keine Informationen für eine Kryptoanalyse“ ([S_FRITZ1]).
Dadurch stellen One-Time-Pads ein perfektes Verschlüsselungskonzept dar.
- 15 -
2. IT-Sicherheit
Die größte Schwachstelle symmetrischer Verfahren stellt das Bekanntmachen des
jeweiligen Schlüssels dar. Dieser muss vor Beginn einer sicheren Kommunikation erst
über ein unsicheres Medium, wie z.B. das WWW, allen Kommunikationspartnern
mitgeteilt werden.
Asymmetrische Verfahren
Im Gegensatz zu symmetrischen Verfahren verwenden asymmetrische Verfahren ein so
genanntes Schlüsselpaar zum Ver- und Entschlüsseln. Ein solches Schlüsselpaar besteht
aus einem öffentlichen (engl. Public Key) und einem privaten (engl. Private Key)
Schlüssel. Aus diesem Grund werden asymmetrische Verfahren auch als Public-KeyVerfahren bezeichnet. Die Idee hinter diesem Verfahren ist, dass der öffentliche
Schlüssel allen Kommunikationspartnern bekannt ist und zum Verschlüsseln von
Nachrichten verwendet werden kann. Die so verschlüsselten Nachrichten können nur
mit dem passenden privaten Schlüssel wieder entschlüsselt werden. Dieser Prozess ist in
Abb. 4 dargestellt.
Klartext
Öffentlicher Schlüssel
Privater Schlüssel
des Empfängers
des Empfängers
Chiffrierverfahren
Verschlüsselung
Chiffriertext
Chiffriertext
Dechiffrierverfahren
Klartext
Entschlüsselung
Abbildung 4: Asymmetrische Kryptographie, nach [B_KAPPE1], S. 28
Ein Vertreter der asymmetrischen Verfahren ist das RSA-Verfahren, „das auf der
Faktorisierung großer Zahlen, speziell des Produkts zweier Primzahlen basiert“, Kappes
([B_KAPPE1], S. 29).
- 16 -
2. IT-Sicherheit
Hashfunktionen
„Hashfunktionen bilden einen String variabler Länge auf einen String fester Länge –
den Hashwert – ab“ ([S_FRITZ1]). Dabei sollen Hashfunktionen den Hashwert auf
effiziente Art und Weise berechnen können und möglichst kollisionsfrei sein. Weist
eine Hashfunktion einen hohen Grad an Kollisionsfreiheit auf spricht man von EinwegHashfunktionen. Im Wesentlichen bedeutet Kollisionsfreiheit, dass es schwer ist zwei
Originalnachrichten mit demselben Hashwert zu erzeugen.
Beispiele für Einweg-Hashfunktionen sind unter anderem MD5 und SHA-1. Letzteres
ist im ISO/IEC Standard 10118 beschrieben. Daneben gibt es mittlerweile auch den
Nachfolger SHA-2.
2.3.2
Verfahren zur sicheren Kommunikation
Aufbauend auf den gerade dargestellten kryptographischen Verfahren wurden speziell
für das WWW Sicherheitsprotokolle entwickelt, die diese nutzen und es so
ermöglichen, sichere Verbindungen aufzubauen. Durch diese sicheren Verbindungen ist
es nun möglich, die Kommunikationspartner sowie die übertragenen Daten vor
unerlaubtem Zugriff bzw. Manipulation zu schützen. Ein Überblick über verschiedene
Protokolle, nach Martius ([B_MARTI1], S. 148) wird im Anhang I gegeben.
Nachfolgend wird auf das für diese Arbeit relevante SSL/TLS-Protokoll sowie das
HTTPS-Protokoll eingegangen.
SSL/TLS-Protokoll
Mittels des SSL (Secure Socket Layer)-Protokolls lassen sich gesicherte TCP-Dienste
zur Verfügung stellen. Dabei können SSL und TLS (Transport Layer Security), seit der
SSL Version 3.0 und der TLS Version 1.0, im Wesentlichen als Synonyme verwendet
werden, da SSL den Kern von TLS bildet. Dabei kombiniert SSL sowohl symmetrische
als auch asymmetrische Verschlüsselungsverfahren und stellt somit ein hybrides
Verschlüsselungsverfahren dar.
- 17 -
2. IT-Sicherheit
Der Aufbau einer gesicherten Verbindung findet in zwei Schritten statt. Zu Beginn wird
das so genannte Handshakeverfahren initialisiert und anschließend der Datenaustausch
über die Records abgewickelt.
Innerhalb des Handshakeverfahrens findet die Authentifizierung eines Servers
gegenüber dem Client statt. Des Weiteren werden die eingesetzten kryptographischen
Algorithmen zwischen Client und Server ausgehandelt. Optional ist dabei noch eine
Authentifizierung des Clients beim Server. Aus diesen ausgehandelten und
ausgetauschten Informationen können die entsprechenden Schlüssel für die Übertragung
der
Records
berechnet
werden.
Abbildung
5
skizziert
den
Ablauf
des
Handshakeverfahrens.
Client
Server
TCP-Verbindungsaufbau
CLIENT_HELLO
SERVER_HELLO
Certificate
ServerKeyExchange
CertificateRequest
ServerHelloDone
Certificate
ClientKeyExchange
CertificateVerify
ChangeCipherSpac / Finished
ChangeCipherSpac / Finished
Abbildung 5: SSL-Handshakeverfahren, vgl. [B_MARTI1], S. 89
Nachfolgend werden die einzelnen Schritte nach Martius ([B_MARTI1], S. 88 - 89)
näher beschrieben:
CLIENT_HELLO: Innerhalb des CLIENT_HELLO übermittelt der Client die von ihm
unterstützten kryptographischen Verfahren.
SERVER_HELLO: „Der Server antwortet mit einem von ihm selektierten Verfahren.
Standardmäßig wird dabei das erste in der Liste vorkommende Verfahren gewählt, das der
Server selbst unterstützt. [...]“, Martius ([B_MARTI1], S. 88)
Certificate: Das Serverzertifikat wird regelmäßig als Nachweis an den Client gesendet.
ServerKeyExchange: (Optional) Wird nur dann benötigt, wenn der im Zertifikat enthaltene
Schlüssel nur zum Signieren vorgesehen ist.
- 18 -
2. IT-Sicherheit
CertificateRequest: (Optional) Wird vom Server eine Clientauthentifizierung gefordert, so
fordert der Server das entsprechende Zertifikat vom Client an.
ServerHelloDone: Der Server teilt dem Client mit, dass er nun auf Nachrichten vom ihm wartet.
Certificate: (Optional) Wurde ein Clientzertifikat angefordert, so wird dieses nun bereitgestellt.
ClientKeyExchange: „Der Client wählt Parameter für den späteren gemeinsamen Sitzungsschlüssel, die (wenn im Serverzertifikat ein Verschlüsselungs-Schlüssel enthalten ist) mit dem
öffentlichen Schlüssel des Servers codiert werden. Möglich ist jedoch auch die Übermittlung
eines öffentlichen DH-Exponenten und eines Zufallswertes.“, Martius ([B_MARTI1], S. 89)
CertificateVerify: (Optional) Ein vom Server übermittelter Zufallswert wird vom Client signiert
zum Nachweis, dass er im Besitz des passenden geheimen Schlüssels ist.
Während des Aushandelns aller Parameter, die zur Berechnung des gemeinsamen
geheimen Sitzungsschlüssels benötigt werden, kommen asymmetrische Verfahren zum
Einsatz.
Nachdem
die
Parameter
nach
dem
Handshakeverfahrens
beiden
Kommunikationspartnern zur Verfügung stehen und der Sitzungsschlüssel berechnet
wurde, wird die Kommunikation symmetrisch verschlüsselt fortgesetzt. Dieser
Sitzungsschlüssel wird zur Kodierung der SSL-Records eingesetzt.
Das BSI stellt hierfür ein Umsetzungskonzept sowie eine SSL-Studie unter [I_BSISL1]
bereit, welche Maßnahmen und Voraussetzungen für die Einführung und Verwendung
von SSL diskutiert. Nachfolgend wird SSL in Verbindung mit dem HTTP-Protokoll
näher betrachtet. Dies wird auch als HTTPS (HTTP Secure)-Protokoll bezeichnet.
HTTPS-Protokoll
Das Hypertext Transfer Protocol (HTTP) ist das Kommunikationsprotokoll des WWW.
Es basiert auf einem einfachen Frage/Antwort-Prinzip, in dem der Clientbrowser eine
Anfrage (engl. Request) an einen Webserver stellt, der diese mit einer Antwort (engl.
Response) beantwortet. In den meisten Fällen ist die Antwort eine HTML-Seite, welche
vom Webserver ausgeliefert und beim Client anschließend dargestellt wird. Da diese
Kommunikation
unverschlüsselt stattfindet,
stellt
dies
für
sicherheitskritische
Anwendungen bzw. Teilanwendungen ein enormes Gefahrenpotential dar. Um diese
Sicherheitslücke zu schließen, kann man das SSL-Protokoll in Verbindung mit dem
HTTP-Protokoll einsetzen. Das so bezeichnete HTTPS-Protokoll ermöglicht daraufhin
den Aufbau von gesicherten HTTP-Verbindungen. So können Daten zwischen Client
und Server verschlüsselt übertragen werden.
- 19 -
3. Authentifizierung und Autorisierung
3.
Authentifizierung und Autorisierung
In diesem Kapitel werden Methoden zur Feststellung der eindeutigen Identität von
Personen
und/oder
Systemen
erläutert,
der
sogenannten
Authentifizierung.
Anschließend werden Autorisierungsmethoden zur Vergabe von Zugriffsrechten für ITRessourcen diskutiert.
3.1
Authentifizierung
Die Authentifizierung befasst sich mit Maßnahmen, durch die die Identität eines
Nutzers/Systems oder der Ursprung eines Dokumentes eindeutig identifiziert werden
kann. Methoden zur Benutzerauthentifizierung können wie folgt eingeteilt werden:
1. Wissen: Die Authentifizierung durch Wissen basiert auf einem Geheimnis, dass
ausschließlich der Authentifizierende und der Verifizierende kennen. Dabei
prüft der Verifizierende, ob das Geheimnis, welches ihm der Authentifizierende
mitteilt, identisch mit dem Geheimnis ist, dass er bereits besitzt. Beispiele
hierfür sind die Authentifizierung mittels Passwort, Personal Identification
Number (PIN) oder Transaction Authentication Number (TAN).
2. Besitz: Der Authentifizierende ist im Besitz eines Gegenstandes, durch den er
sich gegenüber Anderen eindeutig identifizieren kann. Smart Card oder Token
Card sind Anwendungsbeispiele hierfür.
3. Biometrie: Bei biometrischer Authentifizierung dienen personenbezogene
Merkmale zum Nachweis der Identität. Diese Merkmale können zum Beispiel
der Fingerabdruck oder die Iris sein.
Bei sicherheitskritischen Anwendungen kann auch eine Kombination aus verschiedenen
Benutzerauthentifizierungsmethoden eingesetzt werden. Ein Beispiel dafür ist die
Kombination aus dem Besitz einer Smart Card und dem Wissen eines geheimen PINs,
durch den der Zugriff auf die Daten der Smart Card ermöglicht wird. Im WWW stellt
die Benutzerauthentifizierung durch Wissen, vor allem die Passwortauthentifizierung,
die wohl momentan am weitesten verbreitete Methode der Authentifizierung, dar. Diese
- 20 -
3. Authentifizierung und Autorisierung
Methode wird bevorzugt, da sie sich relativ einfach implementieren lässt und keine
zusätzliche Hardware benötigt. Für die Authentifizierung durch Besitz oder Biometrie
ist dagegen eine spezielle Hard- und Softwarekomponente notwendig. Daher gestaltet
sich die Verwendung etwas aufwendiger, bietet jedoch ein erhöhtes Sicherheitsniveau.
Tabelle 1:
Vergleich der Methoden zur Benutzerauthentifizierung, vgl. [I_BROMB1]
Wissen
Besitz
Biometrie
Passwort, PIN
Schlüssel, Token Card
Fingerabdruck, DNA
„Software“
einfach bis sehr schwierig
einfach bis schwierig
vergessen
einfach
sehr schwierig
ausspionieren
möglich
schwierig
Weitergabe
einfach
einfach
einfach bis schwierig
Änderbarkeit
einfach
einfach
einfach bis sehr schwierig
Beispiele
Kopierbarkeit
Verlust
Diebstahl
Neben der Benutzerauthentifizierung spielt die Authentifizierung von Systemen bzw.
Servern eine wichtige Rolle im WWW. Hierzu werden im Allgemeinen digitale
Zertifikate eingesetzt, die durch eine als vertrauenswürdig angesehene Einrichtung
beglaubigt werden. Hinzu kommt noch die Authentifizierung von Dokumenten bzw.
dessen Urheber, welcher sein Dokument mittels einer digitalen Signatur unterzeichnet.
Zum Abschluss dieses Unterkapitels wird noch auf das Challenge-Response Verfahren
eingegangen.
3.1.1
Passwort-Authentifizierung
Wie bereits erwähnt, ist die Authentifizierung mittels Passwörtern das verbreitetste
Verfahren. Dies liegt vor allem in der einfachen Nutzbarkeit, Implementierbarkeit und
der Hardwareunabhängigkeit begründet. Das Passwort stellt das Geheimnis dar, durch
das die Identität des zu authentifizierenden Nutzers überprüft und nachgewiesen werden
kann. Dabei muss dieses Geheimnis beiden Seiten bekannt sein.
Im Folgenden werden Schwachstellen und Möglichkeiten zu deren Minimierung
diskutiert.
- 21 -
3. Authentifizierung und Autorisierung
Passwortsicherheit
Ein Passwort zeichnet sich durch den verwendeten Passwortraum aus, unter dem man
„die Anzahl aller möglichen Passwörter“, Kappes ([B_KAPPE1], S. 41) versteht. Dieser
Raum definiert sich durch die Länge eines Passwortes und die zulässigen Zeichen. Dies
wird in der nachfolgenden Tabelle verdeutlicht.
Tabelle 2:
Übersicht möglicher Passworträume, nach [B_KAPPE1], S. 42
Passwortlänge
Erlaubte Zeichen
Anzahl erlaubter
Zeichen
Möglichkeiten
Entsprechung
in Bit
4
0-9
10
104
13,3
26
8
37,6
8
47,6
8
51,9
16
75,2
8
a-z
8
8
a-z, A-Z, 0-9
a-z, A-Z, 0-9, 28 Sonderzeichen
62
90
26
62
90
16
a-z
26
26
16
a-z, A-Z, 0-9
62
6216
95,3
90
16
103,9
n
log2(qn)
16
a-z, A-Z, 0-9, 28 Sonderzeichen
n
q
90
q
Die Sicherheit einer Passwortauthentifizierung ist stark vom gewählten Passwortraum
und den Passwortrichtlinien abhängig. Die Richtlinien definieren Eigenschaften, die ein
neues Passwort mindestens erfüllen muss, damit es akzeptiert wird.
Wählt man zum Beispiel einen großen Passwortraum, welcher starke Passwörter
erlaubt, aber definiert nur schwache Richtlinien, kann es dazu führen, dass Nutzer
einfache und somit schwache Passwörter verwenden. Dies begünstigt so gennannte
Wörterbuchangriffe, bei denen ein Angreifer versucht, durch Probieren von Passwörtern
das Richtige zu erraten.
Werden hingegen starke Richtlinien, z.B. mindestens 16 Zeichen mit mindestens zwei
Sonderzeichen, gewählt, kann dies zur Verringerung der Bedienbarkeit und der
Nutzerakzeptanz führen. Dies führt wiederum dazu, dass Passwörter aufgeschrieben
werden und so ausspioniert werden können. Es ist somit sinnvoll, den Passwortraum
sowie die Richtlinien an die jeweiligen Bedürfnisse bezüglich der Sicherheit und
Bedienbarkeit je nach Anwendung bzw. System anzupassen.
- 22 -
3. Authentifizierung und Autorisierung
Tabelle 3:
Passwortrichtlinien, vgl. [B_RICHT1], S. 13
Methode
Erläuterung
Passwortzyklus
Definiert wie lange ein Passwort gültig ist bzw. in welchem Zyklus das
Passwort geändert werden muss.
Wiederverwendung
Kann man ein Passwort durch sich selbst ersetzen, macht dies einen
Passwortzyklus überflüssig. Aus diesem Grund ist es sinnvoll eine bestimmte
Anzahl von bereits verwendeten Passwörtern zu definieren, die nicht wieder
verwendet werden dürfen.
Wörterlisten
Die Wörterliste enthält eine Reihe von Passwörtern, welche nicht verwendet
werden dürfen.
Zeichensatz
Innerhalb des Zeichensatzes ist festgelegt, welche Zeichen verwendet werden
können (vgl. Tabelle 2).
Passwortlänge
Definiert die Mindestlänge für Passwörter.
Sperren
Legt fest, nach wie vielen Fehlversuchen ein Nutzerkonto gesperrt wird.
Alternativ hierzu können auch Antwortzeitverzögerungen eingesetzt werden bei
denen festgelegt wird, nach welcher Zeitspanne frühestens ein neuer
Anmeldeversuch vorgenommen werden darf.
Durch die in Tabelle 3 dargestellten Eigenschaften, die eine Passwortrichtlinie
beinhalten kann, lässt sich die Sicherheit von Passwörtern effektiv steigern und die
Gefahr von schwachen Passwörtern minimieren.
An dieser Stelle soll noch einmal darauf hingewiesen werden, dass ein Kompromiss
zwischen Passwortsicherheit und Benutzbarkeit eingegangen werden muss. Selbst wenn
man durch einen guten Kompromiss stärkere Passwörter erhält, muss immer
berücksichtigt werden, dass auch diese Passwörter erraten bzw. entschlüsselt werden
können, vor allem durch die Verwendung veralteter oder bereits als entschlüsselbar
bekannter Verschlüsselungsalgorithmen.
In dem Artikel von Arbeiter und Deegen ([Z_CT0609], S. 204f) wird beschrieben, wie
die Rechenleistung eines normalen Computers durch die Kombination aus CPU und
Grafikkartenprozessoren enorm gesteigert werden kann. Diese Steigerung der
Rechenleistung führt dazu, dass Passwörter, welche mit dem NTML-Hash Algorithmus
verschlüsselt wurden, je nach verwendetem Zeichensatz relativ schnell berechnet
werden können. Der NTML-Hash Algorithmus wird von aktuellen Windows-Versionen
und Netzwerkprotokollen verwendet.
- 23 -
3. Authentifizierung und Autorisierung
In der nachfolgenden Tabelle werden die in dem Test ermittelten Berechnungsdauern
übersichtlich dargestellt. Dabei ist zu berücksichtigen, dass „[i]m statistischen Mittel
[...] ein Passwort nach der Hälfte der angegebenen Maximalzeit ermittelt [ist]“
([Z_CT0609], S. 205).
Tabelle 4:
Crack-Dauer für Windows-Passwörter (NTLM), nach [Z_CT0609], S. 205
Passwortlänge
Erlaubte Zeichen
Dauer
6
[a-z], [A-Z], [0-9]
1 Minute
6
[a-z], [A-Z], [0-9], [typ. Sonderzeichen]
6 Minuten
8
[a-z], [A-Z], [0-9]
2 Tage und 17 Stunden
8
[a-z], [A-Z], [0-9], [typ. Sonderzeichen]
33 Tage
8
[a-z], [A-Z], [0-9], [alle Sonderzeichen]
82 Tage
11
[a-z], [A-Z]
270 Jahre
Die in Tabelle 4 aufgeführten Zeiten wurden unter den für den Bericht spezifischen
Systemvoraussetzungen ermittelt und können durch leistungsfähigere Hardware
verringert werden.
Des Weiteren kann es einem Angreifer durch geschickte Wahl von Parametern oder
durch eigene Algorithmen gelingen, bereits nach wenigen Versuchen das richtige
Passwort zu erraten. Es wird an dieser Stelle jedoch nicht weiter auf entsprechende
Verfahren, Algorithmen oder Cracker-Programme eingegangen.
Abschließend soll noch ein kleiner Exkurs zur Verwendung von Passwörtern, die hohen
Sicherheitsansprüchen genügen, aber dennoch relativ einfach zu merken sind, gegeben
werden.
Ein gutes und sicheres Passwort sollte mindestens acht Zeichen lang sein und aus
zufälligen Zeichen (Groß- und Kleinbuchstaben sowie Sonderzeichen) bestehen. Leider
lassen sich diese Passwörter nur sehr schlecht, wenn überhaupt einprägen, wodurch
Nutzer meist auf einfacher zu Merkende zurückgreifen. Abhilfe könnte die Verwendung
eines Passwortschemata bieten, dieses besteht aus einem Grundpasswort, welches
bereits
die
Kriterien
eines
sicheren
Passwortes
erfüllt
und
einer
anwendungsspezifischen Ergänzung.
- 24 -
3. Authentifizierung und Autorisierung
Dadurch, dass man das Grundpasswort in mehreren Anwendungen/Systemen
verwendet, prägt sich selbst eine wahllose Kombination von Zeichen relativ schnell ein
und die jeweilige Ergänzung lässt sich letztendlich von der Anwendung her ableiten.
Vgl. Rütten ([Z_CT0209], S. 86f).
Einmal-Passwörter
Eine weitere Möglichkeit die Passwortauthentifizierung sicherer zu gestalten, ist die
Verwendung von so genannten Einmal-Passwörtern. Bei diesen hat ein Angreifer keine
Chance das gültige Passwort zu missbrauchen, selbst wenn das Passwort über ein
abhörbares Medium übermittelt wird, da es nur ein einziges Mal gültig ist.
Der Nachteil dieser Verfahrensweise ist die Übermittlung der gültigen EinmalPasswörter, denn diese müssen beiden Seiten vor dem Authentifizierungsprozess
bekannt sein. Eines der bekanntesten Beispiele hierfür sind die für das Onlinebanking
verwendeten TAN-Verfahren.
3.1.2
Smart Card
Smart Cards sind sichere, kompakte und intelligente Datenträger in der Größe einer
Kreditkarte. Die auf dem Datenträger gespeicherten Daten können nur mithilfe eines
Chip Operating System (COS), das ein hohes Level an Sicherheit bereitstellt, gelesen
werden. Meist ist diese COS zusätzlich durch ein Passwort geschützt.
Um Smart Cards zur Authentifizierung nutzen zu können ist ein spezielles Lesegerät
notwendig. Des Weiteren müssen besondere Schnittstellen für die Systeme und
Anwendungen implementiert werden, damit die Authentifizierung nur mittels Smart
Card und ggf. dem entsprechenden Passwort funktioniert. (Vgl. [B_ECKER1] und
[I_TECHF1])
- 25 -
3. Authentifizierung und Autorisierung
3.1.3
Fingerprint-Scanner
Fingerabdrücke weisen ein für jeden Nutzer individuelles Muster auf, dass es einem
System bzw. einer Softwarekomponente ermöglicht einen Nutzer eindeutig zu
identifizieren.
Damit ein Nutzer sich mittels seines Fingerabdrucks gegenüber einem System
authentifizieren kann, muss dieser zuvor in diesem gespeichert sein. Zum Einscannen
eines Fingerabdruckes wird eine spezielle Hardwarekomponente und zum Vergleich des
eingescannten Fingermusters mit den gespeicherten eine Softwarekomponente benötigt.
Das eingescannte Fingermuster stimmt nicht immer hundertprozentig mit dem
gespeicherten Muster überein, dies kann z.B. durch einen leicht veränderten
Neigungswinkel beim Scannen geschehen oder auch durch eine Verletzung bedingt
sein. Aus diesem Grund wird beim Abgleich der Muster ein gewisser Grad an Toleranz
eingeräumt. (Vgl. [I_BROMB1] und [I_SCHMU1])
3.1.4
Digitale Zertifikate
Das Problem im WWW ist die Glaubhaftigkeit der einzelnen Nutzer bzw. Systeme.
Hierfür wurden digitale Zertifikate eingeführt, die nähere Informationen über den
Zertifikatbesitzer enthalten und den öffentlichen Schlüssel für z.B. eine verschlüsselte
Kommunikation bereit stellen. Diese Zertifikate sollten von einer allgemein als
vertrauenswürdig
geltenden
Zertifizierungsstelle
ausgestellt
sein,
um
die
Glaubhaftigkeit und Echtheit zu verifizieren. Eine dieser vertrauenswürdigen Stellen ist
das BSI.
Es gibt daneben die Möglichkeit, selbst Zertifikate zu erstellen und diese bei Bedarf
beglaubigen zu lassen. Ein nicht beglaubigtes Zertifikat kann entsprechend leicht
gefälscht werden. Eine dieser Möglichkeiten ist die Verwendung von OpenSSL.
(Vgl. [I_DEUTS1] und [I_OPENS1])
- 26 -
3. Authentifizierung und Autorisierung
3.1.5
Digitale Signatur
Digitale Signaturen dienen wie handschriftliche Unterschriften/Signaturen dazu, die
Echtheit, Unverfälschtheit und Nicht-Abstreitbarkeit von Dokumenten sicherzustellen.
Der Empfänger eines Dokumentes kann so zweifelsfrei feststellen, ob das erhaltene
Dokument wirklich vom Empfänger stammt und dieser es willentlich unterzeichnet hat.
Für das Unterzeichnen können symmetrische und asymmetrische Verfahren verwendet
werden, wobei der Unterzeichner entweder das gesamte Dokument oder den von diesem
Dokument berechneten Hashwert digital signiert und letzteren anschließend mit dem
Dokument versendet. Der Empfänger kann mittels dieser Signatur ein Dokument
eindeutig dem Unterzeichner zuordnen.
Die genauen Methoden, Möglichkeiten und Verfahrensweisen werden im Rahmen
dieser Arbeit nicht näher betrachtet. Abschließend soll noch auf das in Deutschland
gültige Signaturgesetz verwiesen werden, welches unter anderem Rahmenbedingungen
für elektronische Signaturen definiert. (Vgl. [S_FRITZ1] und [I_DEUTS2])
3.1.6
Challenge-Response-Authentifizierung
Challenge-Response-Authentifizierung basiert auf dem Frage (engl. Challenge) /
Antwort (engl. Response) - Prinzip. Möchte sich ein Client an einem Server
authentifizieren, so sendet dieser eine Challenge, die der Client beantworten muss und
nur durch die richtige Antwort kann die Authentifizierung erfolgreich abgeschlossen
werden.
Hierfür
können
sowohl
symmetrische
als
auch
asymmetrische
kryptographische Verfahren eingesetzt werden.
In Abbildung 6 wird eine Challenge-Response-Authentifizierung mittels eines
asymmetrischen Verfahrens veranschaulicht.
- 27 -
3. Authentifizierung und Autorisierung
Voraussetzung: Client A verfügt über ein Public-Key-Schlüsselpaar und Server B besitzt den öffentlichen Schlüssel von A
Client A
Server B
Hallo ich bin Client A
Server B sendet X an Client A
Server B generiert zufälliges X
Client A verschlüsselt X
Entschlüsselt X’ durch
mittels privatem Schlüssel
öffentlichen Schlüssel von Client A
und vergleicht X und X’
OK
Abbildung 6: Asymmetrische Challenge-Response-Authentifizierung, vgl. [B_KAPPE1], S. 51
Um die Sicherheit der Challenge-Response-Authentifizierung zu steigern ist es möglich,
diese mehrstufig durchzuführen. In diesem Fall wird das gerade skizzierte Verfahren
mehrfach wiederholt. Dies stellt für Angreifer eine fast nicht zu überwindende Hürde
dar, denn für jeden Authentifizierungsvorgang wird eine neue Kennung generiert.
Je nachdem welcher Zufallszahlengenerator verwendet wird und welche Qualität die
generierten Zufallszahlen haben, können diese unter Umständen im Vorfeld berechnet
werden, was eine potenzielle Schwachstelle des Verfahrens darstellt.
(Vgl. [B_KAPPE1] und [B_ECKER1])
3.2
Autorisierung
„Autorisierung bezeichnet die Zuweisung von Zugriffsrechten auf IT-Ressourcen […]“,
Richter ([B_RICHT1], S. 6). Die Zugriffsrechte können nur von authentifizierten und
mit den notwendigen Rechten bzw. Privilegien ausgestatteten Nutzern an andere
berechtigte Nutzer vergeben werden.
3.2.1
Discretionary Access Control (DAC)
Discretionary Access Control basiert auf der Vergabe bzw. dem Entzug von Rechten
auf Objekte. Dabei geht man davon aus, dass ein Nutzer, welcher ein Objekt anlegt, alle
- 28 -
3. Authentifizierung und Autorisierung
Rechte für dieses Objekt besitzt und dass dieser anderen Nutzern Rechte für seine
Objekte einräumen kann.
Welche Rechte ein Nutzer für bestimmte Objekte besitzt, kann am einfachsten in einer
Zugriffsmatrix abgespeichert werden. „Abhängig von der Granularität der Autorisierung
können Zugriffsmatrizen allerdings sehr groß werden“, Kemper ([B_KEMPE1],
S. 339). Werden einem Objekteigentümer alle Rechte für eines seiner Objekte entzogen,
so ist dieses Objekt auch für keinen anderen Nutzer mehr erreichbar. (Vgl.
[B_FERRA1], [I_PLANE1] und [I_ENGEL1])
3.2.2
Mandatory Access Control (MAC)
Bei Mandatory Access Control werden basierend auf dem Bell-LaPadula Modell
„jedem Subjekt s […] eine Sicherheitsklasse, die so genannte Clearance […] und jedem
Objekt o […] eine Sicherheitsklassifikation, die so genannte Classification […]
zugeordnet.“, Eckert ([B_ECKER1], S. 126). Beim Lesen und Schreiben von Objekten
durch Subjekte werden deren Sicherheitseinstufungen verglichen:
Für das Lesen gilt, dass das Objekt einer Menge von Subjekten untergeordnet ist
und eine geringere oder gleiche Sicherheitseinstufung besitzt.
Für das Schreiben gilt, dass ein Subjekt einer Menge von Objekten
untergeordnet ist und es eine höhere oder gleiche Sicherheitseinstufung besitzt.
Jedes Subjekt und jedes Objekt muss eingestuft werden. Dies kann bei großen sich
schnell ändernden Datenmengen sehr aufwendig und problematisch werden. Des
Weiteren wird ein Objekt, welches durch ein Subjekt mit höherer Sicherheitseinstufung
bearbeitet wird, automatisch mit der höheren Einstufung versehen. Dies führt dazu, dass
geringer eingestufte Subjekte nicht mehr auf das geänderte Objekt zugreifen können.
(Vgl. [B_KEMPE1], [B_FERRA1], [I_PLANE1] und [I_ENGEL1])
- 29 -
3. Authentifizierung und Autorisierung
3.2.3
Role-based Access Control (RBAC)
In DBMS werden Nutzern in der Regel bestimmte Rollen zugeordnet, die bestimmte
Rechte auf Objekte vereinen. Man spricht hierbei auch von Role-based Access Control
(RBAC). Eine Rolle „repräsentiert die Funktion eines Benutzers in einem System und
beinhaltet die zur Erfüllung der Funktionen notwendigen Rechte“, Kemper
([B_KEMPE1], S. 339). In den SQL-99 Standards ist dieses Konzept enthalten. Mit
dieser Verfahrensweise versucht man die komplexen Mengen von Zugriffsrechten in
deren Definition und Verwaltung zu vereinfachen.
Man kann Rollen auch hierarchisch aufbauen und so innerhalb einer Datenbank eine
organisatorische Struktur abbilden. Dadurch besitzen übergeordnete Rollen alle Rechte
der Untergeordneten. Hierbei spricht man von impliziter Autorisierung. Dieses Prinzip
baut auf den expliziten Rechten jeder einzelnen Rolle auf, welche dann implizit
weitergereicht werden. Werden bestimmte Rechte einer Rolle entzogen, so verlieren
auch die untergeordneten Rollen diese Rechte.
(Vgl. [B_FERRA1] und [I_PLANE1])
- 30 -
4. Web-Technologien und spezielle Angriffstechniken
4.
Web-Technologien und spezielle Angriffstechniken
Dieses Kapitel beschäftigt sich mit Technologien, die in Verbindung mit dem WWW
verwendet werden und deren Sicherheitsaspekten. Des Weiteren werden verschiedene
vom WWW ausgehende Bedrohungen erläutert und entsprechende Gegenmaßnahmen
besprochen.
Eine Klassifizierungsmöglichkeit für Web-Technologien und Softwareprodukte ist die
Einteilung nach Closed Source und Open Source. Dabei wird Software, deren
Quellcode nicht öffentlich zugänglich ist, als Closed Source bezeichnet. Bei den
meisten kommerziellen Softwareprodukten (proprietäre Software) ist dies der Fall. Des
Weiteren ist auch das Wiederherstellen des Quellcodes aus dem lauffähigen Programm
meistens durch die dazugehörigen Lizenzbestimmungen verboten.
Bei Open Source Software wird der Quellcode offen gelegt. Dadurch ist es möglich
Open Source Software selbständig zu verändern, zu verbessern und diese dann wieder
zu veröffentlichen. Dies ist auch in den Definitionen der Open Source Initiative (OSI)
und der Free Software Foundation (FSF) benannt. Laut diesen Definitionen stehen
einem Benutzer außerdem noch die nachfolgenden Freiheiten zu:
•
die Software darf für beliebige Zwecke verwendet werden,
•
der Quellcode darf studiert werden, um herauszufinden wie das Programm
funktioniert,
•
die Software darf uneingeschränkt an Dritte weitergegeben werden.
Dennoch gibt es auch im Open Source Bereich verschiedene Lizenzen, von denen
einige in der nachfolgenden Tabelle aufgeführt werden. Hierbei besagt das „Copyleft
[...], dass sämtliche Änderungen und Weiterentwicklungen einer Open-Source-Software
nur unter der gleichen Lizenz als freie Software weitergegeben werden dürfen“
[I_KLEIJ1].
- 31 -
4. Web-Technologien und spezielle Angriffstechniken
Tabelle 5:
Open Source Lizenzen, nach [I_KLEIJ1]
Art des Copyleft
Kombinationsmöglichkeiten
mit proprietärer
Software
Starkes Copyleft
Schwaches Copyleft
Kein Copyleft
Ð keine Einbindung in
proprietären Code
möglich
Ð statisches und
dynamisches Linken von
Code mit proprietärer
Software möglich.
Ð keine Vorgaben.
Ð Eigenentwicklungen
möglich
Ð der gesamte Code darf
auch als proprietäre
Software weitergegeben
werden
Ð dürfen als proprietäre
Software weitergegeben
werden
Beispiel-Lizenz
4.1
Ð GPL
Ð LGPL, MPL
Ð BSD, Apache
Sicherheitsaspekte webbasierter Technologien
Es gibt im WWW verschiedene Möglichkeiten Informationen, Daten und ganze
Anwendungen zu präsentieren bzw. auszutauschen. Hierzu wurden im Laufe der Jahre
verschiedene Technologien entwickelt, die es ermöglichen, vielfältige Inhalte (z.B.
Texte, Videos oder Musik) zu präsentieren bzw. zu verarbeiten. Dabei stellt HTML die
grundlegendste Technologie zum Darstellen dieser Inhalte im WWW dar. HTML wird
von anderen Technologien als Ausgabesprache verwendet, da sie von allen gängigen
Browsern unterstützt wird.
Die verschiedenen Technologien lassen sich in client- und serverseitige Technologien
differenzieren. Bei clientseitigen Technologien wird die gesamte Anwendung vom
Webserver heruntergeladen und beim Client zur Ausführung gebracht. Technologien
hierfür sind beispielsweise clientseitige Skriptsprachen wie JavaScript oder VBScript,
sowie Flash, Java-Applets oder ActiveX.
Bei serverseitigen Technologien wird die eigentliche Anwendung auf dem Server
ausgeführt. Der Client stößt durch seine Anfragen die serverseitige Abarbeitung an und
erhält lediglich das Ergebnis seiner Anfrage, meist in Form eines HTML- oder XML
(Extensible Markup Language)-Dokumentes. Zu den serverseitigen Technologien
zählen unter anderem SSI (Server Side Includes), ASP (Active Server Pages), JSP (Java
Server Pages) sowie serverseitige Skriptsprachen wie PHP, Ruby oder Python.
- 32 -
4. Web-Technologien und spezielle Angriffstechniken
Aus den letzten beiden Skriptsprachen haben sich in den vergangenen Jahren zwei sehr
bekannte Frameworks zur agilen Webprogrammierung entwickelt, Ruby on Rails für
Ruby und Django für Python.
In den nachfolgenden Unterkapiteln werden einige der oben aufgeführten Technologien
kurz vorgestellt und hinsichtlich ihrer Sicherheit diskutiert. Dabei wird das
Sicherheitsmodel
der
verschiedenen
Java-basierten
Technologien
bereits
im
nachfolgenden Abschnitt erläutert und nicht bei den Technologien separat aufgeführt.
Die Programmiersprache Java ist eine sehr mächtige, von Sun Microsystems
entwickelte
objektorientierte
Programmiersprache,
für
die
zahlreiche
Zusatzbibliotheken im WWW verfügbar sind. Es steht allen in Java über die J2EEPlattform entwickelten Programmen, beispielsweise die JDBC-Schnittstelle zur
Verfügung. Diese ermöglicht einen problemlosen Datenbankzugriff auf alle bekannten
Datenbanksysteme.
Zu den clientseitigen Java-Technologien gehören beispielsweise die Java-Applets und
JavaBeans. Zu den serverseitigen zählen unter anderem die Java-Servlets und Java
Server Pages.
Bei der Entwicklung von Java stand von Beginn an die Sicherheit des jeweiligen
Zielrechners, auf dem die Anwendung ausgeführt werden soll, im Blickpunkt. Das
bedeutet unter anderem, dass das Ausführen von sicherheitskritischen Operationen
kontrollierbar sein soll. Sun entwickelte deshalb das Prinzip der “Sandbox“. Dieses
beinhaltet, dass die jeweilige Anwendung in einer durch den Benutzer kontrollierbaren
eingeschränkten Laufzeitumgebung ausgeführt wird, der so genannten Java Virtual
Machine (JVM). Die JVM interpretiert den Java-Byte-Code, in dem die jeweilige
Anwendung vorliegt, in einen systemspezifischen Maschinencode und bringt diesen zur
Ausführung. Hierbei kann die Anwendung in der Regel nicht auf Systemressourcen
außerhalb der Laufzeitumgebung zugreifen. (Vgl. [B_ULLEN1] und [I_SUNSA])
- 33 -
4. Web-Technologien und spezielle Angriffstechniken
4.1.1
clientseitige Technologien
Java-Applets
Java-Applets sind eigenständige lauffähige Programme, die als vorkompilierter ByteCode auf dem Web-Server gespeichert sind. Auf Anfrage eines Web-Clients werden die
in HTML-Seiten eingebetteten Applets vom Web-Server an den Client übermittelt, dort
von der JVM interpretiert und zur Ausführung gebracht.
Das Verwenden von Java-Applets setzt eine JVM auf dem Clientrechner voraus. Diese
ist entweder ein fester Bestandteil des jeweiligen Browsers oder muss als zusätzliches
PlugIn installiert werden.
Der Datenbankzugriff erfolgt mittels JDBC-API, einer standardisierten JavaSchnittstelle für den Zugriff auf Datenbanken. Durch die Verwendung der JDBCSchnittstelle ist ein direkter Zugriff auf den Datenbankserver möglich, wodurch der
Web-Server von zusätzlichem Datentransfer entlastet wird. (Vgl. [B_RAHMx1] und
[B_MEINE1])
Eine der größten Gefahren in der Verwendung von Applets ist deren unbekannte
Herkunft, das heißt es lässt nicht sich einwandfrei feststellen, von welcher Quelle ein
Applet bzw. dessen Bestandteile geladen werden. Dadurch besteht die Gefahr, dass
beispielsweise schädliche Programme oder Viren auf den jeweiligen Rechner heruntergeladen werden können.
Dieses Problem versucht man durch so genannte „Signed Applets“ zu minimieren.
„Signed Applets“ sind digital signierte Applets, bei denen durch die Prüfung der
Signatur festgestellt werden kann, wer den jeweiligen Code signiert hat und ob er
seitdem verändert wurde. Da die verschiedenen Hersteller wie Sun, Microsoft oder
Netscape unterschiedliche Techniken für signierte Applets entwickelt und implementiert
haben, ist es nicht möglich, ein signiertes Applet für alle Plattformen zu generieren.
(Vgl. [V_RAHMx1], [B_MEINE1], [I_GREEN1] und [I_SUNJA1])
- 34 -
4. Web-Technologien und spezielle Angriffstechniken
ActiveX
Das von Microsoft entwickelte ActiveX kann als ein Komponentensystem betrachtet
werden, welches nicht auf eine Programmiersprache beschränkt ist. Die einzelnen
Komponenten können beispielsweise in C, C++ oder auch Java programmiert werden.
Alle verwendeten Komponenten müssen nur auf dem Component Object Model (COM)
basieren, einer Plattform-Technologie.
Das Herzstück von ActiveX Kompositionen stellt das so genannte ActiveX-ControlObjekt dar. Dieses Control-Objekt wird in HTML-Seiten eingebettet und clientseitig in
dessen Arbeitsspeicher zur Ausführung gebracht. Dabei ist zu beachten, dass ActiveX
von dem Clientbrowser unterstützt wird und aktiviert sein muss.
Das Sicherheitskonzept beruht auf dem „Alles oder Nichts“-Prinzip, denn der Nutzer
kann eine ActiveX-Anwendung entweder zulassen oder blockieren. Wird die jeweilige
Anwendung zugelassen, besitzt diese vollen Zugriff auf das lokale Dateisystem.
Wie bereits bei den Java-Applets erwähnt, besteht auch hier die Gefahr, dass man nicht
genau feststellen kann, von wem die ActiveX-Anwendung entwickelt wurde. Man
versucht deshalb durch das Erstellen von signierten ActiveX-Anwendungen die
Vertrauenswürdigkeit zu erhöhen.
Durch die systemspezifische Entwicklung und Optimierung für die MicrosoftPlattformen
besitzen
ActiveX-Anwendungen
gegenüber
vergleichbaren
Java-
Anwendungen einen Geschwindigkeitsvorteil. (Vgl. [B_RAHMx1], [I_MACKx1],
[I_MICRO1] und [I_SELFH1])
4.1.2
serverseitige Technologien
ASP .Net (Active Server Pages .NET)
ASP .NET ist eine Closed Source Technologie der Firma Microsoft, welche auf dem
.NET-Framework basiert. Das .NET-Framework erlaubt, Anwendungen in einer
beliebigen, von .NET unterstützten Programmiersprache zu schreiben. Zu diesen
Sprachen gehören unter anderem JScript, VScript oder auch C#.
- 35 -
4. Web-Technologien und spezielle Angriffstechniken
Hierbei wird eine strikte Trennung zwischen Anwendungslogik bzw. Programmcode
und dem Design vorgenommen. So ist es möglich, HTML-Seiten mit Cascading Style
Sheets (CSS) und JavaScript unabhängig von der Anwendungslogik zu entwickeln. Es
werden lediglich in die HTML-Seiten spezielle HTML Controls eingefügt, die als
Platzhalter dienen. HTML Control-Objekte sind Standardobjekte, wie z.B. Buttons oder
auch Eingabefelder, in deren Tags eine eindeutige ID sowie der Zusatz runat=“server“
eingefügt wird.
Auf diese Objekte kann das ASP .NET Programm zugreifen und dessen Eigenschaften
bearbeiten und anschließend die so generierte HTML-Seite dem Client zur Verfügung
stellen. Der Datenbankzugriff erfolgt durch die .NET-Klasse ActiveX Data Objects
.NET (ADO.NET).
Die Kommunikation zwischen den Web-Clients und ASP .Net Anwendungen erfolgt
über den
Internet Information Services (IIS), welches zum Authentifizieren von
Ressourcen genutzt werden kann. Somit lässt sich mittels IIS eine Authentifizierung
und Autorisierung von Web-Clients realisieren. Es lassen sich zusätzlich auch die
Sicherheitsfeatures des .NET Framework verwenden. Darauf wird an dieser Stelle
jedoch nicht näher eingegangen. (Vgl. [I_MICRO2], [B_MEINE1] und [B_RAHMx1])
Java Servlets
Java Servlets sind auf der Java Plattform basierende Technologien, mit denen sich WebServer beliebig erweitern lassen. Ein in Java geschriebenes Servlet liegt auf dem WebServer vor und wird von dessen JVM beim ersten Aufruf oder gleich beim Start des
Servers interpretiert.
Die spezielle Servlet-Engine auf dem Web-Server ermöglicht bzw. vereinfacht die
Kommunikation zwischen verschiedenen Servlets, vor allem, wenn sie in derselben
Laufzeitumgebung gestartet werden. Es ist aber auch möglich mit mehreren JVM zu
arbeiten, um eine Lastverteilung des Web-Servers zu erreichen.
Bei Java Servlets ist eine Trennung von Logik und Design nur schwer möglich, da die
HTML-Tags mit in die Java-Klassen des Servlets eingebettet werden müssen. Um
dieses Problem zu lösen wurden die Java Server Pages (JSP) entwickelt, die eine
- 36 -
4. Web-Technologien und spezielle Angriffstechniken
Erweiterung der Servlet Technologie darstellen. (Vgl. [B_ULLEN1], [I_STELL1] und
[I_SUNJS1])
JSP (Java Server Pages)
JSP trennen Logik und Design voneinander. Es ist demnach möglich, eine statische
Web-Seite zu entwickeln und durch das Einfügen von speziellen Tags diese dann um
dynamische Elemente zu erweitern.
Wird ein JSP-Skript von einem Client aufgerufen, so übersetzt die auf dem Web-Server
installierte JSP-Engine dieses in ein Java Servlet und führt es aus. Nach der erstmaligen
Übersetzung eines Skriptes wird die erzeugte Klasse von der Servlet-Engine verwendet
und wie ein normales Servlet behandelt. (Vgl. [B_ULLEN1], [I_LEITE1] und
[I_SUNSP1])
Serverseitige Skriptsprachen
Skriptsprachen haben sich aus den Kommandosprachen heraus entwickelt. Dabei wird
eine Reihe von Kommandos in einer Datei zusammengefasst, die dann zur Laufzeit
interpretiert und ausgeführt werden.
Für das WWW existieren verschiedene Skriptsprachen, dazu zählen z.B. Perl, PHP oder
Ruby. Skriptsprachen grenzen sich von normalen Programmiersprachen dadurch ab,
dass sie in der Regel interpretiert werden und dass sie entweder schwach oder
vollständig typfrei sind. Typfrei bedeutet, dass die verwendeten Variablen nicht
typgebunden deklariert werden müssen, sondern intern immer den Typ annehmen ,der
erforderlich ist.
Die Entwicklung von Webanwendungen mittels Skriptsprachen erfolgt meist im
Baukasten-Prinzip. Das heißt, man verwendet vorgefertigte, im Internet verfügbare
Module und/oder eigene. Aus diesem Grund gibt es kein einheitliches Sicherheitsmodel.
Es gibt jedoch die verschiedensten sprachspezifischen Sicherheitsmodule, wie z.B. für
PHP Shuhosin. (Vgl. [B_WALTE1], [I_ESSER1] und [I_PFAHL1])
- 37 -
4. Web-Technologien und spezielle Angriffstechniken
4.2
Bedrohungen aus dem WWW
Das WWW bringt neben zahlreichen Möglichkeiten auch vielfältige Gefahren mit sich.
Gefährdet sind vor allem Firmen und Regierungen. Allein gegen Regierungen und
deren Organe richteten sich laut Breach Security, Inc. ([I_BREAC1], S. 8) ca. 32% der
Angriffe. Die Ziele der Angreifer sind von unterschiedlichster Natur, einerseits die reine
Informationsbeschaffung,
andererseits
das
Sabotieren
konkreter
Systeme
und
Anwendungen. Auf die Ziele und die Motivation der Angreifer wird jedoch im Rahmen
dieser Arbeit nicht weiter eingegangen. Einige der derzeitigen Angriffsmethoden
werden in Tabelle 6 nach Breach Security, Inc. ([I_BREAC1], S. 6) dargestellt.
Tabelle 6:
Übersicht Angriffsmethoden, vgl. [I_BREAC1], S. 6
Angriffsmethode / ausgenutzte Schwachstellen
%
SQL-Injection*
30
Unknown
29
Cross-Site Scripting (XSS)*
8
Cross-Site Request Forgery
3
Operating System Commanding
3
Denial of Service*
3
Brute Force
2
Die mit einem Stern (*) gekennzeichneten Angriffsmethoden werden nachfolgend näher
betrachtet. Diese Angriffe richten sich dabei einerseits gegen das zugrunde liegende
System und andererseits gegen den Endanwender. SQL-Injections sind beispielsweise
spezielle Parametermanipulationen und richten sich gegen das zugrunde liegende
System, ebenso wie Denial of Service (DoS). DoS-Angriffe versuchen die
Verfügbarkeit eines Systems zu unterbrechen. Gegen den Endanwender richtet sich
dagegen zum Beispiel ein Cross-Site Scripting (XSS) Angriff.
4.2.1
Parametermanipulation
Parameter sind veränderbare Werte, die zum Beispiel zwischen Client und Server
ausgetauscht werden. Diese können auf unterschiedliche Art und Weise manipuliert
werden abhängig von ihrer Form, in der sie übergeben werden. Durch die Manipulation
kann ein Angreifer beispielsweise Rechte erhalten, die ihm eigentlich nicht zustehen,
- 38 -
4. Web-Technologien und spezielle Angriffstechniken
und so Zugriff auf sensible Daten erlangen. Des Weiteren kann er gezielt Eingabefelder
dazu verwenden, einen schädlichen Code oder Anweisungen in die Anwendung
einzuschleusen. Beispiele hierfür sind die SQL-Injection sowie XSS, auf die im
weiteren Verlauf der Arbeit näher eingegangen wird. (Vgl. [B_KUNZx1])
Der Autor betrachtet dabei folgende Formen näher:
•
URL-Parameter
•
Cookies
•
Formulardaten
URL-Parameter
Werden Parameter direkt über einen Uniform Resource Locator (URL) von einer
Webseite an den Webserver übermittelt, so ist es für einen Angreifer sehr einfach
möglich, diese zu manipulieren. Man verändert lediglich die URL-Parameterwerte und
wartet die Reaktion des Systems ab. Dies kann beispielsweise dafür genutzt werden,
gezielt Fehler zu provozieren, um an Informationen über die verwendeten Systeme zu
gelangen, welche dann beispielsweise für DoS-Angriffe verwendet werden können.
Eine weitere Möglichkeit ist, dass Angreifer die URL so manipulieren, dass sie Zugriff
auf das Serversystem erlangen, um dort beispielsweise Nutzerdateien auszuspähen.
Um die Gefahr von URL-Parametermanipulation zu minimieren, sollten die
Eingabewerte immer validiert werden. Des Weiteren könnte man Standardkonfigurationen am System überprüfen. Vor allem sollte es vermieden werden, sensible
Daten wie die Benutzerkennung oder das Klartextpasswort als URL-Parameter zu
übergeben.
Cookies
Bei der Kommunikation zwischen Client und Server werden häufig Cookies auf Seiten
des jeweiligen Client gesetzt. Dadurch wird beispielsweise das Sitzungsmanagement
gesteuert. Diese Cookie-Dateien werden bei jeder weiteren Anfrage des gleichen Clients
mit an den entsprechenden Server übermittelt.
- 39 -
4. Web-Technologien und spezielle Angriffstechniken
Somit kann ein Angreifer durch Manipulation der Cookie-Inhalte versuchen, das
Sicherheitssystem des Servers zu umgehen oder gefährliche Daten an den Server zu
übermitteln. Diese Angriffe werden auch als Cookie Poisoning Angriffe bezeichnet. Mit
dieser Methode kann es außerdem gelingen, Informationen über andere Benutzer zu
erhalten oder deren Identität zu übernehmen.
Zur Vorbeugung dieser Angriffe, sollte das Speichern von sensiblen Daten in Cookies
vermieden und keine permanenten Cookies verwendet werden.
Formulardaten
Formulare bieten einem Nutzer verschiedene Möglichkeiten, z.B. dienen sie zur
Kommunikation mit den Betreibern einer Webseite oder zum Bestellen von Produkten.
Aber auch Angreifer können sich Formulare zu Nutze machen, z.B. zum Einschleusen
von einem Schadcode oder zur Manipulation von Parametern. An dieser Stelle wird auf
SQL-Injection und XSS verwiesen.
Innerhalb von Formularen ist es möglich Eingaben zu tätigen, welche ohne korrekte
Validierung
enormen
Schaden
anrichten
können.
Dabei
stellen
nicht
nur
alphanumerische Eingabefelder eine potenzielle Gefahr dar, sondern auch vermeintlich
nicht veränderbare Radiobuttons oder Checkboxen, die vom Entwickler mit Werten
vorbelegt sind. Ein Angreifer könnte das Formular lokal speichern, dieses editieren und
entsprechende Attribute oder vorgegebene Werte verändern. Wird ein so verfälschtes
Formular wieder an den Web-Server übertragen, könnte dieses das Verhalten der
Webanwendung verändern bzw. Schaden auf dem Web-Server, Datenbankserver oder
auch bei anderen Clients anrichten.
Um diese Sicherheitslücke zu schließen, ist es notwendig alle Nutzereingaben stets zu
validieren und nie ungeprüft weiter zu verarbeiten. Außerdem können auch Whitelists
dazu verwendet werden, die Eingabevalidierung zu erweitern. Dies bedeutet, dass nur
explizit zugelassene Befehle an den Webserver weitergeleitet werden.
- 40 -
4. Web-Technologien und spezielle Angriffstechniken
4.2.2
SQL-Injection
Durch die hohe Zahl der an das WWW angeschlossener datenbankbasierter
Anwendungen stellen SQL-Injections eine der größten Gefahren dar. Ein Angreifer
versucht hierbei, durch gezielte Parametermanipulation das Verhalten der Datenbank zu
beeinflussen. Diese Beeinflussung reicht von der gezielten Fehlerprovokation bis hin
zur Manipulation eines SQL-Statements. Damit ist ein Angreifer in der Lage auf für ihn
eigentlich nicht zugängige Daten zuzugreifen oder auch verschiedene Datenbankoperationen auszuführen.
Um eine SQL-Injection durchzuführen, müssen die durch einen Angreifer manipulierten
Eingabeparameter direkt in ein SQL-Statement eingebunden sein und dieses nicht bzw.
unzureichend validiert an die Datenbank gesendet werden. Ist dies der Fall, so hat der
Angreifer bei einfachen SQL-Injections Zugriff auf die im originalen Statement
aufgeführten Tabellen bzw. Spalten. Dadurch ist der Angreifer in der Lage, die darin
enthaltenen Daten auszulesen, zu ändern oder zu löschen. Dies kann sich gegebenenfalls
auf die gesamte restliche Datenbank auswirken. Nachfolgendes Beispiel, angelehnt an
Kunz und Esser ([B_KUNZx1], S. 121 – 133), verdeutlicht dies.
$sql = “SELECT * FROM user WHERE user_id =“.$_GET[‘id‘];
Der Parameter id wird ungeprüft an das SQL-Statement übergeben. Im harmlosesten Fall wurde
nur der numerische Wert dieses Parameters in einen anderen numerischen verändert. Es ist aber
auch möglich, anstatt einen numerischen Wert einen Zeichenkettenstring zu übergeben.
Durch ein Semikolon “;“ könnte das SELECT-Kommando abgeschlossen und ein anderes
Kommando angefügt werden. So könnte der Wert des Parameters id, z.B. wie folgt aussehen:
„1; DELETE FROM user“.
Das somit zur Ausführung an die Datenbank zu sendende SQL-Statement wäre:
SELECT * FROM user WHERE user_ID=1; DELETE FROM user;
Die Ausführung dieses Statements hätte somit zwei Ergebnisse, als erstes würden von der
Datenbank alle Daten zurückgeliefert werden, die der user_ID 1 zugeordnet sind. Das zweite
Ergebnis wäre das Löschen aller Daten aus der Tabelle user.
Neben den einfachen SQL-Injections können Angreifer noch die aufwendigere UNIONInjection durchführen. Damit ist es möglich, auf sämtliche Tabellen der Datenbank
zuzugreifen. Hierfür sind jedoch spezielle Kenntnisse zu den in der Datenbank
- 41 -
4. Web-Technologien und spezielle Angriffstechniken
verwendeten Tabellen sowie Strukturen notwendig. Die UNION-Injections werden im
Folgenden nicht näher beleuchtet.
Zur Verhinderung von einfachen SQL-Injections sollten sämtliche Eingabe/Übergabeparameter validiert werden. Auch die Verwendung von Stored Procedures
und definierten Funktionen bieten zusätzlichen Schutz.
Eine weitere Möglichkeit ist es, die Syntax eines SQL-Statements komplizierter zu
gestalten. Hierfür können runde Klammern eingesetzt werden. Für einen Angreifer
gestaltet sich eine SQL-Injection nun schwieriger, da zu jeder sich öffnenden auch eine
schließende Klammer gesetzt werden muss.
Zur Eingabevalidierung von SQL-Statements bieten einige Web-Technologien
Funktionen an, die gefährliche Sonderzeichen filtern und diese maskieren. Mit
Maskieren ist das Unschädlichmachen von Sonderzeichen gemeint, so dass diese keinen
Einfluss mehr auf die Datenbank haben. Ist dies nicht der Fall, muss die
Eingabevalidierung durch eigene Funktionen abgedeckt werden.
Um das Beispiel von oben, sicherer gegen SQL-Injections zu gestalten bzw. diese zu erschweren
könnten Klammern gesetzt werden.
$sql = “SELECT * FROM user WHERE (user_id =“.$_GET[‘id‘].“)“;
Durch die umschließenden Klammern erzeugt der Ausdruck „1; DELETE FROM user“ einen
Fehler, da die öffnende Klammer nicht geschlossen wurde und somit wird der Befehl nicht
ausgeführt. Dies schützt ein SQL-Statement nicht vor SQL-Injections, erschwert diese aber.
PHP bietet zur Verhinderung von SQL-Injections Funktionen, welche die Sonderzeichen in
einem Statement maskieren. Für MySQL-Datenbanken wäre dies z.B. die Funktion
mysql_real_escape_string() und für PostgreSQL-Datenbanken pg_escape_string().
4.2.3
Denial of Service (DoS)
Diese Angriffe richten sich gegen die Verfügbarkeit von Systemen oder Diensten,
wobei sie in verschiedenen Ausprägungen auftreten. Diese sind in nachfolgender Liste
in Anlehnung an Bless ([B_BLESS1] S. 17-18) dargestellt:
- 42 -
4. Web-Technologien und spezielle Angriffstechniken
•
physikalische Angriffe
Bei dieser Art von Angriffen werden entweder gezielt das jeweilige
Übertragungsmedium (z.B. Netzwerkkabel oder drahtlose Medien) oder die
jeweiligen Endsysteme bzw. die Übertragungseinrichtungen gestört bzw.
zerstört. Das bedeutet, dass diese Methode des Angriffes immer dann möglich
ist, wenn der Angreifer physischen Zugriff erlangen kann.
Um
diese
Angriffe
zu
Übertragungseinrichtungen,
verhindern,
muss
Endsystemen
und
der
den
Zugang
zu
den
Übertragungsmedien
überwacht und kontrolliert werden.
•
Ausnutzung von Implementierungsschwächen
Um Implementierungsschwächen eines Systems ausnutzen zu können, benötigt
der Angreifer Informationen über die zugrunde liegenden Systeme einer
Anwendung. Diese Informationen kann er durch das gezielte Provozieren von
Fehlern erlangen, sofern die vom System zurückgelieferten Fehlermeldungen
entsprechend ausführlich und umfangreich sind.
Implementierungsschwächen einer Anwendung lassen sich nie hundertprozentig
ausschließen. Deshalb ist die wirkungsvollste Gegenmaßnahme, nur minimale
Informationen sowie Fehlermeldungen preiszugeben.
•
Ausnutzung von Protokollschwächen
Hierbei macht sich der Angreifer Schwächen in den zugrunde liegenden
Kommunikationsprotokollen zu Nutze. Da von DoS-Angriffen sämtliche
Implementierungen betroffen sein können, werden neuere Protokolle mit den
notwendigen Sicherheitsanforderungen versehen.
•
Erzeugen von Ressourcenmängeln
Bei diesen Angriffen unterscheidet man zwei Kategorien. Zum einen Angriffe
auf Netzebene, die darauf zielen ein ganzes Netzwerk bzw. Teilnetze zu
überlasten und so deren Funktionsfähigkeit einzuschränken. Zum anderen
Angriffe auf Anwendungsebene, bei denen versucht wird ein System gezielt zu
überlasten, so dass die Bearbeitungsdauer von Anfragen länger dauert als die
Zeitspanne zwischen zwei Anfragen. Die Problematik ist das Erkennen dieser
Angriffsarten, da Überlastungen auch im normalen Betrieb auftreten können.
- 43 -
4. Web-Technologien und spezielle Angriffstechniken
Es ist schwer DoS-Angriffe als solche zu erkennen und entsprechend gezielte
Gegenmaßnahmen einzuleiten. Durch verschiedene Maßnahmen ist es dennoch
möglich, das Risiko zu reduzieren. Zu diesen Maßnahmen zählen beispielsweise:
•
Netzwerkorganisation so einfach wie möglich halten
•
zeitnahes Installieren von Patches zum Schließen von Implementierungsschwächen
•
Verwenden von Firewallsystemen
•
Abschalten unnötiger Dienste
(Vgl. [B_BLESS1] und [B_KUNZx1])
4.2.4
Cross-Site Scripting (XSS)
Auch diese Angriffstechnik nutzt die Manipulation von Parametern. Dabei ist jedoch
nicht der Web- oder Datenbankserver Angriffsziel, sondern der Clientbrowser.
Angreifer versuchen durch gezielte Platzierung von Schadcodescripten, beispielsweise
als interessant klingender Link oder als Bild getarnt, die Nutzer dazu zu bringen, den
Link oder das Bild anzuklicken und so die Ausführung des Skriptes anzustoßen. Gelingt
dies ist es einem Angreifer unter anderem möglich, unbemerkt an gespeicherte
Nutzercookies zu gelangen und so einen Session-Hijacking Angriff auszuführen.
Hierbei übernimmt der Angreifer durch den Besitz der gültigen Cookiedaten die
Identität des eigentlichen Nutzers gegenüber dem jeweiligen Servers.
Diese Angriffe lassen sich durch das Verbot und Blockieren von Script-Tags in Foren
und Gästebüchern verhindern.
- 44 -
5. THEREDA: Ausgangsituation und Anforderungen
5.
THEREDA: Ausgangsituation und Anforderungen
Innerhalb dieses Kapitels wird das THEREDA Projekt vertieft vorgestellt und auf die
aktuell verwendeten Technologien eingegangen. Anschließend werden die einzelnen
Nutzergruppen definiert und die jeweiligen Aufgabenbereiche, durch ihre verschiedenen
Funktionalitäten, von einander abgegrenzt. Abschließend werden die Nicht-funktionalen
Anforderungen definiert.
5.1
Ziele und Nutzen von THEREDA
Bei dem THEREDA (Thermodynamische Referenzdatenbasis) Projekt handelt es sich
um ein Verbundprojekt. Innerhalb dieses Projekts bilden die fünf Projektpartner (die
Gesellschaft für Anlagen- und Reaktorsicherheit (GRS), das Institut für Nukleare
Entsorgung (INE) des Forschungszentrums Karlsruhe, das Institut für Radiochemie
(IRC) des Forschungszentrums Dresden-Rossendorf, das Institut für Anorganische
Chemie der TU Bergakademie Freiberg sowie die AF-Colenco AG (Baden/CH)) den
Kreis von Experten, die vorhandene thermodynamische Stoffgrößen für Schadstoffe
und relevante Matrixelemente (der Wirtsgesteine) sammelt, nach einheitlich vorher
festgesetzten Kriterien bewertet und diese in der THEREDA Datenbank zusammenfasst.
Ziel ist es, eine einheitliche, konsistente und qualitätsgesicherte thermodynamische
Referenzdatenbasis
für
geochemische
Modellierungen
bereitzustellen.
Deren
vorrangiges Anwendungsprofil ist der Schadstofftransport von Actiniden und
radioaktiven
Aktivierungs-
und
Zerfallsprodukten
im
Kontext
der
Langzeitsicherheitsanalyse für nukleare Endlager. Des Weiteren soll die Datenbasis
auch bei der Planung von Untertagedeponien chemisch-toxischer Abfälle oder bei der
Entwicklung von Sanierungsmaßnahmen für Altlasten und Kontaminationen zur
Anwendung kommen.
Durch das THEREDA Projekt soll eine einheitliche Datenbasis bereitgestellt werden,
die es ermöglicht Modellierungsergebnisse zu beurteilen oder mit Modellierungen
anderer Institutionen zu vergleichen. Dies ist aktuell nicht möglich, da praktisch jede
- 45 -
5. THEREDA: Ausgangsituation und Anforderungen
gutachterlich tätige Institution mit einer „hausinternen“ Datenbasis arbeitet, die je nach
Aufgabenstellung mit gerade verfügbaren Daten erweitert oder modifiziert wird.
Die durch das THEREDA Projekt zusammengetragene Datenbasis soll der
interessierten Öffentlichkeit durch eine Webpräsenz (www.thereda.de) und spezielle
dort verfügbare Werkzeuge zugänglich gemacht werden.
5.2
Ausgangssituation
In der Diplomarbeit „Konzeptioneller Entwurf und prototypische Realisierung einer
Datenbanklösung für chemische Risikoanalysen“ von Herrn Münzberg (06.08.2007,
HTW Dresden, [S_MÜNZB1]) sowie weiteren internen Dokumenten des THEREDAProjektes wurden die grundlegenden Architekturen der THEREDA Datenbank, sowie
der Webanwendung geschaffen. Diese besteht aus einem Apache-Webserver, dem
Content Management System (CMS) Joomla! und einer MySQL-Datenbank, welche
die
Voraussetzung
für
den
Betrieb
von
Joomla!
bildet.
Das
entwickelte
Datenbankschema von THEREDA wurde in PostgreSQL implementiert. Des Weiteren
wurden erste einfache PHP-Seiten gestaltet, welche die THEREDA Webanwendung
darstellen und die aktive Interaktion zwischen Datenbankserver und Client im Rahmen
einfacher Datenbankabfragen ermöglichen.
Die Dateneingabe hingegen lief bisher Offline, über eine lokal installierte MS-Excel
Applikation ab. Bei Eingaben-Kampagnen wurden zuerst der Datenbestand in MSExcel mit der jeweiligen THEREDA Datenbasis synchronisiert, alle notwendigen
Eingaben in MS-Excel realisiert und die neue Datenbasis (als MS-Excel Datei) an den
Projektkoordinator per Email gesandt. Dieser führte dann diverse Konsistenzchecks
durch, nach deren erfolgreicher Absolvierung aus der MS-Excel Datei automatisiert
SQL-Statements zur Dateneingabe bzw. –änderung geniert und z.B. mittels
phpPgAdmin an die THERDA-Datenbasis in PostgreSQL übermittelt wurden.
Diese Verfahrensweist erweist sich jedoch als ineffizient und fehleranfällig und
deswegen sind dringend grundlegende Veränderungen notwendig.
- 46 -
5. THEREDA: Ausgangsituation und Anforderungen
Webserver
Internet
Client
Content Management System
Anwendungsdateien
Datenbankserver
Datenbankserver
Abbildung 7: THEREDA: Web-Architektur
In der aktuellen Projektphase wurden die implementierten Versionen der einzelnen
Technologien aktualisiert. Diese Änderungen sind in nachfolgender Tabelle dargestellt.
Die Aktualisierungen ermöglichen es, bekannte Schwachstellen/Bugs der älteren
Versionen zu schließen. Daneben stehen auch neue Funktionen und Erweiterungen zur
Verfügung. Einzelheiten hierfür sind auf den Internetseiten der Technologien zu finden,
z.B. [I_POSTG1] oder [I_PHPGR1].
Tabelle 7:
THEREDA: Versionsänderungen
Technologie
Ausgangssituation
August 2007
Aktueller Versionstand:
Oktober 2009
Apache
2.0
2.2.10
Joomla!
1.0.12
1.5.14
MySQL
5.0
5.0.67
PostgreSQL
8.1.8
8.3.7
PHP
4.4.4-8
5.2.9
phpPgAdmin
4.1.1
4.2.2
(Voraussetzung für Joomla!)
- 47 -
5. THEREDA: Ausgangsituation und Anforderungen
5.3
Funktionale Anforderungen
Funktionale Anforderungen an das Anwendungssystem beschreiben die Funktionen und
Features,
die
dieses
enthalten
soll.
Hierfür
wird
nachfolgend
zwischen
Benutzerfunktionen und Systemfunktionen unterschieden.
Die Benutzerfunktionen lassen sich in bestimmte Aufgabenbereiche gliedern. Jedem
Aufgabenbereich kann eine Nutzergruppe zugeordnet werden. Hierbei lässt sich
zwischen aktiven und passiven Gruppen unterscheiden.
Passive Gruppenmitglieder sind in der Lage, bestimmte Daten einzusehen und zu
verarbeiten, wohingegen aktive Nutzer die Daten bzw. das Datenbankschema
manipulieren (hinzufügen, ändern oder löschen) können. Nachfolgend wird die
hierarchische Organisation der Nutzergruppen dargestellt und jede kurz definiert.
systemAdministrator
accessAdministrator
auditor
aktiv
author
registeredUser
passiv
unregisteredUser
Abbildung 8: THEREDA: Nutzergruppendiagramm
•
unregisteredUser
Als unregisteredUser ist jeder Besucher (engl. Visitor) der THEREDA
Webpräsenz zu verstehen, der keinen gültigen Nutzeraccount besitzt. Die
Webpräsenz wird dabei durch Joomla! bereitgestellt und ermöglicht den
Besuchern, sich über das THEREDA Projekt zu informieren.
- 48 -
5. THEREDA: Ausgangsituation und Anforderungen
•
registeredUser
RegisteredUser besitzen einen gültigen Nutzeraccount. Sie sind in der Lage, die
THEREDA Webanwendung zu nutzen, das heißt Datenabfragen innerhalb der
THEREDA Datenbank durchzuführen.
•
author
Mitglieder der Gruppe author können aktiv mit der THEREDA Datenbank
arbeiten. Sie sind in der Lage, Datensätze zu erstellen, zu ändern und zu
kontrollieren.
•
auditor
Die Nutzergruppe auditor hat vorrangig die Aufgabe, die Qualität der in der
THEREDA Datenbank enthaltenen Datensätze sicherzustellen und die
inhaltliche Verantwortung für die Datensätze aufrecht zu erhalten.
•
accessAdministrator
Der accessAdministrator übernimmt die Verwaltung der Nutzer und deren
Zuordnung in die einzelnen Nutzergruppen. Dies wird auf Joomla! Ebene
umgesetzt.
•
systemAdministrator
Kernaufgabe
eines
systemAdministrator
stellt
die
Sicherstellung
der
Verfügbarkeit und Funktionstüchtigkeit der THEREDA Datenbank dar. Des
Weiteren ist ein systemAdministrator in der Lage, Erweiterungen, Anpassungen
und Optimierungen am Datenbankschema vorzunehmen.
Benutzerfunktionen
Benutzerfunktionen beschreiben die Interaktionsmöglichkeiten zwischen Nutzer und
Anwendung. Dabei ist jeder Nutzer einer Nutzergruppe zugeordnet, die einen
definierten Aufgabenbereich besitzt. Dadurch lassen sich die Benutzerfunktionen den
Aufgabengebieten der Nutzergruppe zuordnen.
- 49 -
5. THEREDA: Ausgangsituation und Anforderungen
Tabelle 8:
THEREDA: Benutzerfunktionen, nach Nutzergruppen geordnet
Nutzergruppe
Funktion
Kurzbeschreibung
unregisteredUser
Ð Registrieren
Diese Funktion ermöglicht das Registrieren eines Besuchers für die
THEREDA Webanwendung. Um diese Funktion erfolgreich abzuschließen,
ist eine Bestätigung/Freischaltung durch einen accessAdministrator
notwendig.
registeredUser
Ð Login
Das Login dient zur Authentifizierung eines Nutzers und zur Spezifizierung
der jeweiligen Gruppe und der damit verbundenen Rechte.
Ð Passwort vergessen
Falls ein Nutzer sein Passwort vergessen hat und sein Nutzerkonto noch
aktiv ist, hat er die Möglichkeit sich einen neuen Aktivierungslink an seine
E-Mail Adresse zusenden zu lassen.
Ð Userdaten ändern
Jeder Nutzer hat die Möglichkeit seine bei der Registrierung bekannt
gegebenen Daten sowie sein Login-Passwort zu ändern.
Ð Logout
Logout dient dem Beenden einer aktuellen Sitzung. Falls ein Nutzer über
eine definierte Zeitdauer nicht mit der Anwendung interagiert, findet ein
automatisches Logout statt.
Ð Abmelden (engl.
cancel registration)
Hat ein Nutzer kein Interesse mehr am THEREDA Projekt, so hat er die
Möglichkeit, sich abzumelden. Dies stößt Folgeprozesse an, falls der Nutzer
mindestens der Nutzergruppe author zugeordnet war.
Ð Downloads
Die Downloadfunktion der Anwendung stellt den Nutzern vorab generierte,
sowie eigen definierte Parameterdateien zum Herunterladen zur Verfügung.
Ð Datensatzabfrage
Unter Datensatzabfrage wird die Kernfunktionalität des Systems verstanden,
Datensätze aus der PostgreSQL Datenbank abzufragen und geeignet zu
repräsentieren. Des Weiteren ist es möglich, erstellte Abfragen und/oder
Abfrageergebnisse zu speichern.
author
Ð Datensatz erstellen
Für das Anlegen neuer Datensätze in der Datenbank wird eine klare
Eingabestruktur vorgegeben, um sicherzustellen, dass alle für einen
Datensatz benötigten Ausgangsdaten bereits in der Datenbank vorliegen.
Zum Abschluss des Erstellungsprozesses muss ein Datensatz durch den
author selbst freigegeben werden. Dies stößt daraufhin einen Auditprozess
an, durch den die Qualität der Eingabedaten geprüft wird. Ein Datensatz ist
nach dem Erstellungsprozess nicht direkt von anderen Benutzern abrufbar.
Ð Eigenen Datensatz
ändern
Beim Anlegen neuer Datensätze können Eingabefehler auftreten, die
entweder durch den Auditprozess erkannt oder durch den author selbst
bemerkt werden. Jeder author ist in der Lage, seine eigenen Datensätze zu
bearbeiten und damit Fehler zu korrigieren.
Ð Datensatz
kontrollieren
Wie bereits bei „Eigenen Datensatz erstellen“ erwähnt, gibt es einen
Auditprozess für neu eingegebene bzw. signifikant geänderte Datensätze.
Dabei nimmt ein anderer author die Rolle des Kontrolleurs ein und bewertet
den entsprechenden Datensatz. Der Kontrolleur wird dabei durch einen
auditor benannt.
- 50 -
5. THEREDA: Ausgangsituation und Anforderungen
auditor
Ð Basisdaten verwalten
Mit Basisdaten sind die grundlegenden Elemente innerhalb der THEREDADatenbank gemeint. Diese Datensätze können auch als Stammdatensätze
betrachtet werden und können nur von einem auditor erstellt und verwaltet
werden.
Ð Datensatz ändern
Der auditor ist für die Qualität aller Datensätze verantwortlich und kann bei
Bedarf alle Datensätze direkt ändern. Durch den Auditprozess ist dies
jedoch nur in den seltensten Fällen notwendig. Diese Funktion beinhaltet
weiterhin das Freischalten bzw. Sperren von Datensätze für die
„Datensatzabfrage“.
Ð Auditprozess
Der Auditprozess wird durch den auditor verwaltet. Dabei kann er
Datensätze in erster Instanz selbst überprüfen oder einem author diese
Aufgabe zuweisen. Der auditor der diese Zuweisung vornimmt, übernimmt
auch die Schirmherrschaft über den speziellen Datensatz und wird mit dem
Datensatzersteller über den Status des Auditprozesses sowie deren
Abschlussergebnis informiert.
Ð Zuständigkeit für
Datensätze ändern
Meldet sich ein Nutzer, der mindestens der Nutzergruppe author zugeordnet
war, vom THEREDA Projekt ab, so würden die von ihm erstellten
Datensätze verwaisen und nur noch von einem auditor bearbeitet werden
können. Um aber die inhaltliche Verantwortung aufrecht zu erhalten, kann
ein auditor einem anderen author diese Datensätze zuordnen.
accessAdministrator
Ð Nutzerverwaltung
Die Nutzerverwaltung umfasst das Freischalten und Sperren von Nutzern,
ebenso die Einordnung der Nutzer in die verschiedenen Nutzergruppen.
systemAdministrator
Ð Generierung der
Download-Datenbank
Unter einer Download-Datenbank wird ein Datenbankabbild in einem
unabhängigen Format verstanden. So können Nutzer die Daten der
Datenbank auch Offline verwenden und in eigene Anwendungen oder
ähnliches einbinden. Der systemAdministrator ist in der Lage diese zu
generieren. Daneben wird automatisch eine Prüfsumme für diese Datei
berechnet und im System hinterlegt.
Ð Prüfen von externen
Parameterdateien auf
Unversehrtheit
Diese Funktionalität dient der Überprüfung von Parameterdateien, die durch
Nutzer an einen systemAdministrator zugesendet werden. Ziel ist es die
Unverfälschtheit der zugesendeten Datei zu überprüfen. Dies geschieht
durch den Vergleich der Prüfsummen oder dem zeichenweisen Abgleich der
ASCII-Dateien.
Ð Manuelles Backup
Neben einem automatischen Backup, welches vom System vorgenommen
wird, kann ein systemAdministrator auch manuell ein Backup erstellen.
Ð Recovery
Nach einem Systemausfall ist es notwendig die Backups neu einzuspielen.
Dieses Recovery muss manuell ausgelöst und überwacht werden.
Ð Datenbankstrukturen
verwalten
Die Verwaltung von Tabellen, Views, Funktionen und Sequenzen dient der
Optimierung und Anpassung der Datenbank.
Ð Zugriffsrechte
verwalten
Für jede Nutzergruppe müssen in der Datenbank für Tabellen, Views,
Funktionen und Sequenzen bestimmte Rechte gesetzt sein, die die
Zugriffsmöglichkeiten auf das Objekt beschreiben. Diese Verwaltung
übernimmt der systemAdministrator.
- 51 -
5. THEREDA: Ausgangsituation und Anforderungen
Systemfunktionen
Systemfunktionen sind Funktionalitäten des Systems, die durch Benutzerinteraktionen
angestoßen werden. Darunter fallen verschiedene Prüf- und Verarbeitungsfunktionen,
von denen nachfolgend die wichtigsten aufgeführt und kurz beschrieben werden.
Tabelle 9:
THEREDA: Systemfunktionen
Funktionsgruppe
Funktion
Kurzbeschreibung
Prüfen / Controlling
Passwortvalidierung
Unter der Passwortvalidierung ist das Überprüfen von neuen Passwörtern
gegenüber den Passwortrichtlinien zu verstehen. Dabei geht es vor allem
darum, zu überprüfen, ob die Mindestlänge und Zeichenzusammensetzung
beachtet wurden.
Eingabevalidierung
Die Überprüfung der Nutzereingaben dient einerseits der
Fehlervermeidung, andererseits der Sicherheit vor Angriffen bzw.
ungewollten Zugriffen.
Logging
Logging ist das Protokollieren von Login- und Logout-Aktionen, sowie
Datenbanktransaktionen. Darunter fallen Datensatzabfragen und
Datenmanipulationen.
Verarbeitung
Synchronisation
Alle Nutzer die einer aktiven Nutzergruppe zugeordnet sind müssen in der
PostgreSQL-Datenbank in der Tabelle „editor“ aufgeführt sein. Diese
Funktionalität dient dazu, die Nutzer aus der MySQL-Datenbank mit der
aufgeführten Tabelle abzugleichen und ggf. zu synchronisieren.
Automatisches
Backup
In regelmäßigen Abständen werden Backups erstellt, die es ermöglichen
die physische Integrität sicherzustellen. Dabei werden unterschiedliche
Backups automatisch erstellt.
Generierung der
Parameterdateien
Unter den Parameterdateien versteht man einerseits eine vordefinierte
Abbildung der Datenbasis, andererseits anwenderspezifisch angepasste
Abfrageergebnisse. Diese Dateien werden in dem unabhängigen JSONFormat, sowie für die Weiterverarbeitung in speziellen codespezifischen
Formaten auf Nutzeranforderung generiert.
5.4
Nicht-funktionale Anforderungen
Nicht-funktionale Anforderungen sind Charakteristika bzw. Eigenschaften, die die
Anwendung aufweisen soll. Einige der relevantesten nicht-funktionalen Anforderungen
wurden in der ISO 9126 bzw. DIN 66272 spezifiziert. Nachfolgend werden nichtfunktionelle Anforderungen nach ISO 9126 aufgeführt, die vom Projektteam als
„vorrangig“ eingestuften wurden.
- 52 -
5. THEREDA: Ausgangsituation und Anforderungen
Tabelle 10:
Nicht-funktionale Anforderungen, nach ISO 9126
Kriterium
Beschreibung
Funktionalität
Ð Sicherheit
Beschreibt die Fähigkeit unberechtigten Zugriff auf Daten oder
Programmteile zu verhindern.
Ð Richtigkeit
Ist die Fähigkeit des Systems, Zahlenwerte richtig zu berechnen oder
auch umzurechnen, z.B. bei unterschiedlichen Einheiten.
Zuverlässigkeit
Ð Wiederherstellbarkeit
Beinhaltet die Wiederherstellbarkeit der Anwendung bzw. des Systems
nach Versagen. Hierfür sind regelmäßige Backups, sowie das Logging
von Datenbanktransaktionen notwendige Mittel, um das System
schnellstmöglich mit allen Daten wieder verfügbar zu machen.
Ð Robustheit
Die Fähigkeit, stabil trotz Eingabefehler weiterzuarbeiten wird als
Robustheit von Systemen verstanden. Das System sollte ein klar
definiertes Verhalten bei Eingabefehlern aufweisen und Fehleingaben
stabil abfangen.
Benutzbarkeit
Ð Erlernbarkeit
Mittels der Erlernbarkeit lässt sich der Aufwand, der betrieben werden
muss, um mit dem System umgehen zu können, bewerten. Dabei sollte
bei der Entwicklung eines Systems darauf geachtet werden, dass es eine
klare und eindeutige Struktur besitzt und alle für die Anwendung
notwendigen Informationen und Hilfen bereitstellt.
Ð Bedienbarkeit
Die Steuerung und Ergonomie einer Anwendung werden unter dem
Kriterium der Bedienbarkeit verstanden. Zu kleine Schriften, versteckte
Schaltflächen oder mehrdeutige Bezeichnungen verringern den Grad der
Bedienbarkeit einer Anwendung, was wiederum deren Erlernbarkeit
wesentlich schwieriger gestaltet. Darum sollte dem Aspekt der
Bedienbarkeit innerhalb des Projektes auch hohe Aufmerksamkeit
zukommen.
Effizienz
Ð Zeitverhalten
Die Antwort- und Verarbeitungszeiten des Systems sollten so gering wie
möglich sein. Dies kann z.B. durch vordefinierte und ggf. vorberechnete
Abfragen innerhalb der Datenbank geschehen oder durch
leistungsfähigere Hardware.
Wartbarkeit
Ð Analysierbarkeit
Beschreibt die Fähigkeit eines Systems zur Bestimmbarkeit von
Mängeln, Fehlerursachen oder von änderungsbedürftigen
Programmteilen. Eine gute Analysierbarkeit lässt sich durch eine gute
und umfangreiche, aber vor allem spezifische Dokumentation und einen
modularen Programmaufbau erreichen.
Die Nicht-funktionalen Anforderungen sollten in der Entwicklung neuer Module und
bei der Erweiterung bestehender Programmbausteine berücksichtigt und durch die
Projektpartner kontrolliert werden. Je nach Projektstand bzw. Modulanforderungen
sollten die nicht-funktionalen Anforderungen erweitert bzw. angepasst werden.
- 53 -
6. Entwurf
6.
Entwurf
Die im vorherigen Kapitel definierten Benutzer- und Systemfunktionen werden im
folgenden Kapitel vertieft dargestellt und deren Zusammenwirken herausgearbeitet.
Dabei wird zuerst dargestellt, wie die Verwaltung der einzelnen Nutzer realisiert und
umgesetzt wird. Anschließend werden die Benutzer- und Systemfunktionen in
Nutzergruppen-spezifischen USE-Cases veranschaulicht und erläutert.
6.1
Nutzerverwaltung
Die Verwaltung der einzelnen Nutzer soll mittels der in Joomla! integrierten
Nutzerverwaltung
realisiert
werden.
Joomla!
bietet
die
Möglichkeit,
den
unterschiedlichen Nutzergruppen verschiedene Funktionalitäten über die Webpräsenz
zur Verfügung zu stellen. Welche Nutzergruppe auf welche Funktionalitäten zugreifen
darf, wird in der Backend-Komponente von Joomla! von den Administratoren
zugeordnet. So wird einer Nutzergruppe z.B. der Zugriff auf PHP-Anwendungsdateien
verwehrt oder gewährt. So können die einzelnen Aufgabengebiete klar voneinander
abgegrenzt werden. Für den Datenbankzugriff wird ein in der Datenbank angelegter
generischer Datenbanknutzer verwendet, der sämtliche Privilegien innerhalb der
Datenbank besitzt, die für die Erfüllung aller Aufgaben sämtlicher Nutzer und
Nutzergruppen notwendig sind. Im Anhang II sind die Datenbanktabellen aufgeführt,
für die ein Nutzer auf Grund seiner Aufgaben nicht nur Lese- sondern auch
Schreibrechte benötigt.
Joomla! stellt bereits vorgefertigte Funktionen und Komponenten bereit, die sich für das
Projekt verwenden lassen und so den Programmieraufwand reduzieren. Dazu zählen
beispielsweise die Funktionalitäten zum „Registrieren“ (Anmelden), „Abmelden“,
„Login“, „Logout“ sowie das „Userdaten ändern“. Des Weiteren wird die Komponente
„DOCman“ zur Verwaltung und Bereitstellung von Dokumenten verwendet. Die
bereitgestellten Funktionalitäten werden bei Bedarf projektspezifisch angepasst bzw.
erweitert.
- 54 -
6. Entwurf
6.2
Benutzerfunktionen
Nachfolgend werden alle Funktionalitäten bzw. Aufgaben der einzelnen Nutzergruppen
genauer dargestellt. Dabei wird die Systemfunktion „Eingabevalidierung“ bei
sämtlichen Nutzereingaben verwendet, um die Gefahr von SQL-Injections bzw.
Typenunverträglichkeiten nahezu auszuschließen. Auch das „Logging“ findet
unabhängig von speziellen Funktionen automatisch statt und wird deshalb bei den
einzelnen Funktionen nicht mit betrachtet. Alle anderen Systemfunktionen werden
hingegen nur durch konkrete Nutzeraktionen initialisiert.
6.2.1
unregisteredUser
Als unregisteredUser ist jeder Besucher (engl. Visitor) der THEREDA Webpräsenz zu
verstehen, der keinen gültigen Nutzeraccount besitzt. Diese Besucher können sich
mithilfe der bereitgestellten öffentlichen Informationen über das THEREDA Projekt,
dessen Zielsetzung und die zur Verfügung gestellte Datenbasis informieren. Bei
Interesse am Projekt haben sie die Möglichkeit, sich zu registrieren, um sich
anschließend als registeredUser anmelden zu können und so interaktiv mit den
bereitgestellten Daten arbeiten zu können.
Abbildung 9: USE CASE: unregisteredUser
- 55 -
6. Entwurf
Registrierung
Das Registrieren von neuen Nutzern funktioniert über ein einfaches Anmeldeformular.
Dieses enthält derzeit nur Pflichtfelder. Zu diesen zählen der Name, Benutzername
(Loginname), die E-Mail Adresse und das Passwort.
Um zu vermeiden, dass die Registrierung automatisiert über spezielle Roboter
stattfinden kann, wurde eine sogenannte CAPTCHA-Grafik eingefügt. CAPTCHA steht
für „Completely Automated Public Turing-Test to Tell Computers and Humans Apart“.
Die CAPTCHA Grafik stellt einen für Menschen lesbaren Inhalt dar, der jedoch für
viele Computerprogramme nicht erkennbar ist. Bei der Eingabe des grafisch
dargestellten Inhaltes handelt es sich ebenfalls um eine Pflichteingabe.
Das Anmeldeformular soll zukünftig um weitere projektspezifische Felder erweitert
werden. Dazu zählen unter anderem der Titel des Nutzers und dessen Fachgebiet.
Nachdem der Besucher das Anmeldeformular ausgefüllt und abgesendet hat, wird der
Datensatz in der Datenbank gespeichert und ein accessAdministrator über den neuen
Nutzer informiert. Der neu angemeldete Nutzer besitzt zu diesem Zeitpunkt noch keinen
Systemzugriff. Dieser wird ihm erst durch einen accessAdministrator gewährt.
Nachdem die Freischaltung durch einen accessAdministrator erfolgt ist, erhält der neu
registrierte Nutzer einen Aktivierungslink per E-Mail.
Dieser Link enthält einen Aktivierungsschlüssel, der auch in der Datenbank mit einem
Verfallsdatum gespeichert wird. Durch den Aufruf der THEREDA Webpräsenz mittels
des Aktivierungslinks wird der in der URL enthaltende Schlüssel mit dem in der
Datenbank gespeicherten abgeglichen. Bei erfolgreicher Validierung erfolgt die
automatische Weiterleitung zur Passworteingabe.
Das neu eingegebene Passwort muss
dabei den unter 6.3.1 aufgeführten
Passwortrichtlinien entsprechen, um vom System angenommen zu werden. Hierfür wird
die Systemfunktion „Passwortvalidierung“ verwendet. Nach Abschluss aller Vorgänge
gilt der Besucher als registeredUser.
- 56 -
6. Entwurf
6.2.2
registeredUser
Jeder Besucher der THEREDA Webpräsenz, der einen gültigen Nutzeraccount besitzt,
ist prinzipiell ein registeredUser. Je nachdem, welcher Nutzergruppe er zugeordnet ist,
werden ihm unterschiedliche Funktionen angeboten. Ist der Nutzer in der Gruppe
registeredUser, so kann er passiv mit der Datenbank arbeiten. Darunter ist zu verstehen,
dass diese Gruppenmitglieder nur Datenabfragen durchführen dürfen. Des Weiteren
haben sie die Möglichkeit, die angebotenen Download-Datenbanken sowie die
Datenabfrageergebnisse in verschiedenen Formaten herunterzuladen. Neben dem
Herunterladen der verschiedenen Parameterdateien, welches durch die Systemfunktion
„Generierung der Parameterdateien“ realisiert wird, besteht die Möglichkeit die
erstellten Datenabfragen zu speichern.
Abbildung 10: USE CASE: registered User
- 57 -
6. Entwurf
Login
Das Login ist die grundlegendste Funktion, die die Anwendung zur Verfügung stellt.
Aus diesem Grund sollte an dieser Stelle das SSL-Protokoll zur Verschlüsselung der
Kommunikation verwendet werden, um Passwörter nicht im Klartext zu übertragen.
Beim Login wird nach der Eingabe des Nutzernamens und des dazugehörigen Passworts
vom System ermittelt, ob ein Nutzer mit der eingegebenen Kombination in der
Datenbank vorhanden ist. Ist das Login erfolgreich abgeschlossen, stehen dem Nutzer
alle seiner Nutzergruppe zugeordneten Funktionalitäten der Anwendung zur Verfügung.
Passwort vergessen
Vergisst ein Nutzer sein Passwort hat er die Möglichkeit, sich einen neuen
Aktivierungslink zusenden zu lassen. Hierfür muss er nur eine gültige E-Mail Adresse
eingeben. Wie bereits unter „Registrierung“ beschrieben, wird nach dem Aufruf der
THEREDA
Webpräsenz
über
den
Aktivierungslink
eine
Gültigkeitsprüfung
durchgeführt und der Nutzer an die Passworteingabe weitergeleitet.
Userdaten ändern
Die gespeicherten Nutzerinformationen können jederzeit durch den Nutzer geändert
werden. An dieser Stelle wird unterschieden, ob die gespeicherten Nutzerinformationen
oder das Passwort geändert werden sollen. Beim Ändern von Benutzerinformationen
findet eine einfache Eingabevalidierung der zu speichernden Daten statt. Das heißt, dass
die Eingabewerte maskiert werden, um SQL-Injections zu verhindern. Es finden
außerdem Logikprüfungen, wie z.B. die Prüfung der E-Mail Adresse, statt.
Auch bei der Passwortänderung findet die soeben dargestellte Eingabevalidierung statt.
Zusätzlich wird das neu eingegebene Passwort geprüft, ob es den projektspezifischen
Passwortrichtlinien entspricht und daraufhin entweder vom System angenommen oder
abgewiesen. Die einzelnen Richtlinien sind unter 6.3.1. definiert.
- 58 -
6. Entwurf
Downloads
Die Downloads bieten den Nutzern die Möglichkeit, vorab generierte Datenbankabbildungen und die Ergebnisse (aktueller oder früher gespeicherter) eigener
Datenbankabfragen herunterzuladen. Die Parameterdateien werden in verschiedenen
Formaten angeboten, um den Nutzern den Zugriff auf Daten auch im Offlinebetrieb zu
ermöglichen bzw. diese in eigene Programme/Projekte und Berechnungen direkt zu
importieren. Für die Generierung der einzelnen Dateien wird dabei die Systemfunktion
„Generierung der Parameterdateien“ verwendet.
Datensatzabfragen
Die Kernaufgabe der Webanwendung ist die Bereitstellung der gespeicherten Daten.
Hierfür gibt es zwei Varianten. Die erste basiert auf vordefinierten Abfragen, die
ausgeführt werden können. Hierbei handelt es sich um Standardabfragen, die von den
Projektmitgliedern als solche definiert und im System öffentlich hinterlegt sind.
Die zweite Variante sind individualisierte Abfragen. Ein Nutzer kann mit Hilfe des
Systems selbstständig Abfragen erstellen, die auf seine speziellen Wünsche abgestimmt
sind. Dabei wird dem Nutzer die grundlegende Datensatzabfragestruktur vom System
vorgegeben. Dies dient einerseits der Benutzerfreundlichkeit und verkürzt andererseits
die notwendige Einarbeitungszeit.
Bei
allen
Abfragen
finden
vor
der
Übermittlung
zum
Datenbankserver
Eingabevalidierungen statt. Dabei werden Logikprüfungen vorgenommen, z.B. ob der
Zahlenwert der Minimaltemperatur kleiner ist, als der Wert der Maximaltemperatur.
Diese beinhaltet außerdem eine Überprüfung des Variablentyps, z.B. eine Anzahl an
Elementen darf nur ganzzahlige Werte annehmen. Ganzzahlige Werte entsprechen dem
Datentyp „Integer“. Somit kann der Eingabewert mittels der PHP Funktion is_int()
entsprechend überprüft werden.
Nachdem die Überprüfung sämtlicher Eingabewerte fehlerfrei abgeschlossen wurde,
können diese an das SQL-Statement übergeben werden.
- 59 -
6. Entwurf
Dieses wird daraufhin, zur Verhinderung von SQL-Injections, mittels der PHP Funktion
pg_escape_string() maskiert. Anschließend wird das SQL-Statement an den
Datenbankserver übermittelt und das Ergebnis an die entsprechende Ausgabeseite
weitergeleitet.
6.2.3
author
Die Nutzergruppe author ist in der Lage den Datenbestand zu manipulieren. Hierfür
besitzen die Gruppenmitglieder die Möglichkeit der Dateneingabe bzw. -änderung ihrer
selbst erstellten Datensätze. Ihnen kann zudem die Aufgabe zugewiesen werden, andere
Datensätze zu kontrollieren, um die Datensatzqualität innerhalb der Anwendung zu
steigern bzw. sicherzustellen.
Abbildung 11: USE CASE: author
- 60 -
6. Entwurf
Datensatz erstellen
Das Erstellen neuer Datensätze ist ein aufwendiger Prozess, in dem viele interne
Bedingungen berücksichtigt werden müssen. Diese Bedingungen resultieren aus
chemischen Gegebenheiten und projektspezifischen Anforderungen.
Aus diesem Grund erfolgt die Dateneingabe anhand einer definierten Struktur, welche
hierarchisch aufgebaut ist. Hierfür wird im Anhang III ein erster Entwurf dieser
Dateneingabestruktur
veranschaulicht.
Dieser
muss
jedoch,
um
sämtliche
projektspezifischen Bedingungen sicher abdecken zu können, in den folgenden
Projektphasen verfeinert und optimiert werden.
Unabhängig von der Optimierung innerhalb des Prozesses, soll nach der vollständigen
Erstellung eines Datensatzes, die Datenfreigabe durch den author erfolgen. Mit dieser
Freigabe ist die automatische Initiierung des Auditprozesses verbunden, der unter 6.2.4
näher dargestellt ist. Vom Ergebnis dieses Prozesses hängt es ab, ob der Datensatz bei
Datenabfragen mit berücksichtigt wird oder nicht, d.h. nur durch einen positiven
Ausgang des Auditprozesses steht ein Datensatz öffentlich zur Verfügung.
Eigene Datensätze ändern
Jeder author hat eine Reihe von eigenen erstellten Datensätzen. Für diese besitzt er auch
die Verantwortung, d.h. für deren Korrektheit. Da sich jedoch Eingabefehler nicht
vermeiden lassen, ist es von Zeit zu Zeit notwendig, die eigenen Datensätze zu
korrigieren.
Die Korrektur findet nach demselben Prinzip wie die Erstellung des Datensatzes statt,
nur dass die gespeicherten Daten angezeigt und selektiv geändert werden können.
Werden hierbei entscheidende Datensatzinformationen, wie z.B. Zahlenwerte oder
Formeln, verändert, wird der Datensatz automatisch in den Auditprozess eingestellt und
ist erst nach dessen erfolgreichem Abschluss erneut öffentlich zugänglich. Ein author
kann hierbei aber nur selbst eingegebene Daten bearbeiten. Zusätzliche bzw. abgeleitete
Informationen, wie beispielsweise das Qualitätslabel sind nicht editierbar.
- 61 -
6. Entwurf
Datensatz kontrollieren
Zur Sicherstellung bzw. Steigerung der Qualität der einzelnen Datensätze und zum
Auffinden von inhaltlichen Fehlern oder Eingabefehlern wird jeder Datensatz
kontrolliert. Diese Kontrolle findet durch einen anderen author statt.
Diesem muss der Zugriff auf einen noch nicht freigegebenen Datensatz explizit durch
einen auditor eingeräumt werden. Normalerweise haben nur Mitglieder der Gruppe
auditor, sowie der author der den Datensatz erstellt hat, Zugriff auf die noch nicht
freigegebenen Datensätze.
Um einem anderen author Zugriff auf einen solchen Datensatz zu ermöglichen, wird der
author über eine spezielle Mappingtabelle mit dem entsprechenden Datensatz verknüpft.
Daraufhin ist dieser in der Lage, den Datensatz zu kontrollieren und abschließend zu
bewerten.
Die Verwaltung des Auditprozesses wird unter 6.2.4 „Auditprozess verwalten“ näher
dargestellt und der Prozessablauf in Anhang IV skizziert.
6.2.4
auditor
Ein auditor hat die Aufgabe alle grundlegenden Basisdaten zu verwalten, das heißt
bestehende Daten zu kontrollieren, zu pflegen oder neu anzulegen. Daneben ist er in der
Lage sämtliche Datensätze in der Datenbank zu bearbeiten und den Auditprozess zu
verwalten. Mit dessen Hilfe soll die Qualität der Datensätze sichergestellt bzw.
gesteigert werden. Abschließend kann ein auditor die Zuständigkeit für Datensätze
ändern. Dabei werden Datensätze von einem author einem anderen zugeordnet.
- 62 -
6. Entwurf
Abbildung 12: USE CASE: auditor
Basisdaten verwalten
Unter
Basisdaten
sind
bestimmte
chemische
Elemente
bzw.
vordefinierte
Werte/Konstante zu verstehen, die z.B. bei Abfrage- und Erstellungsprozessen als
Ausgangsparameter ausgewählt werden können. Ein auditor hat hierbei die Aufgabe,
die Richtigkeit und Vollständigkeit dieser Daten zu gewährleisten. Des Weiteren darf er
neue Basisdaten anlegen oder bestehende ändern bzw. löschen.
- 63 -
6. Entwurf
Datensätze ändern
Diese Funktionalität ist identisch mit der Funktion der Nutzergruppe author „eigene
Datensätze ändern“. Ein auditor hat jedoch nicht nur die Möglichkeit eigene Datensätze
zu bearbeiten, sondern alle in der Datenbank vorhandenen. Dies ist jedoch nur in den
seltensten Fällen notwendig, da die Eigenverantwortung im Vordergrund steht und die
Datensatzqualität durch den Auditprozess sichergestellt wird.
Einem auditor ist es ebenfalls erlaubt, zusätzlich gespeicherte Informationen zu
bearbeiten, beispielsweise das Qualitätslabel. Dieses Label informiert über die Qualität
des Datensatzes und dessen Referenzen, auf denen dieser beruht. Stellt sich im
Nachhinein heraus, dass die Qualität der Referenzen und somit des Datensatzes nicht
den Ansprüchen des THEREDA Projektes genügt, kann durch die Änderung des
Qualitätslabels gesteuert werden, dass ein älterer Datensatz einem neuem Datensatz bei
Datenabfragen vorgezogen wird.
Auditprozess verwalten
Das Herzstück zur Gewährleistung der Qualität stellt der Auditprozess dar. Hierbei
obliegt einem auditor die Verwaltung des Auditprozesses, dessen Ablauf im Anhang IV
dargestellt wird. Innerhalb dieses Prozesses nimmt ein anderer author eine Bewertung
des neu eingegeben bzw. geänderten Datensatzes vor. Diese Bewertung dient einem
auditor als Entscheidungsgrundlage bezüglich der Freigabe des Datensatzes. Unter
Freigabe ist in diesem Zusammenhang das automatische Setzen des „approved“-Status
und damit die öffentliche Verfügbarkeit des Datensatzes, z.B. in der Datensatzabfrage
zu verstehen. Während des Auditprozesses hat ein author die Möglichkeit sich mittels
des „Auditstatus“ über den Stand der Kontrolle zu informieren und ggf. Maßnahmen zu
ergreifen.
- 64 -
6. Entwurf
Tabelle 11:
THEREDA: Vordefinierte Auditstati
Auditstatus
Beschreibung
not yet audited
Dieser Status besagt, dass zum aktuellen Zeitpunkt der Auditprozess noch
nicht begonnen hat.
author assigned
Wurde ein author durch einen auditor einem Datensatz zugeordnet, so erhält
der Datensatz diesen Status.
auditing ongoing
Der Status wird gesetzt, wenn die Kontrollaufgabe von einem author
angenommen wird und er die Kontrolle beginnt.
auditing finished
Dieser Status wird vergeben, wenn ein author den kontrollierten Datensatz
für korrekt und qualitativ gut befindet.
revision required
Dieser Status besagt, dass die Qualität des kontrollierten Datensatzes durch
den author für nicht ausreichend befunden wurde.
approved
Ein auditor entscheidet abschließend über die Freigabe des Datensatzes.
Gibt er den Datensatz frei, so erhält dieser den Status approved und der
Datensatz wird beispielsweise bei Datensatzabfragen mit einbezogen.
not approved
Dieser Status wird gesetzt, wenn der Datensatz nicht freigegeben wurde.
Zuständigkeiten für Datensätze ändern
Durch die lange Laufzeit des gesamten Projektes, kann es dazu kommen, dass ein
author das Projekt verlässt bzw. nicht mehr aktiv mitwirkt. Daraufhin würden alle von
ihm erstellten Datensätze verwaisen. Damit ist gemeint, dass nur noch Mitglieder der
Gruppe auditor diese Datensätze bearbeiten können. Um dies zu verhindern besteht die
Möglichkeit, Datensätze von einem author auf einen anderen zu übertragen. Ein auf
diese Weise neu zugeordneter author hat anschließend die Möglichkeit, diese
Datensätze wie eigene erstellte zu behandeln. Somit bleibt das Konzept der inhaltlichen
Eigenverantwortung für Datensätze durch einen author erhalten.
6.2.5
accessAdministrator
Dem accessAdministrator obliegt die Nutzerverwaltung. Darunter fallen die
Genehmigung neuer Nutzer, das Löschen, Sperren und Aktivieren von bereits
registrierten Nutzern sowie die Nutzergruppenzuordnung. Hierfür wird die in Joomla!
integrierte Nutzerverwaltung verwendet.
- 65 -
6. Entwurf
Abbildung 13: USE CASE: accessAdministrator
Nutzerverwalten
Die Verwaltung von Nutzern ist ein sehr wichtiger Aufgabenbereich innerhalb der
Webanwendung, denn hierdurch wird der Zugriff auf die Anwendung gewährt oder
verwehrt. Dabei übernimmt der accessAdministrator das Freischalten neu registrierter
bzw. gesperrter Nutzer, wodurch diese den Systemzugriff erhalten. Durch das Sperren
von Nutzern wird der Systemzugriff entzogen. Des Weiteren ist er in der Lage, einen
Nutzeraccount vollständig zu löschen.
Nutzergruppenzuordnung
Der accessAdministrator ordnet einzelnen Nutzern den hier aufgeführten Nutzergruppen
zu. Dafür verwendet er das Joomla!-Backend, in dem auch festgelegt wird, welche
Funktionalitäten der Anwendung welchen Nutzergruppen zur Verfügung stehen sollen.
- 66 -
6. Entwurf
6.2.6
systemAdministrator
Die Nutzergruppe systemAdministrator ist für die Funktionsfähigkeit der gesamten
Datenbank verantwortlich. Darunter zählen die Anpassung der Datenbank an geänderte
Anforderungen durch das Erstellen, Ändern oder auch Löschen von Datenbankobjekten
sowie das Setzen der entsprechenden Zugriffsrechte. Außerdem muss die Funktionsfähigkeit der erstellten Backupdateien gewährleistet werden, um im Fall eines
Systemausfalls die Verfügbarkeit der Datenbank schnellstmöglich sicher zu stellen.
Unabhängig vom Datenbanksystem obliegt dieser Gruppe auch die Generierung der
Download-Datenbanken und die Überprüfung sämtlicher generierter Parameterdateien
auf Unversehrtheit.
Abbildung 14: USE CASE: systemAdministrator
- 67 -
6. Entwurf
Generierung der Download-Datenbank
Die Download-Datenbanken werden durch den systemAdministrator in bestimmten
Zeitintervallen (ca. jedes Halbjahr) generiert und über die Webpräsenz zum Download
angeboten. Für die Generierung bieten sich vorgefertigte SQL-Statements an, die die
entsprechende Datenbankstruktur abbilden und nur diejenigen Datensätze beinhalten,
welche freigegeben sind und ein entsprechendes Qualitätslabel besitzen. Die erstellte
Datenbankabbildung liegt im JSON-Format vor und kann in diesem heruntergeladen
werden. Daneben bietet die Systemfunktion „Generierung der Parameterdateien“ noch
die Möglichkeit weitere Formate aus der JSON-Datei zu generieren.
Prüfen von externen Parameterdateien auf Unversehrtheit
Bei den Parameterdateien, die sich ein Nutzer herunterladen und weiterverwenden kann,
handelt es sich momentan um reine Textdateien (ASCII-Dateien). Dadurch ist es relativ
einfach, die Daten innerhalb der Dateien zu manipulieren, was zu verfälschten
Berechnungsergebnissen führt. Diese können sich wiederum negativ auf das
THEREDA Projekt auswirken, da eine der Zielsetzungen die Bereitstellung einer
gesicherten Datenbasis ist.
Um auch im Nachhinein eine Prüfung zu ermöglichen, werden die erzeugten
Textdateien serverseitig gespeichert. Treten widersprüchliche Aussagen auf, wird der
Nutzer
aufgefordert,
seine
heruntergeladene
Datenbasis
den
THEREDA
Projektmitgliedern zur Verfügung zu stellen und ihnen mitzuteilen, wann er diese
generiert hat. Für die Überprüfung beider Textdateien können z.B. Programme wie
UltraEdit oder auch Kommandozeilenbefehle wie fc (für Windows) oder diff (für
Linux) verwendet werden. Es ist ebenfalls möglich, aus der zugesandten Datei den
Hashwert zu bestimmen und mit dem gespeicherten ursprünglichen Hashwert zu
vergleichen. Dies ist jedoch nur machbar, wenn der gleiche Hashalgorithmus verwendet
wird und keine unterschiedlichen Zusatzinformationen, wie beispielsweise Datum oder
Uhrzeit in den Dateien enthalten sind.
- 68 -
6. Entwurf
Manuelles Backup
Hat ein systemAdministrator Änderungen an der Datenbankstruktur, an Zugriffsrechten
oder größere Änderungen am Datenbestand vorgenommen, kann er unabhängig vom
automatischen Backup ein manuelles Backup durchführen. Hierfür kann er das
Programm pg_dump verwenden, welches den Inhalt der Datenbank auch im laufenden
Betrieb in eine ASCII-Datei schreibt. In diese Datei werden eine Folge von SQLBefehlen geschrieben, mit deren Hilfe der gesicherte Zustand der Datenbank nach
einem Systemausfall wiederhergestellt werden kann.
Im einfachsten Fall kann pg_dump wie folgt ausgeführt werden:
pg_dump dbname > backup.sql
Hierbei wird als Parameter der zu sichernde Datenbankname übergeben und die Standardausgabe
in die Datei backup.sql umgeleitet. Dabei kann man bei pg_dump zwischen drei verschiedenen
Ausgabeformaten wählen, einmal dem soeben verwendeten “Plain Text“-, dem “Tar“- und dem
“Custom“- Format. Das “Plain Text“-Format ist das Standardausgabeformat, das mittels der
Option –Fp explizit festgelegt werden kann. Um eines der anderen Ausgabeformate zu wählen,
ist für das TAR-Format der Parameter –Ft und für das “Custom“-Format der Parameter –Fc
anzugeben. pg_dump sichert alle in der angegebenen Datenbank enthaltenen Datenbankobjekte.
Es werden dabei nicht die globalen Objekte des Datenbanksystems, wie Nutzer, Nutzergruppe,
Tablespaces, sowie die Definition der Datenbank, gesichert.
Möchte man alle Datenbanken und die dazugehörigen globalen Objekte des Datenbanksystems
sichern, kann man das Programm pg_dumpall verwenden.
pd_dumpall > backup.sql
Recovery
Die Wiederherstellung des mit pg_dump gesicherten Datenbanksystems erfolgt im
einfachsten Fall mit der Übergabe der Dump-Datei an psql.
psql dbname < backup.sql
Bei der Wiederherstellung werden die in der Datei backup.sql enthaltenen SQL-Befehle
ausgeführt und damit die Datenbank rekonstruiert. Dabei ist zu beachten, dass für die
Wiederherstellung einer mit pg_dump erstellten Sicherung, alle globalen Objekte
bereits im Datenbanksystem mit identischen Namen vorhanden sein müssen.
Dies ist beim Recovery einer pg_dumpall-Sicherung nicht notwendig, da dort alle
Objekte automatisch angelegt werden.
- 69 -
6. Entwurf
Damit bei der Wiederherstellung auch solche Änderungen am Datenbestand mit
berücksichtigt werden, die seit der letzen Sicherung getätigt wurden, sollten auch die
Write-Ahead-Log (WAL) Aufzeichnungen, die PostgreSQL auf der Festplatte sichert
sowie weitere Logging Dateien mit einbezogen werden.
Datenbankstrukturen ändern
Die Erstellung und Änderung von Tabellen, Sichten (engl. Views), Funktionen,
Triggern sowie Sequenzen wird während des Projektes ein ständiger Prozess sein, der
vor allem der Optimierung und Anpassung an veränderte Anforderungen/Bedürfnisse
dient. Bei diesen Änderungen an der Datenbankstruktur ist immer darauf zu achten, dass
die Datenintegrität gewährleistet wird. Hierfür können beispielsweise Views,
Funktionen, Triggern, sowie Sequenzen unterstützend definiert werden. So werden bei
bestimmten
SQL-Statements,
definierte
Trigger
oder
Sequenzen
automatisch
aufgerufen, die eine bestimmte Aktion bzw. auch eine Aktionsfolge ausführen. Dadurch
lässt sich sicher stellen, dass z.B. Änderungen innerhalb einer Tabelle automatisch an
andere Tabellen weitergegeben werden.
Zugriffsrechte verwalten
Für die neu erstellen Datenbankobjekte besitzt nur der Ersteller alle entsprechenden
Rechte. Damit die einzelnen Datenbankobjekte durch andere Nutzer verwendet werden
können, müssen durch den Eigentümer diese Rechte explizit gesetzt werden. Hierbei ist
darauf zu achten, dass der Datenbanknutzer apache nur die nötigsten Rechte/Privilegien
für das entsprechende Datenbankobjekt erhält. Eine Liste aller möglichen Privilegien
für die jeweiligen Datenbankobjekte wird im Anhang V gegeben. Die einzelnen
Privilegien werden dabei mittels des GRANT-Befehls gesetzt oder per REVOKE
entzogen.
- 70 -
6. Entwurf
6.3
Systemfunktionen
Unter den Systemfunktionen sind die Funktionalitäten zu verstehen, die die
Benutzerfunktionen unterstützen bzw. völlig losgelöst von ihnen automatisch
abgearbeitet werden.
6.3.1
Prüfen / Controlling
Passwortvalidierung
Das Prüfen/Kontrollieren von neuen Passwörtern, dient dem Schutz vor zu schwachen
Passwörtern. Hierfür wurden für die unter 3.1.1 definierten Passwortrichtlinien
projektspezifische Werte bestimmt.
Tabelle 12:
THEREDA: Passwortrichtlinien
Methode
Festlegungen
Passwortzyklus
(Zeitlimit)
Keiner
Wiederverwendung
3
Wörterlisten
siehe [I_COTSE1]
Zeichensatz
[a-z], [A-Z], [0-9], typ. Sonderzeichen
Passwortlänge
min. 5
Die Prüfung dieser Richtlinien kann z.B. mittels PHP realisiert werden. Um die
Sicherheit der Passwörter zu gewährleisten, müssen die in PHP definierten
Bedingungen lückenlos arbeiten. Damit ist gemeint, dass bei Nichterfüllung einer dieser
Bedingungen der Passwortkandidat vom System abgelehnt wird. Des Weiteren sollte
die Übertragung zwischen Client und Server verschlüsselt stattfinden.
Für die Passwortprüfung gibt es für PHP die Erweiterung “ext/crack“. Mit dieser lässt
sich der Passwortkandidat gegen eine Wörterliste, auf die Mindestlänge von 5 Zeichen
und die Zeichenzusammensetzung prüfen. Bei Letzterem wird geprüft, ob der
Passwortkandidat nicht ausschließlich aus Klein- oder Großbuchstaben oder aus Zahlen
besteht.
- 71 -
6. Entwurf
Das Ergebnis dieser Überprüfung kann entweder TRUE für ein „starkes Passwort“ oder
FALSE für ein „nicht ausreichend starkes Passwort“ sein. Unabhängig davon, welche
dieser Varianten verwendet wird, als Ergebnis erhält man im positiven Fall ein starkes
Passwort, aus dem dann der Hashwert berechnet und in der Datenbank abgelegt wird.
Eingabevalidierung
Die Eingabeüberprüfung dient der Integritätssicherung sowie dem Schutz vor
Angriffen. Im Folgenden werden dabei vor allem SQL-Injections betrachtet. Dabei
können zur Validierung PHP-spezifische Funktionen verwendet werden, die in
Kombination mit den in der Datenbank definierten Integritätsbedingungen die
Integritätssicherung gewährleisten.
So können durch PHP Funktionen, wie z.B. is_numeric() oder is_string(), die
eingegebenen Parameterwerte dahingehend geprüft werden, ob sie den von der
Datenbank erwarteten Datentypen entsprechen. Dies ist für Datenabfragen sowie
Dateneingaben notwendig. Bei Dateneingaben muss des Weiteren darauf geachtet
werden, dass die semantische Integrität eingehalten wird. Diese Überprüfung wird vom
Datenbanksystem automatisch vorgenommen, z.B. durch die Einhaltung von
Fremdschlüsselbeziehungen.
Die Fremdschlüsselbeziehungen einer Tabelle können direkt beim Anlegen mit erzeugt werden
und werden daraufhin bei Einfüge-, Aktualisierungs- oder Löschaktionen kontrolliert. Die dafür
notwenige Ergänzung des CREAT-Befehls lautet:
FOREIGN KEY (Spalte) REFERENCES referenzTabelle (referenzSpalte)
Neben den Funktionen zur Typüberprüfung bietet PHP auch spezielle Funktionen zum
Zugriff auf die PostgreSQL-Datenbank und zur Maskierung von SQL-Statements. Die
Funktion
pg_escape_string()
maskiert
die
im
SQL-Statement
enthaltenen
Sonderzeichen, so dass diese keinen Einfluss mehr auf die Datenbank haben. Damit
lassen sich SQL-Injections unterbinden.
- 72 -
6. Entwurf
6.3.2
Logging
Logging ist das Protokollieren aller Aktionen am Datenbanksystem, einerseits die
Protokollierung aller vom Nutzer getätigten Aktionen, aller Datenabfragen und
-manipulationen, und andererseits die Login- und Logoutinformationen. Des Weiteren
werden von der PostgreSQL-Datenbank automatisch Write-Ahead-Log (WAL) Dateien
auf
die
Festplatte
geschrieben.
Diese
enthalten
Aufzeichnungen
sämtlicher
Schreiboperationen, die im Datenbanksystem vorgenommen wurden. Bei der
Festlegung der Logging-Strategie sollte man berücksichtigen, dass die Zugriffe auf die
PostgreSQL-Datenbank entpersonalisiert stattfinden.
Durch den entpersonalisierten Datenbankzugriff, ist ein separates Logging auf der
Joomla! Ebene notwendig, um die ausgeführten Transaktionen konkreten Nutzern
zuordnen zu können. Erst dadurch ist es möglich Nutzer zu identifizieren, die versucht
haben einen schädlichen Code in die Anwendung einzuschleusen.
Die Kontrolle der erstellten Logging Dateien sollte regelmäßig stattfinden, um
potentielle Lücken und auffällige Nutzer so schnell wie möglich ausfindig zu machen
und Maßnahmen einzuleiten.
6.3.3
Verarbeitung
Synchronisation
Die Verwaltung der individuellen Nutzer findet auf Joomla! Ebene statt, wohingegen
der Datenbankzugriff entpersonalisiert ist. Einige Datensätze enthalten jedoch auch auf
Datenbankebene Nutzerinformationen, beispielsweise die Tabelle editor. Damit bei
Schreiboperationen an der Datenbank die semantische Integrität sicherzustellen, ist es
notwendig einen Teil der Nutzerinformationen zwischen Joomla! und der PostgreSQLDatenbank abzugleichen und bei Bedarf zu synchronisieren.
- 73 -
6. Entwurf
Automatische Backups
Automatische Backups lassen sich auf Datenbankebene mit den Programmen pg_dump
bzw. pg_dumpall erstellen.
Um ein automatisches Backup durchzuführen wird ein entsprechender Anruf bei Cron
eingetragen. Dafür muss man z.B. als Nutzer postgres (Standardadministrator von PostgreSQL)
eingeloggt sein und crontab –e aufrufen und dort beispielsweise folgenden Befehl angeben.
0 4 * * 0 pg_dumpall > backup.sql
Hierbei wird eine wöchentliche Sicherung um 04:00 Uhr durchgeführt. Der nachfolgende Befehl
führt hingegen eine monatliche Sicherung durch.
0 4 1 * * pg_dumpall > backup.sql
In diesen beiden Beispielen überschreibt die neue die alte Sicherung, welche in der Datei
backup.sql enthalten ist. Damit dies nicht geschieht, kann man den Dateinamen automatisch
verändern, wodurch sich die Sicherungsdateien auch zeitlich ordnen lassen. %b steht in diesem
Fall für den entsprechenden Monatsnamen.
0 4 1 * * pg_dumpall > backup-$(date + %b).sql
Generierung der Parameterdateien
Die Anwendung stellt dem Nutzer Download-Datenbanken, sowie Abfrageergebnisse
als Parameterdateien in verschiedenen Formaten zur Verfügung. Das JSON-Format
wird dabei als Standardausgabeformat verwendet, aus dem weitere Formate generiert
werden. Dabei wird die JSON-Datei durch fest definierte Regeln in ein anderes
Ausgabeformat überführt. Dies ist relativ einfach möglich, weil es sich bei den anderen
Formaten ebenfalls um reine ASCII-Dateien handelt.
Dabei wird die im JSON generierte Download-Datenbank in der Joomla! Komponente
„DOCman“ veröffentlicht, während die anderen Formate der Datenbank, nach jetzigem
Stand erst nach der Initialisierung generiert und dem Nutzer direkt zum Download
angeboten werden. Ähnlich verhält es sich bei den Abfrageergebnissen, da diese nur in
dem vom Nutzer gewünschten Format zum Download zur Verfügung gestellt werden.
- 74 -
7. Prototypische Realisierung
7.
Prototypische Realisierung
In diesem Kapitel werden die Anlegung eines Nutzers und die Zuweisung der
entsprechenden
Schreibrechte
im
System
anhand
eines
Beispiels
erläutert.
Darauffolgend wird die Serverauthentifizierung mittels eines OpenSSL-Zertifikates
veranschaulicht. Abschließend folgt eine Erklärung der Umsetzung der PasswortPrüffunktion
7.1
THEREDA: Der Datenbanknutzer
Die personalisierte Nutzerverwaltung findet, wie bereits erwähnt, in Joomla! statt. Für
den Datenbankzugriff existiert auf PostgreSQL-Ebene der Datenbanknutzer apache,
über den die gesamte Kommunikation läuft. Daneben gibt es noch die Nutzergruppe
systemAdministrator, die sämtliche Rechte für alle Datenbankobjekte besitzt und somit
einen Superuser darstellt.
In PostgreSQL werden Nutzer und Nutzergruppen unter dem Konzept der Rolle vereinheitlicht.
Die Unterscheidung, ob es sich um einen Nutzer oder eine Gruppe handelt, wird durch das
Login-Attribut getroffen. Wird das Login-Attribut gesetzt so handelt es sich um einen Nutzer,
der sich am Datenbanksystem einloggen kann. Zum Anlegen von Nutzern kann sowohl der SQLBefehl CREATE ROLE, als auch das Programm createuser verwendet werden.
CREATE ROLE apache LOGIN;
Um
einen
Superuser
anzulegen,
der
sämtliche
Rechte/Privilegien
innerhalb
des
Datenbanksystems besitzt, ergänzt man den SQL-Befehl CREATE ROLE mit dem Attribut
SUPERUSER.
CREATE ROLE systemAdministrator LOGIN SUPERUSER;
Vergabe und Entzug von Zugriffsrechten
Zum Arbeiten mit der Datenbank benötigt der Datenbanknutzer apache für sämtliche
Datenbankobjekte, die zur Erfüllung der Aufgaben der einzelnen Nutzergruppen
notwendig sind, die entsprechenden Rechte. Dabei gibt es für die verschiedenen
Datenbankobjekte (Datenbanken, Tabellen, Views usw.) unterschiedliche Rechte, die
im Anhang V aufgeschlüsselt dargestellt sind.
- 75 -
7. Prototypische Realisierung
Zum Setzen bzw. Entziehen der entsprechenden Rechte werden die SQL-Befehle
GRANT und REVOKE eingesetzt. Im Folgenden werden beispielshaft einige dieser
Rechte für Tabellen gesetzt. Eine Übersicht über alle Tabellen, die durch den Nutzer
apache bearbeitet werden können müssen, wird im Anhang II gegeben. Alle weiteren
Tabellen sind durch apache-Nutzer lesbar aber nur von einem Superuser editierbar.
Für den lesenden Zugriff auf eine Tabelle wird der SQL-Befehl SELECT benötigt, für das
Editieren sind zusätzlich die Rechte INSERT, UPDATE und DELETE notwendig. Das
DELETE-Recht müsste jedoch nicht explizit gesetzt werden, da Daten auch durch einen
UPDATE-Befehl vernichtet werden können.
GRANT SELECT, INSERT, UPDATE, DELETE ON dbstatus, pcon [, …] TO apache;
Da PostgreSQL es erlaubt neben einer Liste aller Privilegien und Nutzer auch eine Tabellenliste
anzugeben, gestaltet sich die Vergabe dieser relativ einfach.
Stellt sich in einer späteren Projektphase heraus, dass für bestimmte Tabellen kein schreibender
oder sogar lesender Zugriff notwendig ist, sollten die entsprechenden Rechte dem Nutzer apache
entzogen werden.
REVOKE INSERT, UPDATE, DELETE | ALL ON dbstatus FROM apache;
7.2
Authentifizierung
7.2.1
Serverauthentifizierung
Um den Webserver gegenüber den Clients zu authentifizieren und die Kommunikation
zu verschlüsseln, wird ein mit OpenSSL erstelltes Zertifikat für Testzwecke eingesetzt.
Dabei wurde ein selbstsigniertes Zertifikat mittels des OpenSSL Toolkit, Version
0.9.8k, erstellt.
Abbildung 15: Erstellung des Serverzertifikats mittels OpenSSL
- 76 -
7. Prototypische Realisierung
Mit dem in Abbildung 15 abgebildeten Kommando wird ein neues (-new) Zertifikat (-x509) mit einer
Gültigkeitsdauer von einem Jahr (-days 365) erzeugt. Dieses wurde mit dem SHA1 Algorithmus
(-sha1) verschlüsselt. Anschließend wird der private Schlüssel mittels des RSA Algorithmus und
einer Schlüssellänge von 2048 Bit (-newkey rsa:2048) generiert. In diesem Fall wird der private
Schlüssel nicht durch ein Passwort geschützt (-nodes). Der genierte private Schlüssel wird in die
Datei server.key geschrieben und das eigentliche Zertifikat, welches den öffentlichen Schlüssel
enthält, in server.crt (-keyout server.key –out server.crt). Abschließend werden noch einige
Zertifikatsdaten
angegeben,
darunter
die
Landeskennung
(C=DE),
Stadt
(L=Dresden),
Einrichtung/Organisation (O=Forschungszentrum Dresden-Rossendorf), das Organisationskürzel
(OU=FZD) und der Name der zu zertifizierenden Domain (CD=www.thereda.de).
(Vgl. [I_SECFO1])
Um den Apache-Webserver mit SSL betreiben zu können, muss das Modul mod_ssl
beim Start des Servers mit geladen werden. Der hierfür notwendige Kommando-Befehl
ist in der Datei httpd.conf bereits enthalten und muss ggf. nur durch das Entfernen des
Kommentarzeichens (#) aktiviert werden. Anschließend kopiert man das eben erstellte
Zertifikat (*.crt) sowie den entsprechenden Schlüssel (*.key), in das dafür vorgesehene
Webserver-Verzeichnis, ..\ssl.crt\ und ..\ssl.key\.
Nach dem Neustart des Webservers ist dieser in der Lage, eine mit SSL gesicherte
Verbindung aufzubauen.
7.2.2
Clientauthentifizierung
THEREDA verwendet zur Clientauthentifizierung, die von Joomla! mitgelieferte
wissensbasierte Passwortauthentifizierung. Auf diese Komponente wird hier nicht näher
eingegangen. Stattdessen soll gewährleistet werden, dass die verwendeten Passwörter
den definierten Passwortrichtlinien entsprechen. Dafür wird die PHP Erweiterung
„ext/crack“ verwendet.
Ist die Erweiterung richtig installiert und aktiv, kann damit die Passwortüberprüfung
stattfinden. Dabei wird ein Passwortkandidat unter anderem hinsichtlich der
Zeichenlänge, der Zeichenzusammensetzung und gegen ein eingebundenes Wörterbuch
geprüft. Das Ergebnis dieser Überprüfung ist entweder der Rückgabewert TRUE, für
ein starkes Passwort oder eine entsprechende Fehlermeldungen.
- 77 -
7. Prototypische Realisierung
Falls die Erweiterung nicht geladen werden kann, muss dennoch sichergestellt werden,
dass ein Passwortkandidat nicht ohne eine Überprüfung vom System akzeptiert wird.
Für diese alternative Überprüfung werden einfache IF-THEN-ELSE-Bedingungen
eingesetzt, die zumindest eine Grundsicherheit für neue Passwörter sicherstellen.
Abbildung 16: Passwortprüffunktion, nach [B_KUNZx1], S. 156f
- 78 -
8. Fazit
8.
Fazit
Mit dieser Arbeit zum Entwurf und prototypischen Realisierung von Maßnahmen eines
Autorisierungs- und Datensicherheitskonzeptes, wurde ein weiterer Grundbaustein für
die nächsten Projektphasen des Verbundprojektes THEREDA gelegt, in denen es um
die Realisierung der definierten Anforderungen geht.
Im Vordergrund der Arbeit stand die Sensibilisierung der Projektmitglieder in Bezug
auf die IT-Sicherheit. Da das THEREDA Projekt staatliche Förderung erhält und die
gesetzlichen Vorgaben eingehalten werden sollen, wurde ein besonderes Augenmerk
auf geltende Richtlinien, Gesetze und Standards gelegt.
Um die Datensicherheit des Systems zu erhöhen, wurde im Rahmen dieser Arbeit ein
Autorisierungskonzept entworfen. Dieses ermöglicht mit Hilfe von definierten
Aufgabenbereichen, den Nutzern einzelne Funktionalitäten zuzuordnen und ihre genaue
Identität festzustellen. Die Zuordnung wird dabei durch Nutzergruppen realisiert.
Die Authentifizierung eines Nutzers wird mittels der Passwortauthentifizierung
verwirklicht, welche die am weitesten verbreitete Methode im World Wide Web
darstellt. Das Sicherheitsniveau dieser Verfahrensweise kann dabei durch die Definition
von Richtlinien erhöht werden. Authentifizierungsmethoden die auf Besitz oder
Biometrie beruhen, sind im Wesentlichen sicherer als die Passwortauthentifizierung.
Jedoch
sind
für
diese
Authentifizierungsmethoden
spezielle
Hard-
und
Softwarekomponenten notwendig, die zurzeit nicht standardisiert allen Anwendern zur
Verfügung stehen.
Im weiteren Verlauf der Arbeit wurden verschiedene webbasierte Technologien
hinsichtlich deren Funktionalitäten und Sicherheit untersucht. Für das Projekt eignen
sich dabei die serverseitigen Java-basierten Technologien, sowie die Skriptsprache PHP
am
besten.
In
diesem
Zusammenhang
wurden
außerdem
verschiedene
Angriffsmethoden, die vom World Wide Web ausgehen, veranschaulicht und mögliche
- 79 -
8. Fazit
Gegenmaßnahmen aufgezeigt. Das größte Gefahrenpotenzial für das THEREDA
Projekt stellen derzeitig die SQL-Injections dar.
In den nächsten Projektphasen muss die weitere Entwicklung im Bereich der ITSicherheit stets berücksichtigt werden. Vor allem sollten aktuell veröffentlichte Studien
und Berichte über bekanntgewordene Bugs/Lücken in den einzelnen Technologien
verfolgt werden, auf denen das THEREDA Projekt beruht. Ein weiteres Augenmerk
sollte man auf neu aufkommende Angriffsmethoden richten, um frühzeitig auf neue
Bedrohungen reagieren zu können und Gegenmaßnahmen einzuleiten.
Für das THEREDA Projekt stellt meine Diplomarbeit über den Entwurf und die
prototypische
Realisierung
von
Maßnahmen
eines
Autorisierungs-
und
Datensicherheitskonzeptes in einer SQL-basierten chemischen Stoffdatenbank, einen
weiteren Grundbaustein für nachfolgende Projektphasen dar, in denen die eigentliche
Entwicklung der Webanwendung schließlich realisiert werden.
- 80 -
I. Anhang
I. Anhang
Anhang I:
Übersicht über Internet-Sicherheitsprotokolle, nach [B_MARTI1], S. 148
- 81 -
I. Anhang
Anhang II:
THEREDA: Tabellen mit Schreibrechten
Tabelle
Kurzbeschreibung
Ð aggregationstate
Aggregationszustand
Ð calcmode
Art der Berechnung bei intern abgeleiteten Daten
Ð category
Gibt an, ob eine Bildungsreaktion vorliegt oder nicht
Ð controllingresult
Liste der möglichen Kontrollergebnisse
Ð data_standard
Stoffdaten bei Standardbedingungen (25°, 1bar)
Ð data_standard_pitzer
Stoffdaten bei Standardbedingungen für das Pitzer-Modell
Ð data_standard_sit
Stoffdaten bei Standardbedingungen für das SIT-Modell
Ð data_variable
Stoffdaten bei nicht-Standardbedingungen
Ð data_variable_pitzer
Stoffdaten bei nicht-Standardbedingungen für das Pitzer-Modell
Ð dataclass
Eine Kombination aus einem nummerischem Element und der
Datenkategorie
Ð dataquality
Liste der möglichen Qualitätslabels
Ð datasource
Liste der möglichen Datenquellen
Ð datatype
Art der Stoffdaten
Ð datatype_x_calcmode
Liste der erlaubten Kombinationen von datatype und calcmode
Ð dbstatus
Datenbankstatus
Ð editor
Liste der Editoren
Ð element
Periodensystem der chemischen Elemente
Ð interaction
Definiert Art und Beteiligte einer Wechselwirkung
Ð interaction_standard
Wechselwirkungsparamerter bei Standardbedingungen (25°, 1 bar)
Ð interaction_variable
Wechselwirkungsparameter bei nicht-Standardbedingungen
Ð interactionmodel
Liste erlaubter Wechselwirkungsmodelle
Ð interactionmodel_x_phase
Liste erlaubter Kombinationen von Wechselwirkungsmodellen und
Phasen
Ð interactiontype
Art des Wechselwirkungsparameters
Ð modification
Modifikationsform fester Phasen
Ð pcon
Komponenten einer Phase
Ð pconcomposition
Zusammensetzung einer Phase
Ð pcontype
Art einer Phasenkomponente
Ð phase
In sich abgeschlossene chemische Phase
Ð physicalconstants
Allgemeine physikalische Naturkonstanten
Ð reactions
Liste der Reaktionspartner einer chemischen Reaktion
Ð reference
Detaillierte bibliographische Beschreibung einer Referenz (zitier
fähige Publikation)
Ð reference_author
Liste der Autoren einer Publikation
Ð reference_language
Sprache der Publikation
Ð reference_status
Form der physischen Speicherung einer Literaturstelle/Kopie
- 82 -
I. Anhang
Ð reference_type
Art der Publikation (Buch, Report, Zeitschrift etc.)
Ð tpfunc
Liste von Temperatur- und Druckfunktionen
Ð unctype
Liste der möglichen Unsicherheiten
Anhang III: Tabellenübersicht
- 83 -
I. Anhang
Anhang IV: Ablauf des Dateneingabeprozesses
- 84 -
I. Anhang
- 85 -
I. Anhang
- 86 -
I. Anhang
- 87 -
I. Anhang
Anhang V:
Übersicht der Privilegien für Datenbankobjekte, nach [B_EISEN1],
S. 186 - 190
Datenbankobjekt
Ð Privileg
Kurzbeschreibung
Tabellen und Sichten
Ð SELECT
Erlaubt das Lesen der Tabelle oder Sicht.
Ð INSERT
Erlaubt das Einfügen in eine Tabelle oder Sicht.
Ð UPDATE
Erlaubt das Ändern von Daten in einer Tabelle oder Sicht.
Ð DELETE
Erlaubt das Löschen von Daten aus einer Tabelle.
Ð REFERENCES
Erlaubt das definieren von Fremdschlüsseln, dabei muss man dieses
Privileg für beide betroffene Tabellen besitzen.
Ð TRIGGER
Erlaubt das Anlegen von Triggern für die betroffene Tabellen.
Sequenzen
Ð SELECT
Erlaubt die Verwendung der Funktion currval mit der Sequenz.
Ð UPDATE
Erlaubt die Verwendung der Funktionen nextval und setvall mit der
Sequenz
Ð USAGE
Erlauben die Verwendung der Funktionen currval und nextval mit
der Sequenz.
Funktionen
Ð EXECUTE
Erlaubt das Ausführen einer Funktion.
Schemas
Ð CREATE
Erlaubt das Erzeugen von neuen Objekten im Schema.
Ð USAGE
Erlaubt die Verwendung von Objekten im Schema.
Datenbanken
Ð CONNECT
Erlaubt das Verbinden mit der Datenbank.
Ð CREATE
Erlaubt das Anlegen von Schemas in der Datenbank.
Ð TEMP/TEMPORARY
Erlaubt das Anlegen von temporären Tabellen in der Datenbank.
Sprachen
Ð USAGE
Erlaub das Verwenden von Sprachen zum erstellen neuer Funktionen.
Tablespaces
Ð CREATE
Erlaubt das Erzeugen von Objekten im Tablespace. Außerdem
können neue Datenbanken angelegt werden, die den Tablespace als
Default-Tablespace hat.
- 88 -
II. Literaturverzeichnis
II. Literaturverzeichnis
Bücher [B_XXXXX9]
[B_ABECK1]
Abeck, S. , P. C. Lockemann, J. Schiller u. J. Seitz: Verteilte
Informationssysteme, dpunkt.verlag GmbH Heidelberg, 2002
[B_BALZE1]
Balzert, H.: UML 2 kompakt, Elsevier GmbH, Spektrum
Akademischer Verlag, 2005, 2. Auflage
[B_BLESS1]
Bless, R. , E. Blaß, M. Conrad, H. Hof,K. Kutzner,S. Mink u. M.
Schöller:
Sichere
Netzwerkkommunikation,
Springer-Verlag
Berlin Heidelberg New York, 2005, 1. Auflage
[B_BOENI1]
Boenigk, C.: PostgreSQL, dpunkt.verlag GmbH Heidelberg,
2003, 1. Auflage
[B_BRÖSS1]
Brössler,
P.:
Flexible
und
effiziente
Unterstützung
von
Transaktionen auf persistenten Objekten, Verlag Shaker, 1994
[B_ECKER1]
Eckert, C.: IT-Sicherheit, Oldenbourg Wissenschaftsverlag
GmbH, 2005
[B_EISEN1]
Eisentraut, P. u. B. Helmle: PostgreSQL Administration, O'Reilly
Verlag, 2009, 1. Auflage
[B_EISEN2]
Eisentraut, P.: PostgreSql GE-PACKT, mitp-Verlag/Bonn, 2005
[B_FERRA1]
Ferraiolo, D., D. R. Kuhn u. R. Chandramouli: Role-based access
control, ARTECH HOUSE, Inc., 2003
- 89 -
II. Literaturverzeichnis
[B_GERHA1]
Gerhardt, W.: Zugriffskontrolle bei Datenbanken, Oldenbourg
Wissenschaftsverlag GmbH, 1993
[B_HAUSE1]
Hauser, T. , C. Wenz u. F. Maurice: Das Website Handbuch,
Mark+Technik Verlag, 2008
[B_HERBO1]
Herbolsheimer,
A.:
Datenbank-Programmierung,
Addison-
Wesley Verlag, 2005, 5. Auflage
[B_KANNE1]
Kannengiesser, M.: PHP 5 Objektorientierte Programmierung,
Franzis Verlag GmbH, 2009
[B_KAPPE1]
Kappes, M.: Netzwerk- und Datensicherheit, Vieweg+Teubner
Verlag, 2007, 1. Auflage
[B_KEMPE1]
Kemper, A u. A. Eickler: Datenbanksysteme, Oldenbourg
Wissenschaftsverlag GmbH, 2004, 5. Auflage
[B_KLEIN1]
Kleinschmidt, P. u. C. Rank: Relationale Datenbanksysteme,
Springer-Verlag Berlin Heidelberg New York, 2005, 3. Auflage
[B_KOITZ1]
Koitz, R.: Informatikrecht - Schnell erfasst, Springer-Verlag
Berlin Heidelberg New York, 2002
[B_KRIHA1]
Kriha, W. u. R. Schmitz: Internet-Security aus Software-Sicht,
Springer-Verlag Berlin Heidelberg New York, 2008
[B_KUNIC1]
Kunick, S.: PostgreSQL und Windows, Books on Demand
GmbH, Norderstedt, 2008
[B_KUNZx1]
Kunz C. u. S. Esser: PHP-Sicherheit, dpunkt.verlag GmbH
Heidelberg, 2008, 3. Auflage
- 90 -
II. Literaturverzeichnis
[B_LEMAY1]
Lemay, L. u. R. Cadenhead: Java 2 in 21 Tagen, Mark+Technik
Verlag, 2003, 1. Auflage
[B_LONEY1]
Loney, Kevin u. B. Bryla: QRACLE DATABASE 10g DBAHandbuch, Carl Hanser Verlag Münschen Wien, 2006
[B_MARTI1]
Martius, K.: Sicherheitsmanagement in TCP/IP-Netzen, Vieweg
& Sohn Verlagsgesellschaft mbH, 2000
[B_MEINE1]
Meinel, C. u. H. Sack: WWW, Springer-Verlag Berlin Heidelberg
New York, 2004
[B_MOMJI1]
Momjian, B.: PostgreSQL Einführung und Konzepte, AddisonWesley Verlag, 2001, 1. Auflage
[B_RAHMx1]
Rahm, E. u. G. Vossen: Web & Datenbanken, dpunkt.verlag
GmbH Heidelberg, 2003, 1. Auflage
[B_RAMAK1]
Ramakrishnan, R. u. J. Gehrke: Database Management Systems,
The McGraw-Hill Companies, Inc., 2000, Second Edition
[B_RICHT1]
Richter, M.: Identity Management, VDM Verlag Dr. Müller, 2007
[B_SAAKE1]
Saake, G. , A. Heuer u. K.-U. Sattler: Datenbanken:
Implementierungstechniken, mitp-Verlag/Bonn, 2005, 2. Auflage
[B_STÖRL1]
Störl, U.: Backup und Recovery in Datenbanksystemen, B.G.
Teubner GmbH Stutgart/Leipzig/Wiesbaden, 2001, 1. Auflage
[B_SWOBO1]
Swoboda, J. , S. Spitz u. M. Pramateftakis: Kryptographie und ITSicherheit, Vieweg+Teubner Verlag, 2008, 1. Auflage
- 91 -
II. Literaturverzeichnis
[B_ULLEN1]
Ullenboom, C.: Java ist auch eine Insel, Galileo Press, 2005
[B_WALTE1]
Walter, T.: Kompendium der Web-programmierung: Dynamische
Web-sites, Springer-Verlag Berlin Heidelberg New York, 2008
[B_ZEHND1]
Zehnder, C. A.: Informationssysteme und Datenbanken, vdf
Hochschulverlag AG, 2005, 8. Auflage
[B_ZWINT1]
Zwintzscher,
O.:
Software-Kopomemten
im
Überlick:
Einführung, Klassifizierung und Vergleich von JavaBeans, .Net,
EJBs, Corba, UML2 , W3l, 2004, 1. Auflage
Internet [I_XXXXX9]
[I_ANONY1]
anonym-surfen.com
(2003-2009):
Datenschutz,
URL:
http://www.anonym-surfen.com/datenschutz/definitiondatenschutz/, 02.07.2009
[I_BREAC1]
Breach Security, Inc. (Feb. 2009): THE WEB HACKING
INCIDENTS
DATABASE
2008,
URL:
http://www.breach.com/resources/whitepapers/downloads/WP_W
ebHackingIncidents_2008.pdf, 03.08.2009
[I_BROMB1]
Bromba, Dr. M. (11.06.2009): BIOIDENTIFICATION, URL:
http://bromba.com/faq/biofaqe.htm, 06.09.2009
[I_BSIxx1]
Bundesamt
(Unbekannt):
für
Sicherheit
in
der
Startseite,
Informationstechnik
URL:
https://www.bsi.bund.de/cln_164/DE/Home/home_node.html,
02.05.2009
- 92 -
II. Literaturverzeichnis
[I_BSIFB1]
BSI für Bürger (2009): IT-Sicherheit, URL: http://www.bsi-fuerbuerger.de/, 01.06.2009
[I_BSIGx1]
Bundesamt
für
Sicherheit
in
der
Informationstechnik
(14.04.2009): Gesetz zur Stärkung der Sicherheit in der
Informationstechnik
des
Bundes,
URL:
https://www.bsi.bund.de/cae/servlet/contentblob/639500/publicati
onFile/36134/bsiges2009_pdf.pdf, 02.05.2009
[I_BSIGS1]
Bundesamt für Sicherheit in der Informationstechnik (2009): IT
Grundschutz,
URL:
https://www.bsi.bund.de/cln_164/sid_4D1B812CB46B94E2381D
2615CB4BF244/DE/Themen/ITGrundschutz/itgrundschutz_node.
html, 02.05.2009
[I_BSILF1]
Bundesamt für Sicherheit in der Informationstechnik (2009):
Leitfaden
Informationssicherheit,
URL:
https://www.bsi.bund.de/cae/servlet/contentblob/540280/publicati
onFile/34672/GS-Leitfaden_pdf.pdf, 02.05.2009
[I_BSISL1]
Bundesamt
für
Sicherheit
in
der
Informationstechnik
(Unbekannt): SSL; Studie und Umsetzungskonzept, URL:
https://www.bsi.bund.de/cln_134/DE/Themen/weitereThemen/Ve
rwaltungsPKIVPKI/Wurzelzertifizierungsstelle/SSL/ssl_node.htm
l, 10.09.2009
[I_CAMPU1]
CampusSource
(26.02.2004):
Open
Source,
URL:
http://www.campussource.de/opensource/, 27.08.2009
- 93 -
II. Literaturverzeichnis
[I_COTSE1]
Cotse.Net
(Unbekannt):
Word
Lists,
URL:
http://www.cotse.com/tools/wordlists.htm, 03.10.2009
[I_DEUTS1]
Deutschland sicher im Netz e.V., Berlin (2009): Digitale
Zertifikate,
URL:
https://www.sicher-im-
netz.de/unternehmen/160.aspx, 10.09.2009
[I_DEUTS2]
Deutschland
Elektronische
sicher
im
Netz
Signatur,
e.V.,
URL:
Berlin
(Unbekannt):
https://www.sicher-im-
netz.de/unternehmen/159.aspx, 10.09.2009
[I_ENGEL1]
Engelmann, K. und L. Böhringer (13.07.2004): IT Security
Seminar,
URL:
http://fara.cs.uni-
potsdam.de/~engelman/8.%20Semester/IT%20Security/Vortrag/p
df/IT%20Security%20Seminar.pdf, 21.07.2009
[I_ESSER1]
Esser, S. (2006-2007): Suhosin, URL: http://www.hardenedphp.net/suhosin/, 10.09.2009
[I_FACHH1]
Fachhochschule Nordwestschweiz (25.03.2009): DatenbankArchitektur,
URL:
http://web.fhnw.ch/plattformen/dbarc/modulunterlagen/dbarcdac-mac.pdf, 28.07.2009
[I_GREEN1]
Green, R. (2009): signed Applets : Java Glossary, URL:
http://mindprod.com/jgloss/signedapplets.html, 15.06.2009
[I_HENNE1]
Hennebrueder, S. (06.03.2007): Java EE Application Security,
URL:
http://www.laliluna.de/download/java-security-tutorial-
de.pdf, 15.06.2009
[I_HILKE1]
Hilkenbach, Dr. R. (11.01.2002): Server Side Includes (SSI),
URL: http://www.netztrainer.de/ssi/ssi.html, 15.06.2009
- 94 -
II. Literaturverzeichnis
[I_HTWDD1]
HTW
Dresden
(Unbekannt):
Grundlagen,
URL:
http://wwwmi.informatik.htw-dresden.de/wbtds2/application/grundlagen/grundlagen.pdf, 12.07.2009
[I_HTWDD2]
HTW Dresden (Unbekannt): Semantische Integrität, URL:
http://wwwmi.informatik.htw-dresden.de/wbtds2/application/semantisch/semantisch.pdf, 12.07.2009
[I_HTWDD3]
HTW
Dresden
(Unbekannt):
Ablaufintegrität,
URL:
http://wwwmi.informatik.htw-dresden.de/wbtds2/application/operational/operational.pdf, 12.07.2009
[I_HTWDD4]
HTW
Dresden
(Unbekannt):
Physische
Integrität,
URL:
http://wwwmi.informatik.htw-dresden.de/wbtds2/application/physisch/physisch.pdf, 12.07.2009
[I_INSTI1]
Institut für Internet-Sicherheit (Unbekannt): Verschlüsselung mit
TLS/SSL,
URL:
http://www.internet-sicherheit.de/forschung/
aktuelle-forschungsprojekte/internet-fruehwarnsysteme/
ergebnisse/verschluesselung-mit-tlsssl/, 06.09.2009
[I_INTER1]
Internet
Security
Zone
(2009):
Glossary,
URL:
http://www.internetsecurityzone.com/Glossary, 26.06.2009
[I_JOOML1]
Joomla! Deutschlang (2005 - 2009): Joomla! …because open
source matters, URL: http://www.joomla.de/, 20.08.2009
[I_KLEIJ1]
Kleijn,
A.
(25.07.2006):
Open-Source-Lizenzen,
URL:
http://www.heise.de/open/Open-Source-Lizenzen--/artikel/75786,
27.08.2009
- 95 -
II. Literaturverzeichnis
[I_LEITE1]
Leitenmüller, H. (2000/2001): JSP- Java Server Pages, URL:
http://www.ssw.unilinz.ac.at/Teaching/Lectures/Sem/2000/Leitenmueller/,
16.06.2009
[I_MACKx1]
Mack , H. (1999): Sicherheit in Java und ActiveX, URL:
http://www.secorvo.de/publikationen/javaactx.pdf, 15.06.2009
[I_MARSC1]
Marschke, E. (31.08.2004): Apache 2, OpenSSL und HTTPS:
server- und Client- Authentifizierung mit Zertifikaten über
verschlüsselte
Internet-Verbindungen,
URL:
http://www.marschke.info/admin/ap_opssl_https.html, 14.09.2009
[I_MICRO1]
Microsoft
(09.11.2004):
Beschreibung
von
ActiveX-
Technologien, URL: http://support.microsoft.com/kb/154544/de,
10.09.2009
[I_MICRO2]
Microsoft
(2009):
ASP.NET-Sicherheitsarchitektur,
URL:
http://msdn.microsoft.com/de-de/library/yedba920(VS.80).aspx,
16.06.2009
[I_OPENS1]
OpenSSL (Unbekannt): Welcome to the OpenSSL Project, URL:
www.openssl.org, 10.09.2009
[I_PFAHL1]
Pfahler, P. und M. Thies (2009): Skriptsprachen, URL: http://agkastens.upb.de/lehre/material/skriptsprachen/folien.html,
10.09.2009
[I_PHPGR1]
The PHP Group (2001-2009): php, URL: http://php.net/,
10.09.2009
- 96 -
II. Literaturverzeichnis
[I_PLANE1]
PlaNet-ET Konsortium (Unbekannt): Zugriffskontrolle, URL:
http://e-campus.uibk.ac.at/planet-et-fix/M9/details/3008_ac.htm,
07.09.2009
[I_POSTG1]
PostgreSQL
Global
Development
Group
(1996-2009):
PostgrSQL, URL: http://www.postgresql.org/, 10.09.2009
[I_POSTG2]
PostgreSQL Global Development Group (1996-2009): pgcrypto,
URL:
http://www.postgresql.org/docs/8.3/static/pgcrypto.html#
PGCRYPTO-WITH-WITHOUT-OPENSSL, 19.09.2009
[I_SCHMU1]
Schmuhl, F. u. S. Schneemann (28.11.2006): Biometrische
Authentifizierungsverfahren in der Mediensicherheit, URL:
http://www.sebastianschneemann.de/userfiles/file/mesihandout.pdf, 10.09.2009
[I_SECFO1]
SecurityFocus (02.02.2005): Apache 2 with SSL/TLS: Step-byStep,
Part
2,
URL:
http://securityfocus.com/infocus/1820,
14.09.2009
[I_SECNE1]
SecureNet (01.08.2006): Sicherheit von Webanwendungen, URL:
https://www.bsi.bund.de/cae/servlet/contentblob/476464/publicati
onFile/30642/WebSec_pdf.pdf, 14.06.2009
[I_SELFH1]
selfhtml.org
(2007):
ActiveX
und
HTML,
URL:
http://de.selfhtml.org/intro/technologien/activex.htm, 15.06.2009
[I_SOFTE1]
Softed Systems (2009): Wie funktioniert HTTPS?, URL:
http://www.softed.de/fachthema/https.aspx, 31.07.2009
[I_STELL1]
Steller,
H.
(2003):
Java-Servlets,
URL:
http://www.ag-
nbi.de/lehre/03/S_WST/Referate/servlets.pdf, 16.06.2009
- 97 -
II. Literaturverzeichnis
[I_SUNJA1]
Sun
Microsystems,
Inc.
(Unbekannt):
Applets,
URL:
http://java.sun.com/applets/, 10.09.2009
[I_SUNJS1]
Sun Microsystems, Inc. (Unbekannt): Java Servlet Technology
Overview,
URL:
http://java.sun.com/products/servlet/overview.html, 27.08.2009
[I_SUNSA]
Sun Microsystems, Inc. (1997-1999): Java Security Architecture,
URL:
http://java.sun.com/j2se/1.4.2/docs/guide/security/spec/securityspec.doc1.html, 28.08.2009
[I_SUNSP1]
Sun
Microsystems,
Inc.
(Unbekannt):
JavaServer
Pages
Technology, URL: http://java.sun.com/products/jsp/, 10.09.2009
[I_TECHF1]
techFAQ
(Unbekannt):
What
is
a
Smart
Card?,
URL:
http://www.tech-faq.com/smart-card.shtml, 06.09.2009
[I_ZIRNx1]
Zirn , C. (17.01.2005): (Verteilte) Denial-of-Service-Angriffe und
Gegenmaßnahmen,
URL:
http://pvs.informatik.uni-
heidelberg.de/Teaching/CSFP-0506/zirn.pdf, 18.06.2009
Zeitschriften und Reports [Z_XXXXXX]
[Z_CT0209]
Rütten,
C.,
Schön
kompliziert,
c’t
–
Magazin
für
Computertechnik, 02/2009, S. 86f
[Z_CT0609]
Arbeiter, S. u. Deeg M., Bunte Recjemlmecjte, c’t – Magazin für
Computertechnik, 06/2009, S. 204ff
- 98 -
II. Literaturverzeichnis
[Z_ALTMAI]
Altmaier, M., V. Brendler, S. Hagemann, H.-J. Herbert, B.
Kienzler, C. M. Marquardt, H. C. Moog, V. Neck, A. Richter, W.
Voigt
u.
S.
Wilhelm,
THEREDA
–
Ein
Beitrag
zur
Langzeitsicherheit von Endlagern nuklearer und nichtnuklearer
Abfälle,, Internationale Zeitschrift für Kernenergie, 53 (2008),
S. 249-253
Sonstiges [S_XXXXX9]
[S_FRITZ1]
Fritzsche,
H.,
Informationssicherheit:
Script
zur
Lehrveranstaltung, HTW Dresden, SS 2008
[S_MÜNZB1]
Münzberg, M., Konzeptioneller Entwurf und prototypische
Realisierung
einer
Datenbanklösung
für
chemische
Risikoanalysen, HTW Dresden, 06.08.2007
- 99 -
Eidesstattliche Erklärung
Hiermit erkläre ich, dass ich die von mir am heutigen Tag eingereichte Diplomarbeit
selbstständig verfasst und ausschließlich die angegebenen Hilfsmittel benutzet habe.
__________________________
Mathias Herzog
Leipzig, den 02.11.2009