ENTWICKLUNG EINES WEBBASIERTEN INSTITUTSINFORMATIONSSYSTEMS



Ähnliche Dokumente
Informatik für Ökonomen II HS 09

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Bedienungsanleitung für den SecureCourier

Step by Step Webserver unter Windows Server von Christian Bartl

Schwachstellenanalyse 2012

FTP-Leitfaden RZ. Benutzerleitfaden

Guide DynDNS und Portforwarding

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Sparkasse Duisburg. versenden aber sicher! Sichere . Anwendungsleitfaden für Kunden

Datensicherung. Beschreibung der Datensicherung

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Installationsanleitung für pcvisit Server (pcvisit 15.0)

BAYERISCHES STAATSMINISTERIUM DES INNERN

Kundeninformationen zur Sicheren

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Import des persönlichen Zertifikats in Outlook 2003

Sichere Kommunikation mit Ihrer Sparkasse

SANDBOXIE konfigurieren

Adminer: Installationsanleitung

COMPUTER MULTIMEDIA SERVICE

Comtarsia SignOn Familie

Installationsanleitung für pcvisit Server (pcvisit 12.0)

Herzlich willkommen zum Kurs "MS Outlook Verschlüsseln und digitales Signieren von Nachrichten

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

-Verschlüsselung mit S/MIME

Befundempfang mit GPG4Win

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Sichere s. Kundeninformation zur Verschlüsselung von s in der L-Bank

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

Sichere Kommunikation mit Ihrer Sparkasse

vorab noch ein paar allgemeine informationen zur d verschlüsselung:

Installationsanleitung SSL Zertifikat

FrogSure Installation und Konfiguration

Programmiertechnik II

Anleitung zur Installation von Thunderbird

Lizenzen auschecken. Was ist zu tun?

Import des persönlichen Zertifikats in Outlook Express

Thunderbird Portable + GPG/Enigmail

Leitfaden zur Nutzung von binder CryptShare

Handbuch für Nutzer von Zertifikaten der Zertifizierungsstellen (CAs) des Bayerischen Behördennetzes (BYBN) zur Sicherung von s Teil D7:

Benachrichtigungsmöglichkeiten in SMC 2.6

Beschreibung und Bedienungsanleitung. Inhaltsverzeichnis: Abbildungsverzeichnis: Werkzeug für verschlüsselte bpks. Dipl.-Ing.

OP-LOG

Secure Mail der Sparkasse Holstein - Kundenleitfaden -

Allgemeine Erläuterungen zu

Lokale Installation von DotNetNuke 4 ohne IIS

Web Interface für Anwender

managed PGP Gateway Anwenderdokumentation

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Sparkasse Vogtland. Secure Datensicherheit im Internet. Kundenleitfaden. Sparkasse Vogtland. Kundeninformation Secure 1

Sichere für Rechtsanwälte & Notare

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

Migration NVC 5.x auf NEM/NPro (Migration eines bestehenden, produktiven NVC Verteilservers auf NEM/NPro)

Anleitung Captain Logfex 2013

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

KEIL software. Inhaltsverzeichnis UPDATE. 1. Wichtige Informationen 1.1. Welche Änderungen gibt es?

-Verschlüsselung

Ablaufbeschreibung für das neu Aufsetzen von Firebird und Interbase Datenbanken mit der IBOConsole

Verteilte Systeme Unsicherheit in Verteilten Systemen

Informations- und Kommunikationsinstitut der Landeshauptstadt Saarbrücken. Upload- / Download-Arbeitsbereich

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Einrichten eines MAPI- Kontos in MS Outlook 2003

Verteilte Systeme. Übung 10. Jens Müller-Iden

Sparkasse Jerichower Land

WordPress lokal mit Xaamp installieren

4D Server v12 64-bit Version BETA VERSION

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

Live Update (Auto Update)

Merkblatt: Sichere -Kommunikation zur datenschutz cert GmbH

Windows 8 Lizenzierung in Szenarien

Infrastruktur: Vertrauen herstellen, Zertifikate finden

Lizenzierung von System Center 2012

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

So nutzen Sie die HiDrive App mit Ihrem Android Smartphone

Patch Management mit

How to install freesshd

-Verschlüsselung mit Geschäftspartnern

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Öffnen Sie den Internet-Browser Ihrer Wahl. Unabhängig von der eingestellten Startseite erscheint die folgende Seite in Ihrem Browserfenster:

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Leitfaden zur Nutzung des System CryptShare

Eigenen WSUS Server mit dem UNI WSUS Server Synchronisieren

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

Verschlüsselung mit PGP. Teil 1: Installation

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

0. VORBEMERKUNG VORBEREITUNG DES SYSTEMS INSTALLATION UND KONFIGURATION VON PD-ADMIN Installation...3

Webseiten im PHYSnet. PHYSnet-RZ 9. Mai 2011

COSIDNS 2 ISPconfig3. Version 0.1 ( )

Kurzanleitung zum Einrichten des fmail Outlook Addin

Abruf und Versand von Mails mit Verschlüsselung

Hochschulrechenzentrum. chschulrechenzentrum #96. Freie Universität Berlin

Transkript:

ENTWICKLUNG EINES WEBBASIERTEN INSTITUTSINFORMATIONSSYSTEMS unter besonderer Berücksichtigung der Websicherheit eingereicht von: Nenad Jovanovic DIPLOMARBEIT zur Erlangung des akademischen Grades Magister rerum socialium oeconomicarumque Magister der Sozial- und Wirtschaftswissenschaften (Mag. rer. soc. oec.) Fakultät für Wirtschaftswissenschaften und Informatik, Universität Wien Fakultät für Technische Naturwissenschaften und Informatik, Technische Universität Wien Studienrichtung: Wirtschaftsinformatik Begutachterin: o. Univ.-Prof. Mag. Dipl.-Ing. Dr. Gerti Kappel Wien, im 24. Oktober 2004

Eidesstattliche Erklärung Ich erkläre an Eides statt, daß ich die vorliegende Arbeit selbständig und ohne fremde Hilfe verfaßt, andere als die angegebenen Quellen nicht benützt und die den benutzten Quellen wörtlich oder inhaltlich entnommenen Stellen als solche kenntlich gemacht habe. Wien, 24. Oktober 2004

Kurzfassung Im Rahmen einer Kooperation dreier Diplomarbeiten (Alexander Heumayer, Nenad Jovanovic, Andrea Schauerhuber) wurde mit Hilfe des Open-Source-Produkts LAMP (der Kombination aus dem Betriebssystem Linux, dem Webserver Apache, dem Datenbank-Managementsystem MySQL und der Programmiersprache PHP) in der Ausführung der Apache Friends ein für die Arbeitsgruppe BIG (Technische Universität Wien) maßgeschneidertes Webinformationssystem entwickelt. Über das World Wide Web werden dabei den Studierenden sowie den Mitarbeitern der Arbeitsgruppe verschiedenste Dienste zur Verfügung gestellt. Die vorliegende Diplomarbeit befaßt sich neben der Implementierung des Informationssystems mit der praktischen Frage, welchen Punkten Aufmerksamkeit geschenkt werden muß, um das System weitgehend gegen Angriffe über das Internet zu schützen. Dabei werden folgende wesentlichen Aspekte der Websicherheit beleuchtet: - Installation und Update eines abgesicherten LAMP-Systems - Konfiguration von MySQL, Apache und PHP - Rechtevergabe auf Datenbank-Ebene - Eingabeüberprüfungen in PHP - Sichere und komfortable Registrierung von Studenten über das Web - Authentifizierung in PHP und die richtige Verwendung gesicherter Verbindungen über SSL - Versenden signierter und verschlüsselter E-Mails über PHP Im Rahmen der Diplomarbeit wurden neben einer Reihe von PHP- Beispielprogrammen auch Shell-Scripts erstellt, die sowohl die Installation als auch das Einspielen von Updates weitgehend automatisieren und vereinfachen sollen. Diese Skripts und Programme sind gemeinsam mit dem implementierten Informationssystem auf beiliegender CD zu finden.

Abstract In a cooperation of three diploma theses (Alexander Heumayer, Nenad Jovanovic, Andrea Schauerhuber) a web information system for the Business Informatics Group (Technical University of Vienna) was developed on the basis of the Apache Friends version of LAMP (which is the combination of the Linux operating system, the Apache web server, the MySQL database management system and the PHP programming language). It offers various services to students and staff members over the World Wide Web. Apart from the implementation of the information system, this diploma thesis points out what has to be done in order to protect the system against attacks originating from the Internet. The following aspects of Web security are addressed: - Installing and updating a secure LAMP system - Configuring MySQL, Apache and PHP - Granting permissions on the database level - Performing input checks in PHP - Secure and comfortable registration of students over the Web - Authentication in PHP and the correct usage of SSL connections - Sending signed and encrypted e-mails with PHP This diploma thesis also contains several PHP demonstration programs and a number of shell scripts that serve the purpose of simplifying and automating the installation and update procedures. These programs and scripts as well as the implemented information system can be found on the attached CD.

Inhaltsverzeichnis 1. Einleitung... 1 2. Theoretische Grundlagen... 5 2.1 Zum Begriff Sicherheit... 5 2.2 Vertrauenswürdige IT-Systeme... 7 2.3 Sicherheitsmechanismen... 8 2.3.1 Verschlüsselung... 8 2.3.2 Authentifizierung... 12 2.3.3 Autorisierung... 13 2.3.4 Beweissicherung... 15 2.4 Angriffsarten... 15 2.4.1 Passive Angriffe... 16 2.4.2 Aktive Angriffe... 16 3. Anwendung von Sicherheitsprinzipien in LAMP... 18 3.1 Installation und Update... 18 3.1.1 Bedienungsanleitung... 19 3.1.2 Hinter den Kulissen... 21 3.2 Konfiguration... 22 3.2.1 Apache... 22 3.2.2 MySQL... 36 3.2.3 PHP... 38 3.3 Rechtevergabe auf Datenbank-Ebene... 44 3.3.1 Rechteverwaltung von MySQL... 44 3.3.2 Faustregeln für die Rechteverwaltung... 47 3.3.3 Datenbankbenutzer des Web-Informationssystems... 48 3.4 Programmierung in PHP... 54 3.4.1 Eingabeüberprüfungen... 54 3.4.2 Registrierung... 60 3.4.3 Authentifizierung... 62 3.4.4 Signierte und verschlüsselte E-Mails... 65 4. Funktionalität des Institutsinformationssystems... 66 5. Zusammenfassung und Ausblick... 69

6. Literaturverzeichnis... 75 A. Anhang... 81 A.1 Inhalt der CD... 81 A.2 Verwendete Hard- und Software... 82

Kapitel 1 Einleitung Mit dem rasanten Aufschwung des Internets und seiner wichtigsten Anwendung, dem World Wide Web (kurz Web genannt), sind nicht nur die von ihm gebotenen Möglichkeiten zahlreicher und vielfältiger geworden, sondern auch die von ihm ausgehenden Gefahren. Es vergeht kein Tag ohne Meldungen über neu entdeckte Sicherheitslücken in verschiedensten, oft auch sehr weit verbreiteten Anwendungen und Betriebssystemen, die für Angriffe auf Webserver mißbraucht werden können. Solche Angriffe reichen von zeitweiligen Ausfällen der betroffenen Server bis hin zu deren kompletten Übernahme. Selbst kleine Webauftritte bleiben angesichts automatisierter Exploit-Programme, die im Gießkannenprinzip ganze Adreßbereiche des Internets durchforsten, vor solchen Bedrohungen nicht vorschont. Die daraus resultierende Verunsicherung, die vor allem weniger erfahrenen Webadministratoren zu schaffen macht, wird durch die Tatsache verschärft, daß die Quellen zu sicherheitsrelevanten Themen weit verstreut sind und jeweils nur eine relativ kleine Anzahl spezieller Probleme behandeln. Einen Leitfaden, der alle erforderlichen Maßnahmen zur Erstellung einer sicheren Webanwendung behandelt, sucht man momentan vergebens. Und genau diese Lücke versucht die vorliegende Diplomarbeit zumindest teilweise zu schließen - kurz gesagt, es wird die Antwort auf folgende praktische Frage gegeben:

Einleitung 2 Was muß im Lauf der Entwicklung und während des Betriebs eines auf LAMP 1 basierenden Web-Informationssystems getan werden, um es gegen Angriffe über das Internet zu schützen? Ebendiese Frage stellte sich auch während der gemeinsamen Entwicklung des Web- Informationssystems für die Arbeitsgruppe BIG an der Technischen Universität Wien, die einen bedeutenden Teil dieser sowie der Diplomarbeiten meiner beiden Teamkollegen ausmacht (siehe [Heum04] und [Scha04]). Ein Überblick über die dabei zur Verfügung gestellten Dienste findet sich in Kapitel 4, Funktionalität des Institutsinformationssystems. Zum Zweck der Beantwortung dieser Frage wird im weiteren Verlauf der Arbeit folgende Herangehensweise angewendet. Zunächst werden in Kapitel 2, Theoretische Grundlagen, allgemeine sicherheitsbezogene Konzepte vorgestellt. Ausgehend von dieser Basis wird in Kapitel 3, Anwendung von Sicherheitsprinzipien in LAMP, zur Bearbeitung folgender wesentlicher Aspekte der Websicherheit übergegangen: Installation und Update Dank des sorgfältig geschnürten LAMP-Pakets der Apache Friends (www.apachefriends.org) stellen Installation und Update einer nicht abgesicherten Basisversion auch unerfahrene Webadministratoren vor keinerlei Hindernisse. Im Rahmen dieser Arbeit wurden darauf aufbauende Shell-Scripts erstellt, die darüber hinausgehend die Absicherung effizienter und komfortabler gestalten sollen, als dies händisch der Fall wäre. Konfiguration Die Standard-Konfigurationen von Apache, MySQL und PHP sind im Sinne eines unproblematischen Einstiegs in die Entwicklung recht liberal gehalten, was sie allerdings unsicher und damit für den Produktivbetrieb ungeeignet machen. Welche Optionen dafür verantwortlich sind und wie sie eingestellt werden sollten, wird in diesem Unterkapitel erläutert. 1 Akronym für die Kombination aus Linux, Apache, MySQL und PHP; in Zusammenarbeit mit Perl auch als LAMPP bezeichnet

Einleitung 3 Rechtevergabe auf Datenbank-Ebene Neben der grundlegenden Konfiguration von MySQL muß bei der Erstellung datenbankbasierter Anwendungen darauf geachtet werden, daß eine unbemerkte Sicherheitslücke in einem Teil der Anwendung nicht zur Kompromittierung der gesamten Datenbank führt. Dies kann mit Hilfe einer wohldurchdachten Rechtevergabe auf Datenbank-Ebene erreicht werden. Eingabeüberprüfungen Bei der Entwicklung von Webanwendungen gilt das Gegenteil der Unschuldsvermutung: Benutzereingaben sind so lange schuldig, bis ihre Unschuld bewiesen wurde. Zum Bereich der Eingabeüberprüfungen zählen auch Maßnahmen zur Maskierung bestimmter Sonderzeichen, um auf diese Weise Angriffe wie SQL Injection oder Cross Site Scripting abzuwehren. Registrierung Dieser Abschnitt befaßt sich mit der Implementierung einer Registrierung, die Studierenden einerseits eine bequeme Erstellung von Accounts über das Internet ermöglicht und andererseits mit ausreichender Wahrscheinlichkeit garantiert, daß der registrierte Nutzer tatsächlich jener Studierende ist, der er zu sein vorgibt. Authentifizierung Besonders sicherheitskritische Teile von Webanwendungen wie die Authentifizierung sollten keinesfalls von Grund auf neu erfunden werden. Stattdessen sollten bestehende und erprobte Lösungen wie zum Beispiel das Auth-Paket von PEAR verwendet werden. Im Zuge dieser Arbeit wurde die Authentifizierung um die Erkennung und Abwehr von Session Fixation sowie anderen Formen des Session Hijakkings erweitert. Hier wird außerdem über die richtige Verwendung verschlüsselter Verbindungen über SSL informiert. Signierte und verschlüsselte E-Mails Als kleiner Bonus, der im implementierten Web-Informationssystem nicht zum Einsatz kommt, demonstrieren eine Reihe von PHP-Skripts das Versenden signierter und/oder verschlüsselter E-Mails ohne Zuhilfenahme von Mail-Clients wie Mozilla Mail oder Microsoft Outlook.

Einleitung 4 Abschließend wird in Kapitel 4, Funktionalität des Institutsinformationssystems, ein Überblick über die von ihm zur Verfügung gestellten Dienste präsentiert. Was in dieser Diplomarbeit nicht erörtert wird, ist die Absicherung des zugrundeliegenden Betriebssystems (in unserem Fall Linux), da dies den Rahmen bei weitem sprengen würde. Ebensowenig werden Maßnahmen zur Abwehr einer bestimmten Art von Denial-of-Service-Angriffen erläutert, die auf der Überschwemmung des Servers mit einer großen Zahl von Anfragen basiert. Solche Vorkehrungen fallen in den eigenen Untersuchungsbereich des Load Balancing. Wie in vielen sicherheitsbezogenen Abhandlungen nachdrücklich erwähnt wird, kann ein Zustand absoluter Sicherheit niemals erreicht werden. Es irrt der Mensch, solang er strebt (aus Goethes Faust ), und obwohl es sie zu Goethes Zeiten noch nicht gab, trifft dieses Zitat auch auf Entwickler und Administratoren zu. Gleichzeitig suchen Angreifer beständig nach neuen Sicherheitslücken, durch die sie auf Kosten anderer Nutzen ernten können. Dementsprechend ist die Verbesserung bestehender und die Entwicklung neuer Sicherheitsmaßnahmen ein niemals endender Prozeß. Den Verantwortlichen in einem wichtigen Teil dieses Prozesses zur Hand zu gehen, ist Sinn und Zweck der vorliegenden Arbeit.

Kapitel 2 Theoretische Grundlagen 2.1 Zum Begriff Sicherheit Bevor weiter in die Materie eingedrungen wird, ist eine klare Beschreibung des recht weit gefächerten Begriffs Sicherheit notwendig. In Anlehnung an die Klassifikation aus [Pern03] gibt es eine Vielzahl verschiedener Arten von Sicherheit, die sich anhand folgender Kriterien voneinander abgrenzen lassen: - Intention - Art der bedrohten Ressourcen - Art der Bedrohung - Art der Vorkehrungen Im Zuge der weiteren Ausführungen bietet sich auch eine Positionierung jener Art von Sicherheit an, die durch das implementierte Web-Informationssystem garantiert werden soll. Intention Dieses Kriterium gibt an, ob hinter dem herbeigeführten Schaden eine bewußte Absicht steht, oder ob es sich nur um ein Versehen handelt. Als Beispiele können gezieltes Ausspähen auf der einen Seite und unabsichtliches Löschen von Datensätzen auf der anderen genannt werden. Im Englischen besitzen diese beiden unterschiedlichen Ausprägungen von Sicherheit praktischerweise jeweils eigene Bezeichnungen, nämlich Security (Sicherheit bezüglich absichtlicher Angriffe) und Safety (Sicherheit bezüglich unabsichtlicher Angriffe).

Theoretische Grundlagen 6 Für diese Arbeit ist primär Security von Bedeutung, während Safety eher in den Bereich des User Interface Designs fällt, das unbeabsichtigte Aktionen des Anwenders durch eine eingängige Benutzerschnittstelle und sinnvolle Sicherheitsabfragen verhindern kann. Natürlich wurde im Rahmen der Implementierung des Web- Informationssystems auf letzteren Aspekt nicht vergessen. So wird etwa der Benutzer vor der Löschung von Datensätzen konsequent zur Abgabe einer Bestätigung aufgefordert. Art der bedrohten Ressourcen Folgende Ressourcen können Sicherheitsrisiken ausgesetzt sein: - Daten - Software - Hardware - Anlagen Direkt relevant sind die ersten drei Punkte, während Anlagen durch die hier vorgestellten Sicherheitsmaßnahmen nur vor indirekten Auswirkungen geschützt werden können. So kann z.b. der Absturz eines Fahrstuhls verhindert werden, der durch einen sicherheitsbedingten Ausfall der Steuerungssoftware verursacht würde. Art der Bedrohung Dieses Kriterium differenziert nach der Möglichkeit des Verlusts von - Vertraulichkeit von Daten - Integrität von Daten - Verfügbarkeit von Anwendungen und Ressourcen - Originalität von Anwendungen Dem lassen sich folgende Arten von Bedrohungen zuordnen: - Spionage - Modifikation von Daten - Denial-of-Service-Angriffe - Raubkopien In der vorliegenden Arbeit kann einzig und allein die Bedrohung durch Raubkopien vernachlässigt werden, da es sich bei den verwendeten Technologien durchgehend um Produkte der Open-Source-Bewegung handelt und der darüber hinaus erstellte Code ebenfalls unentgeltlich für die Öffentlichkeit zugänglich ist.

Theoretische Grundlagen 7 Art der Vorkehrungen Schließlich ist noch eine Klassifikation des Sicherheitsbegriffs anhand der Vorkehrungen möglich, die zur Prävention und Eindämmung von Sicherheitsbrüchen eingesetzt werden können (dabei wird unter einem Sicherheitsbruch die erfolgreiche Ausnützung einer Sicherheitslücke verstanden). Zu diesen gehören - Informationstechnische Maßnahmen - Personelle Maßnahmen (Schulungen) - Organisatorische Maßnahmen (Sicherheitsrichtlinien) - Bauliche Maßnahmen Der klare Schwerpunkt der vorliegenden Arbeit liegt hierbei auf den informationstechnischen Maßnahmen. 2.2 Vertrauenswürdige IT-Systeme Nach der Analyse des Sicherheitsbegriffs selbst muß nun klargestellt werden, wodurch sich IT-Systeme auszeichnen, die ein akzeptables Maß an Sicherheit zur Verfügung stellen. [Pern03] führt zu diesem Zweck fünf Grundfunktionen solcher vertrauenswürdiger IT-Systeme an: 1.) Identifikation des Benutzers 2.) Authentifizierung des Benutzers (also der Nachweis der bei der Identifikation angegebenen Identität) 3.) Rechteverwaltung (die systematische Zuordnung von Rechten zu Benutzern) 4.) Rechteprüfung bei jeder getätigten Aktion des Benutzers (greift auf die Daten der Rechteverwaltung zurück) 5.) Beweissicherung (Auditing) im Fall eines Sicherheitsbruchs Die Punkte 1 und 2 sowie 3 und 4 sind dabei so eng miteinander verzahnt, daß sie üblicherweise nicht getrennt voneinander betrachtet werden. Diese Definition ist allerdings nicht vollkommen zufriedenstellend, da sie lediglich auf die Funktionen eines vertrauenswürdigen IT-Systems eingeht (detailliert ausgeführt im folgenden Unterkapitel 2.3, Sicherheitsmechanismen ). Umfassender ist der Ansatz aus [Tane02], der darüber hinaus auch dessen Eigenschaften präzisiert. Die Eigenschaften eines vertrauenswürdigen IT-Systems sind demnach: - Verfügbarkeit (availibility): Die Wahrscheinlichkeit, daß das System zu einem bestimmten Zeitpunkt verwendbar ist.

Theoretische Grundlagen 8 - Verläßlichkeit (reliability): Diese Eigenschaft wird durch den erwarteten Zeitraum beschrieben, in dem das System durchgehend ausfallsfrei seinen Dienst verrichtet. - Sicherheit (safety): Wenn ein sicheres System einen vorübergehenden Funktionsausfall erleidet, dürfen keine katastrophalen Auswirkungen daraus resultieren (was z.b. von Steuerungssystemen in Atomkraftwerken erwartet werden darf). - Vertraulichkeit (confidentiality): Entsprechend markierte Informationen dürfen nur autorisierten Benutzern zugänglich gemacht werden. - Integrität (integrity): Änderungen am System dürfen nur von autorisierten Benutzern durchgeführt werden. 2.3 Sicherheitsmechanismen Gemäß [Tane02] müssen vertrauenswürdige IT-Systeme folgende Sicherheitsmechanismen unterstützen: - Verschlüsselung (encryption) - Authentifizierung (authentication) - Autorisierung (authorization) - Beweissicherung (auditing) Diese vier Mechanismen sind eine Übermenge der im vorigen Unterkapitel beschriebenen Grundfunktionen, da sie zusätzlich die Verschlüsselung berücksichtigen. 2.3.1 Verschlüsselung Im Kontext von Webanwendungen wird hierunter im allgemeinen die Verschlüsselung der Kommunikation zwischen Server und Client verstanden, um die Vertraulichkeit des Datenverkehrs zu gewährleisten. Im folgenden werden zwei prominente Realisierungen dieses Konzepts vorgestellt: Das Versenden verschlüsselter E-Mails mittels OpenPGP bzw. S/MIME sowie das Übertragungsprotokoll SSL. Alle diese Technologien beruhen auf asymmetrischen Verschlüsselungsverfahren (Public-Key- Verfahren). Bezüglich einer Erklärung von asymmetrischen Verschlüsselungsverfahrens wird auf die Literatur verwiesen (z.b. [Ecke04]). OpenPGP und S/MIME Unverschlüsselte E-Mails lassen sich prinzipiell mit Postkarten vergleichen. Sie sind vor den neugierigen Blicken jener Personen, die sich auf dem Weg zwischen Sender

Theoretische Grundlagen 9 und Empfänger befinden, völlig ungeschützt. Darüber hinaus lassen sich E-Mails ausgesprochen einfach fälschen bzw. nachträglich modifizieren das Fälschen von Postkarten erfordert immerhin das Imitieren der Handschrift des Absenders. Genau diese beiden Schwächen sind es, die durch OpenPGP bzw. S/MIME behoben werden. Sie erlauben die Verschlüsselung der Nachricht, um ihre Vertraulichkeit zu garantieren, sowie das Signieren derselben, um ihre Integrität und Authentizität (Verbindlichkeit) sicherzustellen. Die Erstellung und Verifizierung einer signierten E-Mail verläuft prinzipiell in zwei simplen Schritten: 1.) Der Sender berechnet aus der verfaßten Nachricht eine Prüfsumme, die mit seinem privaten Schlüssel verschlüsselt und gemeinsam mit der Nachricht an den Empfänger verschickt wird. 2.) Der Empfänger verwendet den öffentlichen Schlüssel des Senders, um die beigelegte Prüfsumme zu entschlüsseln. Nun wird eine eigene Prüfsumme über die empfangene Nachricht erstellt und mit dem Ergebnis der Entschlüsselung verglichen. Falls sie identisch sind, stammt die Nachricht tatsächlich vom Inhaber des öffentlichen Schlüssels und wurde auf dem Transportweg nicht verändert. Im allgemeinen fügt der Sender auch seinen öffentlichen Schlüssel (in Form eines Zertifikats, siehe später) der Nachricht hinzu, um dem Empfänger Suchaufwand zu ersparen. Die Verschlüsselung und Entschlüsselung einer E-Mail verläuft auf ähnliche Weise: 1.) Der Sender verschlüsselt die verfaßte Nachricht mit dem öffentlichen Schlüssel des Empfängers und schickt sie weg. 2.) Der Empfänger entschlüsselt die Nachricht mit seinem privaten Schlüssel. Verschlüsselung und Signatur lassen sich auch problemlos kombinieren, wobei die Reihenfolge keine Rolle spielt. Voraussetzung für diese beiden Funktionen ist eine verläßliche Zuordnung öffentlicher Schlüssel zu ihren Inhabern. Grundsätzlich geschieht dies mit Hilfe von Zertifikaten, die einen öffentlichen Schlüssel sowie Angaben zum Besitzer enthalten 1 und von einer vertrauenswürdigen Instanz signiert sind. In der konkreten Umsetzung dieses Prinzips treten die wichtigsten Unterschiede zwischen OpenPGP und S/MIME zu Tage. 1 Der private Schlüssel kann ebenfalls im Zertifikat enthalten sein.

Theoretische Grundlagen 10 S/MIME (Secure MIME, eine Erweiterung des Multipurpose Internet Mail Extensions -Standards, der die Einbettung beliebiger Daten in E-Mails erlaubt) nutzt das X.509-Format für Zertifikate und ist streng hierarchisch strukturiert: Zertifikate werden von speziell für diese Aufgabe verantwortlichen, vertrauenswürdigen Institutionen signiert, den Certificate Authorities (CAs). Da zur Verifikation dieser Signaturen wiederum ein öffentlicher Schlüssel der jeweiligen CA erforderlich ist, sind sogenannte Wurzelzertifikate (selbst signierte Zertifikate der CAs) in vielen Anwendungen wie Browsern und E-Mail-Clients bereits vorinstalliert. Zertifikate werden in verschiedenen Trust-Levels (dementsprechend auch zu verschiedenen Preisen) angeboten, die u.a. von der Art der Registrierung abhängen: So besitzt etwa ein per E- Mail ausgestelltes, meist kostenloses Zertifikat weniger Glaubwürdigkeit als eines, welches das persönliche Vorlegen eines Personalausweises verlangt. OpenPGP (eine Weiterentwicklung von PGP: Pretty Good Privacy) hingegen verwendet ein eigenes Format für Zertifikate und ist dezentral organisiert: Jeder OpenPGP-Anwender kann den Schlüssel eines anderen signieren und damit dafür bürgen, daß dieser Schlüssel tatsächlich dieser Person gehört. Im Unterschied zu S/MIME-Zertifikaten, die nur von einer CA unterzeichnet werden, kann ein OpenPGP-Zertifikat beliebig viele Signaturen enthalten. Daraus ergibt sich im Lauf der Zeit ein Netzwerk des Vertrauens ( Web of Trust ). Um die Dichte dieses Netzes schneller zu vergrößern, können auch zentrale Stellen verwendet werden. So stellt z.b. das magazin für computer technik eine CA zur Verfügung, bei der man sich im Rahmen von Messen und anderen Veranstaltungen unter Vorlage des Ausweises eine Signatur ausstellen lassen kann. S/MIME und OpenPGP sind zueinander inkompatibel, bieten aber gleichwertige Sicherheitsfunktionen. Ein gewisser Vorteil von S/MIME gegenüber seinem Konkurrenten besteht darin, daß es in vielen E-Mail-Clients von Haus aus integriert ist, während für die Verwendung von OpenPGP meist Plug-Ins nachinstalliert werden müssen. Darüber hinaus können X.509-Zertifikate neben der Versendung von sicheren E-Mails auch für andere Zwecke verwendet werden, wie z.b. als Server- Zertifikate für die Bereitstellung verschlüsselter Verbindungen über SSL (siehe nächster Abschnitt). Für weitergehende Informationen siehe [Spie99], [Koss02] und [Heyd03]. Eine praktische Demonstration für das Versenden verschlüsselter und signierter E- Mails über PHP ist auf der beiliegenden CD zu finden, siehe auch Abschnitt 3.4.4, Signierte und verschlüsselte E-Mails.

Theoretische Grundlagen 11 SSL SSL ist ein von Netscape entwickeltes Protokoll, das die Vertraulichkeit und Integrität von Internet-Kommunikation sowie die Authentifizierung des Servers (optional auch des Clients) ermöglicht. Im ISO/OSI Referenzmodell ist es direkt über der Transportschicht (z.b. TCP) angesiedelt und kann daher von höherliegenden Protokollen wie HTTP (man spricht dann von HTTPS) verwendet werden. Hier eine kurze Darstellung der Funktionsweise (siehe auch Abb. 2.1): 1.) Der Client schickt über HTTPS eine Anfrage an den Server. 2.) Der Server antwortet mit seinem X.509-Zertifikat. 3.) Der Client verifiziert dieses Zertifikat und generiert im Erfolgsfall einen Session Key, mit dem der zukünftige Datenverkehr symmetrisch verschlüsselt werden soll. Dieser Session Key wird mit dem öffentlichen Schlüssel des Servers verschlüsselt und zurückgeschickt. 4.) Der Server entschlüsselt den Session Key mit seinem privaten Schlüssel. Beide Kommunikationspartner sind nun im Besitz des gleichen symmetrischen Schlüssels und können damit den eigentlichen Datenverkehr aufnehmen. Abbildung 2.1: Erstellung einer Verbindung über SSL Falls auch die Identität des Clients sichergestellt werden soll, wird seinerseits ebenfalls ein Zertifikat benötigt. Für weitere Details siehe [Nets04a] und [Nets04b]. In Abschnitt 3.2.1, Apache, wird u.a. auf die Installation eines Server-Zertifikats in Apache eingegangen, die die Grundlage für gesicherte Verbindungen darstellt.

Theoretische Grundlagen 12 2.3.2 Authentifizierung Für die Authentifizierung können laut [Pern03] drei verschiedene Techniken zur Anwendung kommen, nämlich Authentifizierung basierend auf - Wissen (z.b. Kenntnis eines Paßworts) - Besitz (physischer Objekte wie z.b. eines Schlüssels oder Personalausweises) - persönlichen Eigenschaften (Fingerabdrücke und andere biometrische Merkmale) Im Fall des vorliegenden Projekts kommt lediglich die erste Variante in Frage, da nur sie eine bequeme und sichere Authentifizierung über das Web ermöglicht. Über eine Verschmelzung der Klassifizierungsmethoden von [Pern03] und [Tane02] kristallisieren sich bezüglich dieser Technik zwei Untergruppen heraus: - Asymmetrische Authentifizierung - Symmetrische Authentifizierung Die Funktionsweise asymmetrischer Authentifizierung wurde bereits in Abschnitt 2.3.1, Verschlüsselung, erläutert. Die symmetrische Authentifizierung hingegen beruht auf der gemeinsamen Kenntnis einer geheimen Information. Hierbei lassen sich weitere Formen differenzieren: - Paßwortverfahren: Diese Methode kommt auch im implementierten Web- Informationssystem zur Anwendung und besitzt vor allem bei Webseiten mit weit gestecktem Benutzerkreis große Popularität. Es setzt voraus, daß der zur Versendung des Paßworts verwendete Kanal abhörsicher ist und der Server seine Identität bereits nachgewiesen hat. Ist auch nur eine dieser zwei Bedingungen nicht erfüllt, kann das Paßwort leicht in falsche Hände geraten. Um das zu verhindern, wird im allgemeinen das SSL-Protokoll eingesetzt. - Challenge-Response-Verfahren: Bei diesem Ansatz wird das Versenden geheimer Informationen umgangen, womit die Voraussetzungen für das Paßwortverfahren hier nicht gegeben sein müssen. Stattdessen wird der zu authentifizierende Kommunikationspartner mit einem zufälligen Datenfragment herausgefordert, welches von ihm mit dem geheimen Schlüssel verschlüsselt und zurückgeschickt werden muß. Damit wird der Nachweis erbracht, daß sich dieser Schlüssel in seinem Besitz befindet. Das einfache Challenge-Response-Verfahren besitzt den Nachteil einer schlechten Skalierbarkeit: Tritt ein neuer Benutzer dem Kommunikationsnetzwerk bei, wird für jeden der bereits existierenden Benutzer ein neuer Schlüssel benötigt. Dieses Problem kann mit Hilfe eines Key Distribution Center etwas entschärft werden, das

Theoretische Grundlagen 13 als Intermediär zwischen Kommunikationspartnern agiert (Details hierzu siehe [Tane02]). 2.3.3 Autorisierung Nachdem ein Benutzer gegenüber dem System seine Identität nachgewiesen hat, muß für jede seiner angeforderten Aktionen überprüft werden, ob er hierzu auch die notwendigen Rechte besitzt. Abstrakt gesprochen geschieht dies mittels eines Reference Monitors, der den Zugriff von Subjekten (dem Benutzer) auf Objekte (die durch die Aktion betroffenen Ressourcen) kontrolliert (siehe Abb. 2.2). Subject Reference monitor Object Request for operation Authorized request Abbildung 2.2: Reference Monitor (aus: [Tane02]) Für die Verwaltung der Zuordnung von Rechten zu Benutzern kann innerhalb eines Reference Monitors aus vier Methoden gewählt werden, die im weiteren Verlauf besprochen werden. Access Control Matrix In diesem einfachsten Ansatz wird eine Matrix erstellt, die spaltenweise die Benutzer des Systems und zeilenweise die Objekte enthält. Pro Benutzer kann somit eingetragen werden, welche Rechte er für das jeweilige Objekt besitzt. In Abb. 2.3 werden die üblichen UNIX-Rechte r (read), w (write) und x (execute) vergeben. Der Nachteil hierbei ist die verschwenderische Platzausnutzung dieser Matrix. Auch wenn einem Benutzer nur für ein bestimmtes Objekt Rechte gewährt werden sollen, bleiben trotzdem auch für alle anderen Objekte leere Felder reserviert. Diese Schwäche ist bei den anderen Methoden behoben.

Theoretische Grundlagen 14 Benutzer 1 Benutzer 2 Benutzer 3... Objekt A r r rw... Objekt B rwx rx... Objekt C rw r.................. Abbildung 2.3: Access Control Matrix Access Control Lists Für jedes Objekt wird eine eigene Liste geführt, in der die Benutzer mit ihren Rechten für dieses Objekt angeführt sind. Benutzer ohne Rechte werden dabei einfach weggelassen, wodurch die Liste auf die notwendigen Einträge beschränkt wird. Bildlich gesprochen, entsprechen Access Control Lists den horizontal zusammengestauchten Zeilen einer gleichwertigen Access Control Matrix. Capabilities Analog zur zeilenweisen Aufteilung einer Access Control Matrix auf Access Control Lists kann die Matrix auch spaltenweise aufgeteilt werden, was bei der Methode der Capabilities der Fall ist. Es existiert also für jeden Benutzer eine eigene Liste, die die Objekte gemeinsam mit den für sie gewährten Rechten enthält. Auch hier werden aus Gründen der Effizienz leere Listenelemente (Objekte, für die man keine Rechte besitzt) weggelassen. Protection Domains Der Ansatz der Protection Domains geht mit dem Ziel der Effizienzsteigerung noch einen Schritt weiter und baut ein hierarchisches Modell aus Gruppen auf, denen einzelne Benutzer je nach Implementierung zugeordnet werden können oder müssen. Somit kann für eine große Anzahl für Benutzern, denen dieselben Rechte zugestanden werden sollen, eine gemeinsame Gruppe verwendet werden. Beispiele hierfür sind die Benutzerverwaltung in Unix und dessen Derivaten, in neueren Windows- Versionen sowie im implementierten Web-Informationssystem, welches die Gruppen Admin, Staff, Studenten und Public unterscheidet.