mathematik und informatik

Werbung
Prof. Dr. Gunter Schlageter et al.
Prof. Dr. Matthias Hemmje
Prof. Dr. Christoph Beierle, Prof. Dr. Gabriele Kern-Isberner
Dr. Stefan Wohlfeil
Modul 31241
Einführung in die InternetTechnologien und
Informationssysteme
01671 Datenbanken I
01873 Daten- und Dokumentenmanagement im Internet
01843 Einführung in wissensbasierte Systeme
01866 Sicherheit im Internet I
LESEPROBE
RR
mathematik
und
informatik
Der Inhalt dieses Dokumentes darf ohne vorherige schriftliche Erlaubnis durch die FernUniversität in Hagen nicht (ganz oder teilweise) reproduziert,
benutzt oder veröffentlicht werden. Das Copyright gilt für alle Formen der Speicherung und Reproduktion, in denen die vorliegenden Informationen
eingeflossen sind, einschließlich und zwar ohne Begrenzung Magnetspeicher, Computerausdrucke und visuelle Anzeigen. Alle in diesem Dokument
genannten Gebrauchsnamen, Handelsnamen und Warenbezeichnungen sind zumeist eingetragene Warenzeichen und urheberrechtlich geschützt.
Warenzeichen, Patente oder Copyrights gelten gleich ohne ausdrückliche Nennung. In dieser Publikation enthaltene Informationen können ohne
vorherige Ankündigung geändert werden.
Prof. Dr. Gunter Schlageter et al.
Kurs 01671
Datenbanken I
LESEPROBE
mathematik
und
informatik
Leseprobe zum Kurs 1671, entnommen aus KE2
3.3
SQL – eine relationale Abfragesprache
In diesem Abschnitt werden wir die Abfragesprache mit der weitesten Verbreitung vorstellen:
SQL.
3.3.1
Grundlegende Sprachelemente von SQL
Nachdem E.F. Codd 1970 den bahnbrechenden Artikel „A Relational Model of Data for
Large Shared Data Banks“ /COD70/ veröffentlicht hatte, begann man im IBM San Jose
Research Laboratory über eine Sprache zu forschen, die dazu geeignet wäre dieses Modell zu
implementieren. Die Sprache wurde SEQUEL genannt, ein Akronym für Structured English
QUEry Language.
Innerhalb eines Forschungsprojektes mit Namen System R entwickelte man ein
Datenbanksystem desselben Namens zu Forschungszwecken. SEQUEL war das
Programmierinterface zu diesem Datenbanksystem. Zwischen 1974 und 1975 wurde diese
Sprache in einem Prototypen implementiert, der wiederum den Namen SEQUEL erhielt. In
den nächsten Jahren wurde eine überarbeitete Version SEQUEL/2 entwickelt Diese Version
der Sprache wurde in SQL umbenannt. 1
Das Projekt System R lief in der Zeit von 1971 bis 1979 und mündete in einem verteilten
Datenbankprojekt mit dem Namen System R* (englisch ausgesprochen „are star“).
In den späten 70er Jahren wurde allgemein bekannt, dass IBM dabei war, ein kommerzielles
DBMS zu entwickeln, das SQL als Sprache benutzen sollte. Als Konsequenz daraus wurde
die Konkurrenz aktiv. Tatsächlich schlug eine kleine Firma mit dem Namen „Relational
Software Inc.“ die große IBM in dem Rennen um die erste Markteinführung eines solchen
Systems. Diese Firma heißt übrigens inzwischen ORACLE und ist seitdem geringfügig
gewachsen. IBM brachte 1981 sein erstes relationales DBMS auf den Markt, damals SQL/DS
genannt. Die erste Version des bekannten DB2 erschien 1983.
Einen rechtlichen Status als Standard erhielt SQL 1986 durch die Veröffentlichung eines
ANSI Standards der Sprache. Bekannt wurde dieser Standard unter dem Kürzel SQL-86. Eine
Überarbeitung erschien 1989 (SQL-89). Größere Änderungen erfolgten 1992 (SQL-92). Viele
Schwachstellen von SQL-86 und SQL-89 wurden in diesem Standard beseitigt. SQL:1999,
die neueste Revision geht weit über die bisherigen Standards hinaus und ist eine Annäherung
an die Möglichkeiten, die neue Datenbanksysteme bieten (können) und die Bedürfnissen ihrer
Benutzer.
In der Zeit von 1992 bis 1999 wurden einzelne Aspekte des zukünftigen Standards SQL:1999
gesondert veröffentlicht. Die erste dieser Veröffentlichungen war der Standard zu SQL/CLI
(Call Level Interface), bekannt als CLI-95. Wahrscheinlich die bekannteste Implementierung
dieses Standards ist ODBC, Open Database Connectivity.
1
Aus dieser Umbenennung rührt der Glaube her, SQL stünde für 'Structured Query Language' und würde
"sequel" ausgesprochen. Laut Standard ist SQL jedoch kein Akronym.
1996 wurde SQL/PSM (Persistent Stored Modules) veröffentlicht. PSM-96, wie der Standard
genannt wurde, legt die Syntax der prozeduralen Logik fest, die auf Serverseite in DBMS
implementiert wird. Dieser Standard war nötig geworden, weil viele kommerzielle DBMS
„Stored Procedures“ anboten, deren Syntax allerdings voneinander abwich.
1998 erfolgte die Veröffentlichung von SQL/OLB (Object Language Bindings), der
beschreibt, wie SQL Statements in JAVA eingebettet werden können. Er basiert auf dem
JDBC Modell und wurde bekannt unter dem Namen OLB-98.
1999 wurde der neue Sprachstandard für SQL angenommen und als SQL:1999 veröffentlicht.
Der Bindestrich ist verschwunden und die Jahreszahl wurde um das Jahrhundert und
Jahrtausend erweitert. Die Verwendung der vierstelligen Jahreszahl entspringt der Y2KUmstellung, die Änderung des Bindestriches in einen Doppelpunkt ist von weitreichenderer
Bedeutung: Sie bezieht sich auf die Normen der ISO, die die Namen der Standards von den
Jahreszahlen der Veröffentlichung durch einen Doppelpunkt trennt, im Gegensatz zur ANSI,
die hierzu eben den Bindestrich benutzt. Dies deutet auf die zunehmende Internationalisierung
des Standardisierungsprozesses hin und die Marginalisierung der ANSI Norm außerhalb der
USA durch das Aufgehen ihrer Normung in der ISO. 2
SQL basiert auf dem relationalen Modell, ist aber keineswegs eine perfekte Abbildung
desselben auf eine Sprache. SQL weicht in einigen Aspekten vom relationalen Modell und
relational vollständigen Sprachen, wie in den vorangegangenen Abschnitten erklärt, ab. Die
meisten Unterschiede stellen Erweiterungen dar, auf die wir später noch eingehen. Der
wichtigste Unterschied betrifft allerdings das grundlegende Objekt relationaler Datenbanken
und des relationalen Modells. SQL arbeitet mit Tabellen, die Duplikate von Zeilen enthalten
können. Dies entspräche Tupeln, die in allen Attributen übereinstimmen, was in Relationen
nicht möglich ist.
Um den Unterschieden zwischen der Sprachregelung in SQL und dem relationalen Modell
Rechnung zu tragen, werden wir in diesem Kapitel folgendermaßen unterscheiden:
Relationales Modell
Relation
Tupel
Attribut
SQL
Tabelle
Zeile
Spalte
(SQL englisch)
(Table)
(Row)
(Column)
An den Stellen, an denen wir uns explizit auf das relationale Modell als Grundlage für SQL
beziehen, werden wir die Sprachregelung des Modells anwenden und dort, wo es um die
Umsetzung in SQL geht, diejenige, die im SQL:1999 Standard benutzt wird.
Neben den Aggregierungsfunktionen, die wir später in diesem Kapitel behandeln werden,
bietet SQL noch eine wichtige Ergänzung gegenüber dem vorgestellten Relationenmodell und
„bloß“ relational vollständigen Sprachen an: sogenannte NULL-Werte. Prinzipiell kann jedes
2
Eine genaue Darstellung der Geschichte der SQL-Normung (die für Entwickler durchaus interessant sein
mag, wenn Sie gezwungen sind mit verschiedenen Implementierungen parallel zu arbeiten) finden Sie in
/MELT02/ im Anhang F. Die Darstellung in diesem Kapitel lehnt sich an die in /MELT02/ an.
Attribut für ein Tupel den Wert NULL annehmen, was (ohne weitere Vereinbarungen)
bedeutet, dass dieser Wert zwar vorgesehen, aber (noch) nicht festgelegt ist. Die Definition
verschiedener Operatoren wurde für NULL-Werte verändert. Es ergibt sich eine ternäre Logik
mit den Werte WAHR (TRUE), FALSCH (FALSE) und UNBEKANNT (UNKNOWN) bzw.
NULL.
Wir werden mit den folgenden Beispielen einen Einblick in die umfassenden Möglichkeiten
der SELECT-Anweisung geben und daran anschließend einige weitere DML- und DDLAnweisungen in SQL vorstellen. 3
Die SELECT-Anweisung
Eine SQL-Abfrage (Query) hat folgende Grundstruktur:
SELECT A1, ..., An
FROM R1, ..., Rn
WHERE Prädikat(R1, ..., Rn).
Die Bedeutung einer solchen Query kann man sich so veranschaulichen: selektiere aus dem
Kreuzprodukt der Relationen R1, ..., Rn alle Tupel, die die Bedingung Prädikat(R1, ..., Rn)
erfüllen, und projiziere die so entstehende Relation auf die Attribute A1, ..., An.
Dabei ist Ai ein Attribut einer der Relationen R1, ..., Rn. Prädikat(R1, ..., Rn) ist eine
Bedingung, die Attributwerte mit Konstanten oder zwei Attributwerte eines Tupels
miteinander vergleicht oder andere Operatoren auf die Attributwerte anwendet; solche
Teilbedingungen können durch die Booleschen Operatoren š (AND) und › (OR) miteinander
verknüpft und mit ¬ (NOT) negiert werden. Als Operanden können in den Prädikaten auch
Mengen auftreten, insbesondere Ergebnismengen, die über andere SQL-Abfragen konstruiert
werden.
Beispiel 3.1: (Gerüst der SELECT-Anweisung)
FINDE DIE BERUFE DER ANGESTELLTEN IN ABTEILUNG 3.
SELECT BERUF
FROM ANGEST
WHERE ABTNR = 3
Hier werden in der Tabelle ANGEST die Tupel mit ABTNR = 3 ermittelt und von diesen
dann die Werte des Attributs BERUF ausgegeben.
Die Ergebnismenge des obigen Beispiels kann doppelte Elemente enthalten.
Zum Aussortieren doppelter Zeilen muss in der SELECT-Klausel das Schlüsselwort Duplikate in SQL
DISTINCT angegeben werden. Der Grund hierfür liegt darin, dass es zusätzlichen
Rechenaufwand kostet, aus jeder Ergebnistabelle Duplikate zu eliminieren, während viele
praktische Anwendungen (insbesondere aber auch die Berechnung von Zwischenergebnissen)
diese Anforderung gar nicht stellen.
3
Traditionell wird SQL häufig in DML (Data Manipulation Language) und DDL (Data Definition
Language) aufgeteilt. Diese Aufteilung findet sich so im Standard nicht wieder. Laut Standard müsste man
eher von SDL (Schema Definition Language), SML (Schema Manipulation Language) und DML sprechen.
Beispiel 3.2: (Aussortieren doppelter Tupel)
Die Abfrage:
FINDE ALLE WOHNORTE DER ANGESTELLTEN.
... lautet in SQL:
SELECT DISTINCT WOHNORT
FROM ANGEST
Die WHERE-Klausel kann hier entfallen, da lediglich die Projektion auf die Spalte
WOHNORT durchgeführt wird und dazu keine Bedingung an die einzelnen Zeilen der
Tabelle ANGEST gestellt werden muss.
Es soll jedoch in diesem Beispiel um den Einsatz des Schlüsselwortes DISTINCT gehen:
Das Ergebnis dieser Abfrage enthält erwartungsgemäß drei Zeilen. Ohne die Angabe von
DISTINCT jedoch wäre die Zeile (Karlsruhe) zweimal enthalten gewesen, also insgesamt
vier Zeilen im Ergebnis (vgl. Beispieldaten aus Beispiel 3.4):
mit DISTINCT
Hagen
ohne DISTINCT
Karlsruhe
Karlsruhe
Hagen
Marburg
Marburg
Karlsruhe
Das zweifache Auftauchen von „Karlsruhe“ widerspricht der Frage nach allen Wohnorten, die
Query ohne DISTINCT entspricht also auch semantisch nicht der Anforderung.
Um Beziehungen zwischen mehreren Relationen zu betrachten, können in der FROM-Klausel
der Abfrage mehrere Tabellen angegeben werden. Über diese Möglichkeit werden in SQL
JOINS realisiert. In der WHERE-Klausel wird deren Verknüpfung untereinander bestimmt.
Beispiel 3.3: (Einfache SELECT-Anweisung I)
FINDE FÜR JEDES PROJEKT DIE PROJEKTNUMMER UND DEN NAMEN DES
PROJEKTLEITERS
SELECT PNR, NAME
FROM PROJEKT, ANGEST
WHERE PROJEKT.P_LEITER = ANGEST.ANGNR
In diesem Beispiel werden Werte aus verschiedenen Tabellen verlangt. Die angegebene
Anweisung wird folgendermaßen ausgeführt:
- Erst Bildung eines Kreuzproduktes der Tabellen PROJEKT und ANGEST,
- Auswertung der WHERE Bedingung und Selektion der Zeilen, die die Bedingung
erfüllen,
- dann Projektion auf die in der SELECT-Klausel angegebenen Spalten.
Man beachte bei diesem Beispiel, dass man die Spalten nicht mit den Namen der
Tabellen qualifizieren muss, weil die Namen der Spalten auch bezogen auf zwei Tabellen
eindeutig sind. Es ist jedoch sinnvoll, die Namen der Tabellen immer mitzuführen.
Beispiel 3.4: (Einfache SELECT-Anweisung II)
Erinnern wir uns an die letzte Abfrage aus Beispiel 3.4:
(siehe auch Beispiel 3.9)
FINDE DIE NAMEN ALLER ANGESTELLTEN, DIE AM PROJEKT MIT DER
NUMMER 17 MITARBEITEN
Als SQL-Abfrage lautet sie:
SELECT ANGEST.NAME
FROM ANG_PRO, ANGEST
WHERE ANG_PRO.PNR = 17 AND
ANG_PRO.ANGNR = ANGEST.ANGNR
In der Tabelle, die sich nach Bildung des JOINS aus ANGEST und ANG_PRO ergibt,
kommt die Spalte ANGNR zweimal vor, weil sie sowohl in ANGEST als auch in
ANG_PRO enthalten ist. In dem WHERE-Teil der Abfrage muss daher jeweils der
Tabellenname vorangestellt werden, um das Attribut eindeutig zu qualifizieren.
In komplizierteren Abfragen wird es in SQL unter Umständen notwendig, Tupelvariablen (im
Standard: 'Correlation Names') einzuführen. Tupelvariablen sind vor allem dann nötig, wenn
in einer Abfrage mehrere verschiedene Tupel derselben Relation gleichzeitig betrachtet
werden sollen. Oder anders ausgedrückt: Tupelvariablen sind immer dann erforderlich, wenn
der JOIN einer Tabelle mit sich selbst gebildet werden soll. Einen solchen Fall demonstriert
das folgende Beispiel:
Beispiel 3.5: (Tupelvariablen in SQL)
Die Abfrage (siehe auch Übung 3.4) ...
GIB DIE NAMEN ALLER PERSONEN AUS, DIE MEHRERE PROJEKTE
LEITEN.
... kann in SQL folgendermaßen dargestellt werden:
SELECT DISTINCT ANGEST.NAME
FROM ANGEST, PROJEKT AS P1, PROJEKT AS P2
WHERE ANGEST.ANGNR = P1.P_LEITER AND
ANGEST.ANGNR = P2.P_LEITER AND
P1.PNR != P2.PNR 4
In dieser Abfrage werden durch FROM ... PROJEKT AS P1, PROJEKT AS P2 zwei
Tupelvariablen für die Tabelle PROJEKT definiert 5. Gemäß der WHERE-Klausel wird
ein Angestellter mit zwei Zeilen (P1 und P2) verbunden, die verschiedene Projekte
repräsentieren (P1.PNR != P2.PNR), wobei der Angestellte aber in beiden Projektleiter
ist (ANGEST.ANGNR= P1.P_LEITER und ANGEST.ANGNR= P2.P1_LEITER).
4
5
'!=' steht in SQL für den mathematischen Vergleichoperator 'z'(„ungleich“) und ist synonym zu '<>'.
Das Schlüsselwort AS ist optional.
Übung 3.1:
Formulieren Sie die Abfrage aus Beispiel 3.23 mit nur einer Tupelvariable.
Übung 3.2:
Formulieren Sie die Abfragen a) bis c) aus Übung 3.4 als SQL-Anweisungen.
Übung 3.3:
Geben Sie an, ob die SQL-SELECT-Anweisung eher Ausdrücken der Relationenalgebra
oder des Relationenkalküls entspricht und begründen Sie dies.
Der SQL-Standard sieht vor, dass JOIN-Operatoren in der FROM-Klausel angegeben werden.
U.a. kann dadurch die Lesbarkeit einer SELECT-Anweisung verbessert werden, weil sich im
Idealfall die Angaben in der WHERE-Klausel auf die gewünschten Eigenschaften der
einzelnen Entitäten (repräsentiert durch die Tupel der Relationen) konzentrieren.
Beispiel 3.6: (JOIN-Operator)
Die Abfrage aus Beispiel 3.21 lautet mit SQL-JOIN-Operator:
SELECT PNR, NAME
FROM PROJEKT JOIN ANGEST
ON P_LEITER = ANGNR
Durch diese Schreibweise wird klar, dass nur der JOIN von PROJEKT und ANGEST
gefragt ist. Bedingungen an die einzelnen Tabellen (etwa: BERUF =
'PROGRAMMIERER') werden nicht gestellt.
Die Abfrage aus Beispiel 3.22 lautet mit SQL-JOIN-Operator:
SELECT NAME
FROM ANGEST NATURAL JOIN ANG_PRO
WHERE PNR = 17
Hier wird deutlicher: Alle Angestellten mit Arbeitsanteilen (NATURAL JOIN) am
Projekt Nummer 17 (WHERE-Klausel) gesucht. Eine weitere Möglichkeit einen
NATURAL JOIN in SQL zu schreiben ist:
SELECT NAME
FROM ANGEST JOIN ANG_PRO
USING ANGNR
WHERE PNR = 17
Das Schlüsselwort USING kann benutzt werden, um ein Attribut für den NATURAL
JOIN explizit anzugeben z.B. wenn mehrere gleichnamige Spalten vorhanden sind. Die
ON bzw. USING Klausel wurde eingeführt, um die JOIN Bedingungen syntaktisch von
den Selektionsbedingungen in der WHERE Klausel zu trennen 6.
6
Wenn Sie ON oder USING benutzen, müssen Sie das Schlüsselwort JOIN zum verbinden der Tabellennamen
verwenden.
Die Abfrage aus Beispiel 3.23 lautet mit JOIN...ON:
SELECT
FROM
DISTINCT NAME
ANGEST
JOIN PROJEKT AS P1 ON ANGNR = P1.P_LEITER JOIN PROJEKT
AS P2 ON ANGNR = P2.P_LEITER
WHERE P1.PNR != P2.PNR
Wiederum werden die verschiedenen JOIN Bedingungen in das JOIN-Statement mit
einbezogen (siehe auch Lösung zu Übung 3.4). Die WHERE-Klausel wird auf den
Vergleich der beiden PNRs reduziert. 7
Beispiel 3.24a: (OUTER JOINS)
Wir erweitern für dieses Beispiel die Tabelle PROJEKT um eine Zeile:
PROJEKT
P_NAME
PNR
P_BESCHR
P_LEITER
DATAWAREHOUSE
12
...
205
INTRANET
18
...
117
PROJEKT 2000
17
...
198
VU
33
...
198
SQL KURS
34
...
NULL
Die Firma in unserem Beispiel hat demnach ein neues Projekt mit dem Namen
'SQL_KURS' initiiert. Das Projekt hat momentan noch keinen Leiter, außerdem sind ihm
noch keine Mitarbeiter zugeordnet. Folgende Anfrage kann mit den bislang betrachteten
JOINS nicht realisiert werden:
FINDE ALLE PROJEKTNAMEN UND DIE NUMMERN DER ZUGEORDNETEN
ANGESTELLTEN
Die QUERY
SELECT PROJEKT.P_NAME, ANG_PRO.ANGNR
FROM PROJEKT NATURAL JOIN ANG_PRO
liefert das Ergebnis
DATAWAREHOUSE
INTRANET
INTRANET
PROJEKT 2000
PROJEKT 2000
VU
205
117
198
112
198
117
Somit geht die Information über das Projekt SQL KURS nicht in das Ergebnis der
Abfrage ein. Um ein korrektes Ergebnis zu erhalten, müssen die Zeilen der Tabelle
7
Bei manchen DBMS müssen Sie die einzelnen JOINs verschachteln
...FROM (JOIN PROJEKT AS P1 ON ANGNR =P1.LEITER) JOIN PROJEKT AS P2....
Projekt, die nicht der JOIN Bedingung entsprechen erhalten bleiben. Hierzu dienen die
OUTER JOINS 8.
x LEFT OUTER JOIN: Es bleiben die nicht der JOIN-Bedingung entsprechenden
Zeilen der Tabelle erhalten, die links (vom Schlüsselbegriff OUTER JOIN) steht.
x RIGHT OUTER JOIN: Es bleiben die nicht der JOIN-Bedingung entsprechenden
Zeilen der Tabelle erhalten, die rechts steht.
x FULL OUTER JOIN: Es bleiben die nicht der JOIN-Bedingung entsprechenden
Zeilen der Tabellen erhalten, die links und rechts stehen.
Zur Verdeutlichung benutzen wir folgende Tabellen 9:
EINS
ZWEI
DREI
a
b
b
c
c
d
a1
b1
b1
c1
c1
d1
a2
b2
b2
c2
c2
d2
a3
NULL
b3
NULL
c3
NULL
Ein INNER JOIN über die Tabellen EINS und ZWEI
SELECT *
FROM EINS JOIN ZWEI
ON EINS.B = ZWEI.B
liefert das Ergebnis:
a1
b1
b1
c1
a2
b2
b2
c2
Ein LEFT OUTER JOIN über die Tabellen EINS und ZWEI
SELECT *
FROM EINS LEFT OUTER JOIN ZWEI
ON EINS.B = ZWEI.B
liefert das Ergebnis
a1
b1
b1
c1
a2
b2
b2
c2
a3
NULL
NULL
NULL
Entsprechend RIGHT OUTER JOIN und FULL OUTER JOIN:
8
9
Im Gegensatz dazu werden die bislang behandelten JOINS als 'INNER JOIN' bezeichnet. Es ist möglich
INNER JOIN explizit in der Query anzugeben (FROM TABELLE1 INNER JOIN TABELLE2).
Die Namen der Tabellen und Spalten sind grau, die eigentlichen Inhalte weiß hinterlegt.
RIGHT OUTER JOIN
FULL OUTER JOIN
a1
b1
b1
c1
a1
b1
b1
c1
a2
b2
b2
c2
a2
b2
b2
c2
NULL
NULL
b3
NULL
a3
NULL
NULL
NULL
NULL
NULL
b3
NULL
OUTER JOINS über mehrere Tabellen muss man in Abweichung von der INNER JOIN
Syntax verschachteln und klammern:
SELECT *
FROM EINS
LEFT OUTER JOIN ZWEI ON EINS.B = ZWEI.B
LEFT OUTER JOIN DREI ON ZWEI.C = DREI.C
Das Ergebnis der Query ist wie folgt:
a1
b1
b1
c1
c1
d1
a2
b2
b2
c2
c2
d2
a3
NULL
NULL
NULL
NULL
NULL
Eine Query, die das richtige Ergebnis zur Frage nach den Projekten und den Angestellten
liefert, ist demnach:
SELECT PROJEKT.P_NAME, ANG_PRO.ANGNR
FROM PROJEKT
LEFT OUTER JOIN ANG_PRO
ON PROJEKT.PNR = ANG_PRO.PNR
Sie liefert folgendes Ergebnis:
DATAWAREHOUSE
INTRANET
INTRANET
PROJEKT 2000
PROJEKT 2000
VU
SQL KURS
205
117
198
112
198
117
NULL
Übung 3.11a:
Formulieren Sie eine Query, die die Namen der Projekte und die Namen und Nummern
von evtl. zugeordneten Mitarbeitern ausgibt.
Die Grundidee hinter dem Outer Join besteht darin, Informationen zu erhalten, die bei einem
Inner Join verloren gehen. Dies passiert weil in einer der beiden Tabellen Zeilen vorhanden
sind, die nach der Join-Bedingung keiner Zeile in der anderen Tabelle entsprechen. Ein Outer
Join bezieht diese Zeilen mit ein und setzt in die Zeilenpositionen einen NULL-Wert, in der
Werte einer passenden Zeile der anderen Tabelle auftauchen würden – wenn es eine passende
Zeile gäbe. Ein Outer Join beinhaltet Zeilen, die ein Inner Join herausfiltert. Sie sollten Outer
Joins benutzen, wenn Sie meinen, dass Informationen sonst verloren gehen könnten.
Prof. Dr. Matthias Hemmje
Kurs 01873
Daten- und
Dokumentenmanagement im
Internet
LESEPROBE
mathematik
und
informatik
LG: Multimedia und Internetanwendungen
Autoren: Anne Brüggemann-Klein, Jörg Keller, Dominic Heutelbeck,
Matthias L. Hemmje
1873
Daten- und Dokumentenmanagement im Internet
Kurseinheit 1:
Das Modell der strukturierten Dokumente
Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere das Recht der Vervielfältigung und Ver-breitung
sowie der Übersetzung und des Nachdrucks, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Kein Teil des Werkes darf in
irgendeiner Form (Druck, Fotokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung der FernUniversität reproduziert
oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
Inhalt
I
Inhalt
Kurseinheit 1 Das Modell der strukturierten Dokumente
Motivation und Einführung ........................................................................................... 3
1
Das Modell der strukturierten Dokumente .................................................................................5
1.1 Der Dokumentenbegriff ........................................................................................................5
1.2 Der Modellbegriff................................................................................................................. 6
1.3 Realisierung des Dokumentenmodells .................................................................................. 7
1.3.1 Dokumente näher betrachtet ....................................................................................... 8
1.3.2 Moderne Textdokumente ............................................................................................ 11
1.3.3 Dokumentenbestandteile ............................................................................................ 13
1.3.4 Dokumente strukturieren ............................................................................................ 15
1.3.5 Vorteile des Dokumentenmodells................................................................................ 16
1.3.6 Verfeinerungen des Dokumentenmodells ................................................................... 17
1.3.7 Strukturdarstellungen ................................................................................................. 18
1.3.8 Diskussion des Dokumentenmodells ........................................................................... 19
1.3.9 Umsetzungen des Dokumentenmodells ...................................................................... 21
1.4 Zeichenkodierungen .......................................................................................................... 26
1.4.1 Übersicht .................................................................................................................... 26
1.4.2 Was gehört zu einer Zeichenkodierung? ......................................................................28
1.4.3 Abstrakter Zeichensatz................................................................................................ 30
1.4.4 Codetabelle ................................................................................................................. 32
1.4.5 Kodierungsformat ....................................................................................................... 37
1.4.6 Kodierungsschema ...................................................................................................... 41
1.4.7 Jenseits von glattem Text – eine Übertragungssyntax .................................................42
1.4.8 Unicode-Werkzeuge ................................................................................................... 44
1.5 Zusammenfassung und Ausblick ........................................................................................ 44
1.6 Anhang: Formate am Beispiel ............................................................................................ 46
1.6.1 Fertig formatiertes Dokument für ein Journal ............................................................. 46
1.6.2 Unformatiertes Dokument mit reinem Text ............................................................... 48
1.6.3 Dokumentdarstellung mit optischer Gliederung ..........................................................50
1.6.4 Struktursicht mithilfe von eingebettetem Markup .......................................................52
1.6.5 Das Dokument im LaTeX-Format ................................................................................56
1.6.6 Prinzipien aus der Informatik .......................................................................................58
1.7 Literatur ............................................................................................................................. 60
1.8 Lösungen der Selbsttestaufgaben...................................................................................... 62
1.9 Index .................................................................................................................................. 66
Kurseinheit 2 – Dokumentbeschreibungssprachen
Inhalt
II
Kurseinheit 3 – Konzepte von XML
Kurseinheit 4 – Transformation, Ontologie und Standard
Das Modell der strukturierten Dokumente
Einleitung
Dies ist die erste Kurseinheit des Kurses 1873 „Daten und Dokumentenmanagement im Internet“. Der Kurs ersetzt den Kurs 1865 „Datenformate im
Internet“ vollständig, baut auf dessen Struktur und Inhalten, die von den
Autoren A. Brüggemann-Klein und J. Keller in vielen Bereichen übernommen
wurden, auf und erweitert und aktualisiert diesen um wesentliche Inhalte aus
dem Bereich der XML-basierten Sprachfamilien. Dank gilt an dieser Stelle dem
Fernstudenten Hartwig Massen für wertvolle Kommentare und Korrekturen zur
vorliegenden Überarbeitung.
Motivation und Einführung
Die adäquate Repräsentation und Präsentation von Daten und Dokumenten
bildet eine wichtige Grundlage für deren effektive Erfassung, Verwaltung,
Austausch, Vermittlung und Nutzung. Die Verwendung geeigneter Standards
erleichtert dabei den Austausch von Daten und Dokumenten zwischen
Menschen, zwischen Menschen und Maschinen sowie zwischen Maschinen.
Solche Standards stellen ein gemeinsames Grundverständnis unabhängig von
einer individuellen Aushandlung von Formaten sicher und ermöglichen damit
auch dynamische und wechselnde Kooperationsbeziehungen, die in unserer
durch das Internet global vernetzten und sich kontinuierlich veränderten Welt an
Bedeutung gewinnen.
Der Schwerpunkt dieses Kurses
Ein wichtiges Ziel des Kurses ist es, in die Anwendung und aktuelle Entwicklung
von verteilten Faktendatenbanken und Dokumentdatenbanken einzuführen
sowie Kenntnisse zu allgemein strukturierten Dokumentenkollektionen für das
Internet unter Nutzung des World Wide Web zu vermitteln. Zunächst werden
allgemeine Formate für Dokumente sowie für strukturierte Dokumente, die im
Internet verfügbar sind vorgestellt. Der Dokumentenbegriff wird erläutert und
das Modell der strukturierten Dokumente eingeführt. Als übergreifendes
Format, das die Definition konkreter Websprachen wie XHTML erlaubt, nimmt
die Extensible Markup Language zusammen mit Dokumententypdefinitionen
und den „Satelliten“-Standards XML-Schema, XPath, XPointer, XLink und
XQuery eine zentrale Stellung ein. Ihre Darstellung bildet einen weiteren Kern
des Kurses. Der Kurs beinhaltet auch eine Einführung in die Praxis dynamischer
Webdokumente. Als Stichworte seien hier XSLT genannt und für spätere
Versionen des Kurses evtl. noch CGI, Dynamic HTML, JavaScript, SAX und Dom,
sowie eher Service-orientierte Ansätze auf Basis der gerade entstehenden Web
3
4
2.0-Technologien wobei auch näher auf HTML und CSS sowie auf Ontologie
eingegangen werden wird.
Lernziele
Das hauptsächliche Lernziel dieses Kurses ist der Erwerb von praktischer
Kompetenz und Handlungsfähigkeit im Bereich der aktuellen Daten- und
Dokumentenmanagementtechnologien im Internet. Nach Bearbeitung des
Kurses sollten die besprochenen Formate gründlich bekannt sein. Dokumente in
diesen Formaten sollten erstellt werden können. Eine Übersicht über die zur
Verfügung stehenden Werkzeuge sollte bekannt sein und mit einigen von diesen
Werkzeugen sollte auch praktische Erfahrung gesammelt werden. Der Kurs soll
dazu befähigen, Projekte mit zu konzipieren, technisch zu betreuen und
durchzuführen, die die Erstellung und Verwaltung von Daten- und
Dokumentenbeständen im Internet zum Ziel haben.
Ein weiteres sehr wichtiges Lernziel dieses Kurses betrifft das Modell der
strukturierten Dokumente. Das Modell soll verinnerlicht und seine Bedeutung
im Kontext der Informationsgesellschaft beurteilt werden können. Nach dem
Durcharbeiten des Kurses sollten Sie wissen, dass strukturierte Dokumente wie
gewöhnliche Daten von und mit Anwendungssystemen bearbeitet werden
können. Es soll darüber hinaus vermittelt werden, wie Internetformate das
Potential, welches in dem Modell der strukturierten Dokumente steckt,
realisieren und wie diese Erkenntnisse von Ihnen auch praxisbezogen
angewendet werden können.
Schließlich soll der Kurs auch einen Ausblick auf mögliche künftige Entwicklungen eröffnen und insbesondere auch den Anschluss an den Kurs 1874
„Informations- und Wissensmanagement im Internet“ erleichtern. Hier lauten
die wichtigen Fragen: Was leisten die gegenwärtig verwendeten Formate? Wo
sind ihre Grenzen? Welche Weiterentwicklungen wären wünschenswert?
Welche Entwicklungstrends sind insbesondere mit Blick auf das Semantic Web
und auf das Web 2.0 absehbar?
Zu den vorgestellten Formaten ist jeweils eine systematische und grundlegende
Darstellung vorgesehen, die bei besonders zentralen Formaten um
Übersichtstabellen ergänzt wird. Daneben wird auf die Originalspezifikationen
des W3C sowie auf reichlich vorhandenes tutorielles Material im Internet selbst
verwiesen.
Die im Kurs eingeführten Daten- und Dokument-Formate werden im Text
ausführlich durch Beispiele illustriert. Jedes Beispiel ist für sich lauffähig. Der
Code wird in elektronischer Form zur Verfügung gestellt, sodass dieser ausprobiert und auch selbst modifiziert werden kann. Darüber hinaus kann der
Der Dokumentenbegriff
Das Modell der strukturierten Dokumente
5
Lernfortschritt fortlaufend anhand von in den Text eingestreuten Selbsttestaufgaben überprüft werden.
Formalia
Um die Praxisteile dieses Kurses bearbeiten zu können, wird ein Arbeitsplatzrechner mit Internetzugang benötigt. Darüber hinaus benötigen Sie Grundkenntnisse im Umgang mit einem Betriebssystem und Sie sollten die
Möglichkeit haben, mit einem Texteditor einfache Textdokumente im ASCIIFormat zu erstellen bzw. zu bearbeiten und abzuspeichern. Als Texteditoren
kommen Programme wie Notepad, vi, Edit oder Emacs in Frage. Bitte
aktualisieren Sie auch Ihren Internetbrowser. Der Umgang mit Navigation und
Suche im Internet wird als bekannt vorausgesetzt. Sollten dennoch
Schwierigkeiten mit der Nutzung des WWW und dem Internet im Allgemeinen
bestehen, hilft eventuell ein Blick in die Broschüre [5] der Fernuniversität Hagen
weiter.
1 Das Modell der strukturierten Dokumente
In der ersten Kurseinheit des Kurses 1873 wird zunächst der Dokumentenbegriff
eingeführt und näher erläutert. Die Erläuterung verdient ein besonderes
Augenmerk, denn der Dokumentenbegriff spielt eine zentrale Rolle in der hier
dargelegten Thematik.
1.1 Der Dokumentenbegriff
Für statisch-passive Dokumente wurde bereits in den achtziger Jahren das
Modell der strukturierten Dokumente entwickelt. Durch dieses Modell wird eine
Unterteilung in textuellem Inhalt, logischer Struktur und grafischem Format
möglich. Die Quellrepräsentation des Dokuments bezieht sich auf den textuellen
Inhalt und logische Struktur. Gesteuert von unabhängigen Formatvorgaben, so
genannten Stylesheets, lässt sich daraus das graphische Format generieren.
Quellrepräsentation
Moderne Systeme zur Erstellung und Verwaltung von Dokumenten und großen
Dokumentenbeständen profitieren vom Modell der strukturierten Dokumente,
da es ein hohes Maß an Flexibilität bietet. Die logische Strukturierung
unterstützt Anwendungen der Dokumentenverwaltung wie die automatische
Generierung von Katalogeinträgen und Verzeichnissen oder das Information
Retrieval nach bestimmten logischen Kriterien und erlaubt es ganz allgemein,
Dokumente als Daten zu betrachten, die mithilfe von Computersystemen
verwaltet und manipuliert werden können.
Stylesheets
6
Die Unabhängigkeit der Stylesheets von den Dokumenten ermöglicht auf der
einen Seite, dass ein- und dasselbe Dokument durch Kombination mit verschiedenen Stylesheets passend zum Anwendungszweck formatiert werden kann;
auf der anderen Seite kann man verschiedene Dokumente durch Kombination
mit ein- und demselben Stylesheet einheitlich formatieren. Auch lässt sich die
Struktur beim Erstellen und Lesen von Dokumenten nutzen, etwa zur
Navigation und zur Definition von Sichten etwa von Outline-Sichten.
1.2 Der Modellbegriff
Modelle sind ein wichtiges, methodisches Mittel. Die Modellierung ist eine
vereinfachte und auf das im aktuellen Kontext Wesentliche reduzierte und unter geeigneten Gesichtspunkten - systematisierte Darstellung. Modelle sind
aus vielen Bereichen bekannt wie etwa aus der Architektur, der Biologie oder
der Physik. Modelle können physikalischer oder gedanklicher Art sein; letztere
können umgangssprachlich oder formal definiert sein. Gegenstandsbereich
einer Modellierung können Konzepte, Vorgänge oder Erscheinungen und ihre
Wechselwirkungen sein. In der Softwareentwicklung spielen Modelle bei der
Anforderungsdefinition und im Design eine zentrale Rolle. Sie dienen der
Kommunikation zwischen Ingenieuren und ihren Kunden und als
Ausgangspunkt der weiteren Entwicklung. Die Softwaretechnik entwickelt
Vorgehensmodelle auf verschiedenen Ebenen für den Prozess der
Softwareentwicklung wie etwa das zwischenzeitlich veraltete Wasserfallmodell,
das aktuellere Spiralmodell und neuerdings Verfeinerungen rund um die
Modellierungssprache UML. Grundlage relationaler Datenbanksysteme ist das
Tabellenmodell für Daten. Datenbankanwendungen selbst basieren auf einer
Modellierung der Anwendungsdaten, meistens einem Entity-RelationshipModell.
Der Modellbegriff
Das Modell der strukturierten Dokumente
Abb.: 1.1 Das Spiralmodell in der Softwareentwicklung nach Böhm [2]
Modelle können unterschiedlichen Zwecken dienen: etwa der Entwicklung einer
gemeinsamen Sicht und Terminologie, der Vermittlung erprobter Vorgehensweisen und Techniken, dem rationalen Beweisen oder Widerlegen von
Hypothesen oder der Ableitung von Handlungsempfehlungen.
Zwei zentrale und umgangssprachlich erläuterte Modelle werden in dieser
Kurseinheit eingeführt und näher erläutert: das Modell der strukturierten
Dokumente und ein Modell für Zeichenkodierungen.
Die Dokumentenformate, die im weiteren Verlauf des gesamten Kurses
hinzukommen, basieren ebenfalls auf Modellen. Bei der Definition von Datenund Dokumentformaten im Internet könnte eine Konzentration auf die
Modellierung kürzere, genauere, verständlichere und leichter handhabbare
Sprachdefinitionen hervorbringen als es derzeit der Fall ist.
In diesem Kurs werden deshalb Modelle im Mittelpunkt und konkrete Instanzen
dieser Modelle im zweiten Rang stehen, um dadurch ein vertieftes Verständnis
zu ermöglichen.
1.3 Realisierung des Dokumentenmodells
Hier wird anhand verschiedener Beispiele und Systeme erläutert, wie das Modell
der strukturierten Dokumente mit Zeichenkodierungen, eingebettetem Markup,
Dokumentengrammatiken und Stylesheets in der Praxis umgesetzt wird. Es
7
8
Realisierung des Dokumentenmodells
folgen einige Beispiele für Sprachen und Formate sowie für Editier- und
Formatiersysteme. Darüber hinaus folgt ein Überblick über weitere, im Internet
einsetzbare Dokumentenmodelle und Formate. Auf der technischen Seite wird
das Thema der Zeichenkodierungen vertieft. Dazu wird der Unicode-Standard
vorgestellt.
In den nachfolgenden Kurseinheiten wird das Thema der strukturierten
Dokumente anhand gängiger Internetformate beleuchtet. Dazu gehören XML
und die zugehörigen weiteren XML-basierten Sprachfamilien.
1.3.1 Dokumente näher betrachtet
Historisch gesehen findet sich beispielsweise in Brockhaus’ Konversationslexikon in der vierzehnten Auflage von 1894 folgendes unter dem Begriff
„Dokument“:
„Im weiteren Sinne jeder Gegenstand, welcher dazu dient, die Wahrheit einer zu
erweisenden Tatsache, besonders einer für ein Rechtsverhältnis erheblichen
Tatsache, zu bestätigen. Im engeren Sinne versteht man darunter Urkunden oder
Schriftstücke, im Gegensatz zu anderen körperlichen Beweisstücken, wie
Grenzsteinen, Wappen, beschädigten Sachen.“
Historische
Dokumentendefinition
Ursprünglich waren Dokumente also tatsächlich physische Objekte, Gegenstände, die als einmalige Träger eines in menschliche Sprache gekleideten und
schriftlich festgehaltenen Gedankens oder Sachverhalts fungierten. Ein
Dokument neuerer Art, etwa ein sauber getippter Bogen Papier mit Name,
Adresse, Personalausweisnummer und weiterer Information zur Person erfüllt
einfach nicht denselben Zweck, auch wenn er dieselbe sprachliche Information
enthält. Die Dauerhaftigkeit der Schriftform gegenüber der gesprochenen
Sprache, die Kommunikation unabhängig von Zeit und Raum ermöglicht, und
die Authentizität des Trägermediums, die durch Wasserzeichen, Stempel,
Siegel, Barcode oder ähnliches erreicht werden kann, machen das Wesen von
Dokumenten in diesem ursprünglichen Sinne aus.
In der Brockhaus Enzyklopädie in der siebzehnten Auflage von 1968 findet sich
dagegen unter dem Stichwort „Dokument“:
„Als Dokumente können alle Unterlagen betrachtet werden, die Informationen
beinhalten, also nicht nur publiziertes Wissen, sondern auch Briefe, Akten,
Urkunden, Bildsammlungen, Filme u.v.a.“
Die Dokumente neuerer Art sind also Informationsträger. Die Schriftform ist
immer noch wesentlich, aber das Trägermedium und die Art, wie die
Information auf das Trägermedium aufgebracht ist, sind nebensächlich. Auf den
sprachlichen Ausdruck kommt es an.
Definition des Begriffes
„Dokument“
Das Modell der strukturierten Dokumente
9
Den Unterschied zwischen dem ursprünglichen und dem neueren Dokumentenbegriff kann an zwei Arten von Delikten klargemacht werden. Das Fälschen
eines Personalausweises oder einer Banknote beinhaltet immer auch eine
Fälschung des Trägermediums und betrifft Dokumente im ursprünglichen Sinne.
Kopieren hingegen – sei es Fotokopieren oder Abschreiben – generiert immer
ein zweites Exemplar des Dokuments, selbst wenn sich die Erscheinungsform
dabei total ändert. Die Umstände, unter denen ein solches Kopieren zulässig ist,
regelt das Urhebergesetz.
Das Gemeinsame an Dokumenten ursprünglicher und neuerer Art ist, dass sie
durch ihre Schriftform eine ursprünglich sprachliche Mitteilung von der
auditiven in die visuelle Übertragungsform und von der Flüchtigkeit der mündlichen Erzählung in die Dauerhaftigkeit des geschriebenen Wortes umsetzen.
Somit werden die Grenzen von Zeit und Raum, die sonst der Senderin und dem
Empfänger flüchtiger sprachlicher Mitteilungen gesetzt sind, überschritten.
Dokumente ursprünglicher und neuerer Art unterscheiden sich auch dadurch,
wie viele Exemplare es von einem Dokument geben kann und wie viele
Leserinnen und Leser gleichzeitig Gebrauch von so einem Dokument machen
können.
Eine weitere und wichtige Unterscheidung, die zu einem dritten, dem modernen
Begriff des digitalen Dokuments führt, hängt an der Idee vom Dokument als
Informationsträger. Sprachlich formulierte Gedankengänge, Ideen, Fakten oder
Aussagen werden erst dann zu Information, wenn sie von jemandem
aufgenommen und verarbeitet werden.
„Information ist Wissen in Aktion“ lautet die Kurzformel der Informationswissenschaft. Nur wie ist „jemand“ eigentlich definiert? In der Natur der Dinge
liegt es dabei, zunächst an ein menschliches Gegenüber zu denken. Wie verhält
es sich jedoch mit Computern, die ja dazu gedacht sind Informationen entgegen
zu nehmen, weiterzuverarbeiten und anschließend verändert wieder
auszugeben, wie dies ja bereits durch das EVA Prinzip definiert wird.
Informationsverarbeitung mithilfe von Computerprogrammen führt demnach
unmittelbar zum modernen Dokumentenbegriff.
Wesentliche Tätigkeiten, die per Computer dazu beitragen den modernen
Dokumentenbegriff zu prägen:
x
Gedankengänge organisieren und Dokumente planen
x
Gedanken verbalisieren und Dokumente erfassen
x
Dokumente editieren, formatieren und publizieren, also der Öffentlichkeit zugänglich machen
Wissen in Aktion, ist
Information
10
Realisierung des Dokumentenmodells
x
Dokumente ablegen, verwalten, abfragen, zusammenfassen, kombinieren, transformieren, extrahieren
x
Dokumente lesen, verstehen, memorieren, aus ihnen lernen und über sie
nachdenken.
Moderne Dokumente sind Informationsträger, die alle diese Funktionen effizient
unterstützen. Moderne Dokumente müssen deshalb in ihrer Urform elektronisch
gespeichert sein und je nach Anwendungszweck unterschiedliche
Präsentationsmedien unterstützen.
Selbsttestaufgabe 1.1
Überlegen Sie, ob auf die folgenden Dokumente eher der ursprüngliche, der
neuere oder der moderne Dokumentenbegriff passt oder ob es sich vielleicht gar
nicht um Dokumente handelt:
• Personalausweis
• Geldschein
• Gemälde
• Veranstaltungsplakat
• Privatbrief
• E-Mail-Nachricht
• Memo an die Geschäftsleitung
• Gedichtband
• Roman
• Bestellung
• Produktbeschreibung
• Fragebogen
• Nachricht in einem Protokoll zum digitalen Zahlungsverkehr (Electronic
Banking)
Nicht alle Beispiele lassen sich eindeutig einordnen. Machen Sie sich klar,
welche Argumente für oder gegen eine bestimmte Einordnung sprechen.
Vorangehend wurde eine Übersicht über die wesentlichen Kategorien von Dokument bezogenen Begrifflichkeiten gegeben. Im weiteren Verlauf werden in
diesem Kurs jedoch nur noch Dokumente der modernen Art besprochen.
Dokumente sind also nachfolgend immer elektronisch gespeicherte
Informationsträger, deren schriftsprachlich festgehaltene Inhalte sowohl von
menschlichen Leserinnen und Lesern als auch von Computerprogrammen
aufgenommen und weiterverarbeitet werden können. Im nächsten Abschnitt
wird analysiert, welche Anforderungen sich daraus für Dokumentenformate
Der moderne
Dokumentenbegriff
Das Modell der strukturierten Dokumente
11
ergeben und wie diese Anforderungen durch das Modell der strukturierten
Dokumente erfüllt werden.
1.3.2 Moderne Textdokumente
Unter diesem Begriff werden Textdokumente verstanden die in weltweit
verteilten Systemen wie dem Internet und dem World Wide Web, für die
unterschiedlichen Nutzungsarten und Anwendungszwecke bereitgestellt
werden. Einige Fragen die sich aus diesem Kontext ergeben sind:
x
Welche Anforderungen ergeben sich für die Dokumentenformate?
x
Welche Formate sind in der Praxis bereits jetzt verfügbar, welche werden
sich kurzfristig durchsetzen?
x
Welche Werkzeuge stehen zur Verfügung, um die Dokumente zu
bearbeiten?
x
Was können etablierende und etablierte Disziplinen wie Document
Engineering, Content Management und Elektronisches Publizieren
beitragen?
Haben Sie während des Lesens versucht diese Fragen zu beantworten? Die
Fragestellungen sind dazu gedacht Ihnen ein Gespür für die Thematik, um die es
in diesem Kurs geht, zu bekommen. Ausführlichere Antworten erfolgen im
Kursverlauf.
Noch vor wenigen Jahren gab es nur ein relevantes Dokumentenformat im Web,
nämlich die Hypertext Markup Language. Einführungen in das Erstellen von
HTML-Dokumenten umfassten einschließlich Darstellungen zur Geschichte des
Internet und anderer historischer Anmerkungen gut hundert Buchseiten.
Die erste konsolidierte und von der Internet Engineering Task Force verabschiedete HTML-Version 2.0 umfasste ca. 150 Sprachelemente, wobei mit
Sprachelementen sowohl die Elemente als auch die Attribute gemeint sind. Die
besagte HTML-Version wurde im November 1995als RFC 18661 eingeführt.
Elektronisch arbeitende Produzenten und Verleger von Inhalten so genannte
Content Provider konnten mit einer Handvoll von HTML-Befehlen auskommen,
um eine dem aktuellen Stand der Technik entsprechende Webseite zu erstellen.
_________________________________________________
1http://rfc-ref.org/RFC-TEXTS/1866/index.html
HTML
IETF
RFC
12
Realisierung des Dokumentenmodells
Abb.: 1.2 Webseitengestaltung von 1995
Die HTML-Version 4.0, welche am 24. April 1998 vom World Wide Web
Consortium verabschiedet wurde, umfasste dann bereits ca. 1.600 Sprachelemente; an für Textdokumente relevanten Formaten sind zu HTML die
Sprachen:
x
Extensible Markup Language
x
Cascading Style Sheets
x
Extensible Style Language
x
XML Schema
x
XML Linking Language
x
XML Path Language
x
XML Pointer Language
W3C
hinzugekommen und es erschien das einschlägige Handbuch von Danny
Goodman1 zu der nun programmierbaren HTML-Erweiterung Dynamic HTML.
Mittlerweile erfordert es über 1.000 Buchseiten, um alle systemspezifischen
Varianten und Strategien und deren Handhabung in einem weltweiten
Publikationsmedium darzustellen.
Neben den statisch-passiven Textdokumenten, die klassischen auf Papier
gedruckten Dokumenten ähnlich sind, gewinnen im Internet in zunehmendem
_________________________________________________
1http://www.dannyg.com/pubs/index.html
dHTML
Das Modell der strukturierten Dokumente
Maße dynamisch-aktive Textdokumente an Bedeutung. Sie enthalten aktive
Komponenten, mit denen Leserinnen und Leser interagieren können. Es können
sich auch der Inhalt und das Format dynamisch ändern. Beispiele für aktive
Komponenten sind mathematische Formeln, die mittels eines ComputerAlgebra-Pakets auf Knopfdruck evaluiert werden können. Auch Visualisierungen
von Algorithmen sind so möglich, wie etwa in diesem Beispiel1. Weitere
Beispiele für dynamische Dokumente sind sich regelmäßig aktualisierende
Börsenkurse oder auf Knopfdruck expandierbare Outline- Sichten.
Zahl, Umfang und Funktionsbereich der relevanten Empfehlungen des W3C2
und deren Implementierungen haben bis heute derart zugenommen, dass eine
systematische Einführung in die Sprachen selbst und in erprobte Praktiken der
professionellen und systematischen Dokumenterstellung und Verarbeitung
einen organisierten Einstieg in die Internetpraxis sehr erleichtert.
Die neuen Dokumentenformate für statisch-passive Dokumente im Internet
folgen ebenfalls dem Modell der strukturierten Dokumente. Neben HTML hat
im Internet die Entwicklung im Kontext mit XML in den vergangenen Jahren
immer mehr an Bedeutung gewonnen.
1.3.3 Dokumentenbestandteile
Dokumente moderner Art sind als Informationsträger zu sehen. Wie aber
kommen die Leserinnen und Leser an die in einem Dokument enthaltene
Information? Als Einstieg in Beantwortung dieser Frage kann zunächst einmal
ein konkretes Dokument betrachtet werden: Die Journalseite in Abschnitt 1.6.1
im Anhang.
Es handelt sich hierbei um eine beispielhafte Annonce der Frauenbeauftragten
der Technischen Universität München zu einem Computer-Propädeutikum.
Bei der Lektüre dieses Dokumentes lässt sich feststellen, dass eine Reihe von
Themen vorgeschlagen werden, die in einem Kurs des ComputerPropädeutikums behandelt werden können. Wie genau aber wurde diese
Information im Dokument kodiert, vom Leser wahrgenommen und gedanklich
verarbeitet?
Die Ausgangsbasis sind die in dem Dokument enthaltenen Buchstaben und
Interpunktionszeichen, die beim Lesen vom Menschen wie auch von Maschinen
zu Wörtern und Sätzen zusammengesetzt werden. Darüber hinaus werden diese
_________________________________________________
1http://www.cs.auckland.ac.nz/software/AlgAnim/heapsort.html
2http://www.w3.org/
13
14
Realisierung des Dokumentenmodells
von Menschen aber auch intellektuell verarbeitet und mit Bedeutung versehen.
Die Belegung von Symbolen mit Bedeutungen wird Semantik genannt. Der
informationelle Inhalt des Dokuments wird also vom Leser erfasst. Dies ist eine
Fähigkeit, die der Mensch den Maschinen zunächst voraus hat. In der letzten
Phase der Erfassung gibt es also wesentliche Unterschiede zwischen der Art und
Weise wie ein Mensch und wie eine Maschine Inhalte wahrnimmt, deren
informationellen Gehalt erfasst und verarbeitet.
Es sind also zunächst nicht nur die Buchstaben und Interpunktionszeichen
alleine, die den Erfassungsprozess ermöglichen. Zu dieser Einsicht verhilft
folgender Gegentest: Betrachtet ein menschlicher Leser die unformatierte
Version des gleichen Dokumentes, die sich unter 1.6.2 im Anhang befindet, und
versucht aus dieser Version die Gliederung des Konzepts herauszulesen, so stellt
sich dies als mühsam bis unmöglich heraus.
Offenbar unterstützt also die Formatierung des Dokuments – etwa die Wahl der
Schriften (groß oder klein, fett oder kursiv), die Ausrichtung von Textpassagen
(linksbündig, rechtsbündig oder zentriert) und die Abstände zwischen einzelnen
Textpassagen – die visuelle Aufnahme und Verarbeitung der Information durch
den Menschen. Geht man zurück zur zuerst betrachteten formatierten Version
des Konzepts, so wird einem menschlichen Leser deshalb sofort die Gliederung
in die Abschnitte „Hintergrund und Ziele“, „Das Kursangebot des ComputerPropädeutikums“ usw. klar. Die visuelle Formatierung der Überschriften in
Fettschrift und mit deutlichen Abständen zum umgebenden Text geben
ausreichende Hinweise um die Gliederungselemente zu erkennen.
Die Buchstaben, Interpunktionszeichen und sonstigen Symbole, die in einem
Dokument enthalten sind, zusammen mit dem Format, also der typografischen,
sprich visuellen Ausprägung der Symbole und der geometrischen Anordnung
oder dem Layout, ermöglichen es also den menschlichen Leserinnen und
Lesern, den Informationsgehalt eines Dokumentes leichter, d. h. kognitiv
effizienter zu erfassen.
Was aber ist genau das Ergebnis dieses menschlichen Verarbeitungsprozesses?
Zunächst einmal werden die Aussagen wörtlich erfasst und verstanden. Hinzu
kommt jedoch auch das Erfassen der einzelnen Textpassagen und deren Rolle
im Gesamttext. So identifiziert ein menschlicher Leser wahrscheinlich beim
Betrachten der formatierten Version des Konzepts das Textstück „Ein
Computer-Propädeutikum von Studentinnen für Studentinnen“ als Überschrift
des gesamten Dokuments und das Textstück „Hintergrund und Ziele“ als
Überschrift eines Abschnitts, der bis zur nächsten Überschrift reicht.
Zusätzlich zur Aussage eines Dokuments erkennen menschliche Leserinnen und
Leser also aufgrund des Inhalts und des Formats eine Strukturierung in logische
Einheiten. In dem Konzept zum Computer-Propädeutikum ließen sich
Das Modell der strukturierten Dokumente
beispielsweise die folgenden Strukturelemente identifizieren: Briefkopf mit
Namen der Autorinnen und Angaben zur Institution, Hauptüberschrift,
Nebenüberschrift mit Datums- und Versionsangaben, Abschnitte mit Überschriften, Absätzen und Listen, Geldbeträge, Namen der Organisatorinnen und
Datumsangaben.
Die von den Leserinnen und Lesern erkannte Struktur ist nicht eindeutig.
Hinweise auf die Struktur ergeben sich aus Inhalt und Format aufgrund von dem
semantischen Verständnis der Textpassagen und der kulturellen, durch den
Umgang mit zahlreichen Dokumenten ähnlicher Art gewonnenen Erfahrung.
Für menschliche Leserinnen und Leser stellt sich also der Prozess der Informationsaufnahme und -verarbeitung folgendermaßen dar: Das Dokument wird mit
Inhalt und Format präsentiert. Menschliche Leserinnen und Leser extrahieren
daraus die Aussage des Dokumentes und konstruieren eine Struktur für die
einzelnen Textelemente. Durch visuelle Wahrnehmung und gedankliche Arbeit
unter Rückgriff auf das Sprachverständnis und das kulturelle Wissen wird die
Bedeutung der Aussage interpretiert. Die Verwendung von Formatmerkmalen,
Aussage und Struktur bilden die Grundlage für die weitere intellektuelle
Informationsverarbeitung.
Ein Dokument kann in ganz unterschiedlichen grafischen Aufmachungen
dargestellt werden. Die Darstellung hängt auch vom Präsentationsmedium und
der Lesesituation ab. Beispielsweise kann ein Dokument für das ermüdungsfreie
Lesen am Bildschirm mit einer anderen Farbpalette und mit anderen Schriften
formatiert sein als für das Lesen von einem Papierausdruck; oder Querverweise
können für die Onlineversion als Hypertextlinks und für die Druckversion als
Hinweise auf Seitenzahlen realisiert werden.
Entscheidend für die „Identität“ eines Dokumentes ist, dass aus den verschiedenen Formaten immer noch dieselbe Aussage und im Wesentlichen dieselbe
Struktur erkannt wird.
1.3.4 Dokumente strukturieren
Bisher wurde das Erfassen der in einem Dokument enthaltenen Information von
der Warte der menschlichen Leserinnen und Leser aus betrachtet. Was ist aber,
wenn Computerprogramme zur Informationsverarbeitung herangezogen
werden sollen? Wollte man den menschlichen Prozess des Textverstehens
nachbilden, der bei einer formatierten und für das menschliche
Wahrnehmungssystem „Auge“ realisierten Version des Dokuments startet, so
müsste man Computerprogramme mit intelligenten Fähigkeiten ausstatten, die
Zeichenerkennung, Sprachverstehen und Strukturerkennung einschließen. Von
15
16
Realisierung des Dokumentenmodells
diesen Möglichkeiten ist man heute jedoch noch relativ weit entfernt, sie sind
allerdings bereits Gegenstand intensiver Forschung.
Der Ansatz der strukturierten Dokumente sieht folgenden Ausgangspunkt für
die computergestützte Informationsverarbeitung vor: eine explizite
Repräsentation von Inhalt und vor allem auch Struktur des Dokumentes im Sinne
eines Repräsentationsmediums. Autorin oder Autor eines strukturierten
Dokumentes editieren den eigentlichen Inhalt des Dokumentes und markieren
die notwendigen Strukturelemente. Das zu den Textelementen passende
Format kann aus einer separaten, vom Dokument unabhängigen und bei Bedarf
auswechselbaren Formatvorlage, auch Stylesheet genannt, berechnet werden.
Das Stylesheet enthält allgemeine Regeln, wie die einzelnen Strukturelemente
zu formatieren sind. Durch eine Regel kann beispielsweise festgelegt werden,
dass Überschriften in einer fetten Kursivschrift mit einem gewissen Abstand
zum umgebenden Text formatiert werden sollen.
Ein so genannter Formatierer bringt das mit Strukturmarkierungen versehene
Quelldokument mit dem Stylesheet zusammen und formatiert das Dokument
entsprechend der Vorgaben in dem Stylesheet.
1.3.5 Vorteile des Dokumentenmodells
Ein solches Vorgehen hat als entscheidenden Vorteil die Flexibilität, mit welcher
die Formatierung der Texte immer wieder geändert werden kann. Die logische
Strukturierung unterstützt aber auch Anwendungen der Dokumentenverwaltung, sodass etwa die automatische Generierung von Katalogeinträgen und Verzeichnissen möglich wird oder das Wiederfinden von
Information nach bestimmten logischen Kriterien. Die eigentliche Informationsverarbeitung kann sich also direkt auf die logische Struktur stützen. Die
Unabhängigkeit der Stylesheets von den Dokumenten ermöglicht, dass ein
Dokument durch Kombination mit verschiedenen Stylesheets passend zum
Anwendungszweck formatiert werden kann. Außerdem können verschiedene
Dokumente durch Kombination mit ein- und demselben Stylesheet einheitlich
formatiert werden. Auch lässt sich die Struktur beim Erstellen und Lesen von
Dokumenten nutzen, etwa zur Navigation und zur Definition von Sichten etwa
Outline-Sichten. Von diesen Vorteilen profitieren besonders die Anwendungen,
die große Dokumentenbestände erstellen und verwalten müssen.
Eine umfangreiche Sammlung von Projektvorschlägen, die alle nach dem
gleichen Muster logisch strukturiert und markiert sind, kann systematisch nach
anwendungsnahen Kriterien abgefragt werden. Auch etwa die im letzten halben
Jahr neu hinzugekommenen Vorschläge können mit Titel und Datum
ausgegeben werden. Eine weitere Anwendung wäre, automatisch nach allen
Projekten zu suchen, die ein bestimmtes gemeinsames Ziel verfolgen. Auch für
die Verwaltung des Dokumentenbestandes bietet das Modell der strukturierten
Formatvorlagen zur
automatischen LayoutGenerierung
Das Modell der strukturierten Dokumente
17
Dokumente Vorteile. Die mit der Verwaltung befassten Personen brauchen für
den gesamten Bestand nur einmal die zu verwendenden Strukturelemente
festzulegen. Für jedes Präsentationsmedium ist nur ein einziges Stylesheet
nötig, welches dann auf alle Dokumente des Bestandes anwendbar ist. Für das
Beispiel der Projektvorschläge würden zwei Stylesheets ausreichen, eines für
das Lesen am Bildschirm und eines für das Steuern eines Ausdrucks.
Das Modell der strukturierten Dokumente wurde in den achtziger Jahren
entwickelt [1, 5, 9]; seine Wurzeln gehen sogar bis in die sechziger Jahre zurück
[4]. Alle modernen Textverarbeitungssysteme unterstützen das Modell
zumindest in Ansätzen.
1.3.6 Verfeinerungen des Dokumentenmodells
Zum vollen Modell der strukturierten Dokumente gehört wesentlich dazu, dass
die Namen der Strukturelemente frei wählbar sind. Wenn man beispielsweise
ein Aufgabenblatt logisch strukturieren möchte, dann müssen die
Strukturelemente wie Aufgabe, Abgabedatum, Punktezahl, Lösungshinweis
oder Schwierigkeitsgrad angegeben werden können. Ist der Sprachvorrat, aus
dem Strukturelemente gewählt werden können, fest vorgegeben und
beschränkt, kann er nicht alle sich im Laufe der Zeit ergebenden Anwendungen
abdecken. Dies verwässert allerdings die Vorteile der strukturierten Dokumente
für die computergestützte Informationsverarbeitung, da semantische
Information über die Rollen der Strukturelemente durch eventuelle
Mehrfachbelegung verloren geht.
Historisch ist übrigens anzumerken, dass es u. a. im Verlagswesen mehrere
Bestrebungen gegeben hat, einen universell einsetzbaren Vorrat an Strukturelementen zu definieren. Für einige Spezialgebiete konnte auch tatsächlich eine
Einigung über einen solchen Vorrat erzielt werden. Das bekannteste Beispiel ist
die Sprachdefinition der Text Encoding Initiative (TEI) für den Bereich der
textkritischen Apparate im geisteswissenschaftlichen Bereich; der Sprachvorrat,
der hier definiert wurde, ist allerdings sehr umfangreich. In der Regel sind solche
Versuche jedoch gescheitert und zugunsten von frei wählbaren
Strukturelementen aufgegeben worden.
Eine weitere Überlegung zum Modell der strukturierten Dokumente ist, ob der
zugrunde liegende Vorrat an Strukturelementen formal definiert werden soll.
Eine Strukturvorgabe ist eine mit formalen Methoden festgelegte Definition des
Vorrats an Strukturelementen, die auch Einschränkungen zur Verwendung der
Elemente beinhalten kann. Eine Strukturvorgabe hat Vorteile. Beispielsweise
können Dokumente automatisch auf ihre strukturelle Korrektheit überprüft
werden oder Editierhilfen können solche Vorgaben auswerten und zur
Unterstützung der Autorin oder des Autors einsetzen. Schließlich wird durch
Freie und vordefinierte
Strukturelemente
18
eine
formale
Strukturvorgabe
Dokumentenanwendung dokumentiert.
Realisierung des Dokumentenmodells
auch
das
Vokabular
einer
1.3.7 Strukturdarstellungen
Zur Markierung der Strukturelemente gibt es im Wesentlichen zwei schon lange
etablierte Konzepte. Bei beiden Konzepten wird davon ausgegangen, dass die
logische Strukturierung streng hierarchisch angelegt ist. Strukturelemente
können also andere Strukturelemente vollständig enthalten, sich aber nicht mit
ihnen überlappen. Die Strukturelemente, die im Beispiel der Annonce zu dem
Computer-Propädeutikums in Abbildung unter 1.6.1 eingeführt worden sind,
gehorchen dem Gesetz der hierarchischen Schachtelung.
Bei dem ersten Konzept bzw. bei der ersten Methode wird die hierarchische
Struktur graphisch dargestellt. Hier können zunächst drei Varianten vorgestellt
werden. Abbildungen zu allen drei Varianten befinden sich im Anhang im
Abschnitt 1.6.3.
Bei der ersten Variante werden ineinander geschachtelte Rechtecke oder Boxen,
die mit dem Namen des jeweiligen Elementes gekennzeichnet sind, genutzt. Die
zweite – dynamische - Variante, bei der mit Einrückungen und Ikonen
gearbeitet wird, könnte aus Dateibrowsern bereits bekannt sein. Eine dritte –
ebenfalls dynamische – Variante besteht darin, die logische Struktur als einen
Baum darzustellen.
Die grafischen Möglichkeiten stellen hohe Anforderungen an die Formatierungsmöglichkeiten des darstellenden und ja auch möglichst noch
Interaktionen zulassenden Systems.
Eine nicht so anspruchsvolle Möglichkeit besteht darin, die hierarchische
Struktur mittels einer Klammerstruktur zu linearisieren. Zu diesem Zweck wird
jeder Textbereich, der Inhalt eines logischen Elementes ist, an seinem Anfang
und an seinem Ende mit einer öffnenden und einer schließenden Klammer
versehen, die den Namen des entsprechenden Strukturelementes enthält. Eine
solche Klammer ist einfach so genannter Klartext, der sich durch syntaktische
Konventionen vom eigentlichen Inhalt abhebt. Der Inhalt ist unformatiert. Bei
der XML-Konvention wird der Anfang eines Tags durch den Begriff der in spitzen
Klammern steht signalisiert <XXX>. Soll das Tag nicht mehr gelten, wird der
Schrägstrich eingesetzt: </XXX>. Der Klartext für die öffnende oder schließende
Klammer heißt Tag, was Auszeichnung bedeutet. Der Oberbegriff zu Tags und
eventuellen weiteren Möglichkeiten, nicht zum Inhalt zählende Zeichen in einen
Text einzustreuen, ist Markup. Eine grafische Verfeinerung dieser Darstellung
wird erreicht, wenn mit Einrückungen und mit typografischer Differenzierung
von Text und Markup gearbeitet wird.
Embedded Markup
Das Modell der strukturierten Dokumente
Da der Markup mit im Text enthalten ist, wenn auch über syntaktische Konventionen vom eigentlichen Inhalt getrennt, spricht man auch von einem
eingebetteten Markup. Von einem prinzipiellen Standpunkt aus gesehen, sind
alle Darstellungsformen für strukturierte Dokumente äquivalent. Die
Repräsentation der hierarchischen Struktur durch eingebetteten Markup ist
technisch am einfachsten zu handhaben und ist deshalb derzeit noch die
gängigste. Sie hat den Vorteil, dass Dokumente mit eingebettetem Markup mit
jedem einfachen ASCII-Texteditor angesehen und bearbeitet werden können.
Die Darstellungsweise ist allerdings unübersichtlich und nicht sehr eingängig.
Die anderen Darstellungsformen stoßen an ihre Grenzen, wenn die
Schachtelungstiefe sehr groß wird oder die Granularität der Struktur sehr fein.
Probleme tauchen unter anderem schnell bei der logischen Beschreibung
mathematischer Formeln auf.
1.3.8 Diskussion des Dokumentenmodells
Das Modell der strukturierten Dokumente wird eingesetzt, um Dokumente für
die Computerverarbeitung vorzubereiten. Die zentrale Idee ist, die Kerndaten
des Dokuments redundanzfrei in einer Art Reinform vorzuhalten, wie man es
auch beim Design relationaler Faktendatenbanken mit Normalformen verfolgt.
Faktendaten, die sich aus dieser Quellform berechnen lassen oder die variabel
gehalten werden sollen, werden nicht in der Quellform mit kodiert sondern bei
Bedarf
berechnet
und
gegebenenfalls
als
Sichten
generiert.
Verarbeitungsfunktionen können auf dieser Reinform der Daten aufsetzen und
werden nicht belastet durch Idiosynkrasien im Datenbestand, die durch einzelne
Anwendungen begründet sind.
Im Datenbankbereich dient diese Methode gleichzeitig der logischen
Datenunabhängigkeit. Änderungen an der Struktur der Quelldaten können vor
Endsystemen, die über Sichten mit der Datenbasis zu tun haben, verborgen
bleiben. Das Potential der Datenunabhängigkeit ist durch das Modell der
strukturierten Dokumente und seine Umsetzung mit XML auch im Bereich der
Webdokumente gegeben. Allerdings ist die Technik noch nicht so weit
fortgeschritten wie im Datenbankbereich, sodass etwa mit entsprechenden
Zugangsvoraussetzungen ausgestattete Personen einen Bestand von XMLDokumenten über mit XSLT-generierten Sichten bearbeiten könnten. In diesem
Bereich sind noch interessante Forschungsarbeiten zu erledigen. Auch eine
Theorie der Normalformen, wie sie im Datenbankbereich etabliert ist, gibt es für
den Bereich der strukturierten Dokumente noch nicht.
Das Modell der strukturierten Dokumente dient dazu, Inhalt und Struktur eines
Dokumentes, auf denen die automatische Verarbeitung basieren soll, zu
repräsentieren. Dabei ist es wichtig, die Strukturelemente je nach Anwendungsfall frei definieren und die entsprechenden Definitionen auch formal
19
20
Realisierung des Dokumentenmodells
festschreiben zu können. Auf dieser Basis können Verarbeitungsfunktionen
aufgesetzt und Sichten generiert werden, wobei die Basis je nach Anwendungsfall durch zusätzliche und separate Steuerungsdaten ergänzt werden kann.
Historisch stammt das Modell aus dem Bereich der Dokumentenverarbeitung
und Dokumentenverwaltung. Ein wichtiger Anwendungsfall in diesem Bereich
ist die Formatierung. Vorgaben für die Formatierung werden in separaten und
auswechselbaren Stylesheets vorgehalten und Formate aus beiden
Beschreibungen zusammen berechnet. Über die Generierung formatierter
Sichten hinaus sind Systeme des Document Management typischerweise in der
Lage, Nummerierungen, Verzeichnisse und Querverweise aus der expliziten
Repräsentation von Inhalt und Struktur zu erzeugen. Dies geschieht unter
Hinzunahme von oft ebenfalls in Stylesheets enthaltenen Steuerungsdaten.
Document
Management
Das Modell unterstützt jedoch nicht nur Anwendungsfälle des Document
Management im engeren Sinne, sondern trägt auch Anwendungen im weiteren
Bereich des Wissensmanagements. Das Modell der strukturierten Dokumente
dient als Stütze, den Schritt Texte zu gut zu verwaltenden Texten
weiterzuentwickeln und die maschinelle Lesbarkeit zu ermöglichen.
Knowledge
Management
Zudem sollen Bereiche im Inhalt eines Dokuments mit zusätzlicher
semantischer Information markiert und die Rolle des entsprechenden Textstücks benannt werden. Das Modell platziert sich damit in einem Spektrum, das
von einer rein grafischen Repräsentation eines Dokuments, etwa als Pixelmuster
oder als PostScript-Dokument, bis zu einer expliziten Repräsentation der
Semantik, etwa als semantisches Netz reicht.
Die rein grafische Repräsentation erfordert zur computergestützten Verarbeitung intelligente Software, die derzeit noch nicht in ausreichendem Umfang zur
Verfügung steht. Eine ausgefeilte Repräsentation der Semantik erfordert einen
hohen Overhead beim Erstellen und Bearbeiten der Dokumente. In der Praxis
hat sich der Kompromiss, der bei der Konzeption des Modells eingegangen ist,
seit langem bewährt.
Bei Dokumentensystemen, die das Modell der strukturierten Dokumente implementieren, werden die Strukturelemente in der Regel mit eingebettetem
Markup kodiert. Das ist der zweite pragmatische Kompromiss im Bereich des
Modells, der sich jetzt auf die Umsetzung des Modells bezieht. Zwar erscheinen
immer wieder Positionspapiere mit Titeln wie „Embedded Markup Considered
Harmful“ [10, 11], aber auch hier scheint der Kompromiss den Test der Zeit zu
bestehen.
Was in diesem Kurs „Modell“ genannt wird, heißt in der älteren Literatur auch
manchmal Dokumentenarchitektur. Der Begriff der Architektur macht klarer
deutlich, worum es in einer ersten Annäherung an Dokumente und ihre Formate
Das Modell der strukturierten Dokumente
geht: relevante Aspekte von Dokumenten sollen identifizierbar und das
Zusammenwirken transparent gemacht werden
Es werden Überlegungen dazu angestellt werden, welche abstrakten Modelle
den sich im Internet manifestierenden Formaten zugrunde liegen. Es steht dabei
nicht immer für jede Ebene der Modellierung eine separate Begrifflichkeit –
etwa wie hier „Architektur“ – zur Verfügung. Bei dem noch folgenden Modell für
die Zeichenkodierung wird klar, warum in diesem Kurs der Begriff Modell
eingeführt wird und wir die Thematik nicht mit „Architektur“ der strukturierten
Dokumente erläutern.
1.3.9 Umsetzungen des Dokumentenmodells
Anhand der meisten modernen Textverarbeitungssysteme wird das Modell der
strukturierten Dokumente in irgendeiner Form umgesetzt. Die beiden Systeme
LaTeX und MS-Word decken vom Typ her zusammen das Spektrum von
Textsystemen ab, die in akademischen und technischen Dokumentierungen
sowie im Büro zu finden sind. Die folgende Einführung der beiden
Beispielsysteme soll dabei aufzeigen, in welcher Weise Verarbeitungssoftware
für Dokumente heute das Modell der strukturierten Dokumente erfüllt.
Die Diskussion soll darüber hinaus auch dafür sensibilisieren, bei der Erstellung
von neuen eigenen Dokumenten die angebotenen Mechanismen eines
Dokumentensystems zur Unterstützung des Modells der strukturierten
Dokumente möglichst weitgehend auszunutzen. Dies ist im Interesse eines
effizienteren Document Management und einer flexibleren Weiterverwendung
der daraus resultierenden Dokument- und Datensammlungen.
Umsetzung des Modells mit LaTeX
Das Beispiel des Konzeptes zum Computer-Propädeutikum befindet sich im
LaTeX-Format im Anhang unter 1.6.5. Der textliche Inhalt ist gleich dem in der
Anzeige unter 1.6.1 und dem im XML-Format unter 1.6.4. Es ist auch eine
gewisse Übereinstimmung bei den markierten Strukturen festzustellen. Die in
der LaTeX-Version explizit markierten logischen Elemente sind die Angaben
über die Autorinnen \author{...}, die Hauptüberschrift \title{...}, die
Abschnittüberschriften \section{...}, die Liste \begin{itemize} ...
\end{itemize}}, die Aufzählungspunkte \item, das Dokument als Ganzes
\begin{document} ... \end{document}, das Datum \Datum und die
Versionsnummer \Version{...}.
Die syntaktischen Formen des Markup in LaTeX sind vielfältiger als in XML, auch
wenn es gewisse Ähnlichkeiten gibt. Eine direkte Entsprechung zu XMLs
Konstrukt <XXX>...</XXX>, um ein logisches Element XXX zu markieren, ist
21
22
Realisierung des Dokumentenmodells
\begin{XXX} ... \end{XXX}, aber es existieren auch die Formen
\XXX{...} und sogar \XXX ... ohne explizite Markierung des Elementes.
Die Funktionsbedeutung ergibt sich aus der Anfangsmarkierung eines Elements
zusammen mit der Metainformation, ob dieses nächste Element im Element
XXX enthalten sein kann. Einen Sonderfall stellt die implizite Abgrenzung von
Absätzen durch Leerzeilen dar.
Das zur Verfügung stehende Repertoire von logischen Elementen ist aus der
zugrunde liegenden Dokumentenklasse \documentclass{...} und den hinzugeladenen Paketen \usepackage[...]{...} ersichtlich. Hier werden
externe Dateien referenziert, die systemweit zur Verfügung stehen können. Es
werden die Sprachelemente definiert, die im Dokument vorkommen. Am
Anfang der LaTeX-Version befinden sich außerdem auch intern definierte
Elemente, nämlich \Datum und \Version.
Bei LaTeX ist also vorgesehen, dass die Autoren ihr eigenes Vokabular von
Elementen definieren und dass eine Gruppe von Autoren ein gemeinsames
Vokabular benutzt. Dieses wird dann nur einmal definiert und kann von
verschiedenen Dokumenten aus referenziert werden. Das Vokabular selbst ist
formal definiert und weitere syntaktische Einschränkungen sind implizit.
Mit LaTeX wird somit die erste Anforderung des Modells der strukturierten
Dokumente erfüllt: Der Inhalt und die logische Struktur eines Dokumentes
werden explizit repräsentiert. Die Strukturelemente können je nach Anwendungsfall frei definiert werden. Ansatzweise ist es auch möglich, die Strukturelemente formal festzulegen.
Wie sieht es mit der zweiten Anforderung aus, dass Vorgaben für die
Formatierung in separaten und auswechselbaren Stylesheets vorzuhalten sind?
Hier kommen wieder die Konstrukte \documentclass{...} und
\usepackage[...]{...} ins Spiel, die schon bei der Definition der
Strukturelemente herangezogen worden sind. Die hier referenzierten externen
Dateien erfüllen demnach eine Doppelfunktion: Die Festlegung darauf, welche
Strukturelemente im Dokument vorkommen können und die Vorgabe, wie die
Strukturelemente formatiert werden sollen.
Sie können diese Doppelfunktion nachvollziehen, wenn Sie sich die interne
Definition von \Datum und \Version anschauen. Die Definition von \Version
besagt beispielsweise, dass das nach der Markierung in geschweifte Klammern
eingeschlossene Argument, also die Versionsnummer, fett gesetzt werden soll:
fett=boldface und wird abgekürzt zu bf. Die Definition von \Datum
impliziert, dass die Systemfunktion \today aufgerufen wird, die dann das
aktuelle Datum einsetzt.
Das Modell der strukturierten Dokumente
Die Forderung nach Stylesheets ist erfüllt. Im Falle von LaTeX sind diese extern
und somit auswechselbar, oder intern und an das Dokument gebunden.
Die Schwachstellen, die es in der Umsetzung des Modells der strukturierten
Dokumente bei LaTeX gibt, werden bei einer genaueren Analyse offensichtlich.
Die Vorgehensweise, mit der bei LaTeX die logische Markierung mit der
Formatvorgabe verbunden wird, und wie das Format selber definiert ist weist
einige Schwächen auf. In LaTeX wird die Markierung als Kommando einer so
genannten Makroprogrammiersprache behandelt und die Formatdefinition als
Programm in dieser Programmiersprache. Mit dieser Makroprogrammierung
kann mehr erreicht werden als nur die Formatierung festzulegen. So speichern
die Programme für \author und \title ihre Argumente nur intern. Erst das
Kommando \maketitle im Eingabedokument, das gar keine offensichtliche
logische Funktion hat, platziert die entsprechenden Angaben auf der Seite und
legt ihre grafische Erscheinungsform fest. Im Extremfall können
Makroprogramme sogar andere Kommandos umdefinieren. Beispielsweise
könnten die Leerzeilen, die Absatzgrenzen markieren, so umdefiniert werden,
dass das jeweils erste Wort eines Absatzes als Schlüsselwort fett gedruckt wird.
Ebenso bewirkt das Klammerpaar \begin{verbatim} und \end{verbatim},
dass dazwischen eingeschlossenes Markup im Klartext ausgegeben und nicht
interpretiert wird.
In einer reinen Markupsprache werden nur die Markierungen bereitgestellt, die
im Dokument verwendet werden. Bei LaTeX wird die Funktion von Markupsprache, Formatdefinition und Programmierung untrennbar aneinander
gekoppelt. Dies muss nicht unbedingt problematisch sein – allerdings
widerspricht es dem allgemeinen und wohlbegründeten Informatik-Prinzip, der
Trennung von konzeptuellen Dimensionen. In der Praxis bedeutet das, dass eine
Person, die ein Stylefile für LaTeX erstellen möchte, über ein ganzes Spektrum
von Fertigkeiten verfügen muss. Die gewünschte logische Struktur muss geplant
und organisiert werden, das grafische Design muss entworfen und die so
entwickelten Vorstellungen sollten dann auch durch Computerprogramme
realisiert werden. Die Einstiegshürde für einen kreativen Gebrauch von LaTeX ist
also hoch. Im Gegenzug ist LaTeX durch seine Programmierbarkeit ein
mächtiges und in seiner Funktionalität bei Bedarf beträchtlich erweiterbares
System.
LaTeX ist ursprünglich als Textsatzsystem entwickelt worden. Die Funktionen
beschränken sich also im Wesentlichen auf den Bereich des Document
Management. Da jedoch bei LaTeX die Technik des eingebetteten Markups zur
Repräsentation von Strukturelementen zur Verfügung steht, können mithilfe
von weiteren Programmen sowie entsprechenden Schnittstellen die LaTeX-
23
24
Realisierung des Dokumentenmodells
Quelldokumente als Text eingelesen und automatisch weiterverarbeitet
werden.
Die LaTeX-Software ist frei verfügbar. Die deutsche TeX Users Group DANTE
e.V. stellt LaTeX für verschiedene Plattformen unter http://www.dante.de zur
Verfügung.
Zusammenfassend lässt sich also feststellen, dass LaTeX das Modell der
strukturierten Dokumente weitgehend erfüllt. Die Markupsprache besteht
jedoch nicht aus einfach deklarativen Markierungen, sondern ist eine Programmiersprache ist.
Umsetzung mit Microsoft Word
Das System Microsoft Word, das nun näher betrachtet wird, steht LaTeX in
seinen grundlegenden Eigenschaften fast diametral entgegen. Einfachheit der
Benutzung als Bürosystem ist oberstes Ziel, für das Abstriche bei der
Mächtigkeit, Flexibilität und Erweiterbarkeit in Kauf genommen werden.
Ein Word-Dokument wird in einer bereits formatierten Sicht editiert. Markup
wird in der Grundeinstellung nicht angezeigt. Die zugeordnete Formatierung
wird gleich umgesetzt und am Bildschirm angezeigt. Das WYSIWYG Prinzip ist
somit so gut wie perfekt umgesetzt wie die Abbildung unter 1.6.1 zeigt.
Der Anhang enthält bei Abb.: 1.11 ein Bildschirmfoto des Beispiel-Dokuments
mit struktureller Unterteilung. Wer ein Word-System installiert hat, kann
vielleicht nachvollziehen, welche Strukturelemente im vorliegenden Beispiel
verwendet wurden: Autorin, Titel, Hauptüberschrift, Nebenüberschrift, Datum,
Version, Abschnittüberschrift, Absatz und Aufzählungspunkt.
Autoren können mit Word Zeichenketten oder ganzen Absätzen eine Formatierung zuzuweisen. Die unterschiedlichen Formatierungen werden als Satz von
Formatier-Parametern mit den jeweiligen Werten unter einem individuellen
Bezeichner abgespeichert.
Vom Modell der strukturierten Dokumente aus gesehen entsprechen die Namen
der Formatvorlagen dem Vokabular an Strukturelementen, die Formatvorlage
selber entspricht einer Regel im Stylesheet und die Zuweisungen der
Formatvorlagen an die Absätze und Zeichenketten im Dokument entsprechen
der Markierung mit logischen Strukturelementen. Mit Word wird damit die
explizite Repräsentation von Inhalt und logischer Struktur eines Dokumentes
ermöglicht. Die Strukturelemente können je nach Anwendungsfall frei definiert
werden und ansatzweise ist es möglich, die Strukturelemente formal
festzulegen.
Word und Stylesheets
What you see is what
you get
Das Modell der strukturierten Dokumente
Darüber hinaus ist es in Word möglich in so genannten Document Templates, die
als Stylesheets fungieren, Sammlungen von Formatvorlagen anzulegen, sie zu
verwalten und sie Dokumenten zuzuordnen. Stylesheets in Word sind auf diese
Weise auswechselbar.
Mit Word wird das Modell der strukturierten Dokumente nicht in zufrieden
stellendem Maße erfüllt. Der Grund liegt darin, dass außer für Absätze und darin
enthaltene Zeichenketten keine logischen Markierungen im Dokument
angebracht werden können. Beispielsweise können die einzelnen Aufzählungspunkte der Liste nicht zu einem logischen Element Liste zusammengefasst
werden. Die Abschnittüberschrift mit den zugehörigen Absätzen kann nicht zu
einem Abschnitt gebündelt und entsprechend markiert werden. Die
Schachtelungstiefe von Strukturelementen in Word ist limitiert.
Selbsttestaufgabe 1.2
Zählen Sie einige Beispiele auf, in denen Sie eine tiefere Schachtelung von
Strukturelementen für sinnvoll halten als Word sie zulässt.
Bei Word wird kein eingebettetes Markup für die Repräsentation von
Strukturelementen im Dokument verwendet. Word-Dokumente liegen vielmehr
in einem proprietären, nicht dokumentierten und sich häufig ändernden Format
vor. Soll ein Word-Dokument automatisch weiterverarbeitet werden und dabei
auch die Struktur der Formatvorlage ausgewertet werden, gibt es zwei
Möglichkeiten:
1. Microsoft hat eine stabile Zugangsschnittstelle - die API - für
Fremdanwendungen definiert. So können die Word-Dokumente
programmgesteuert verarbeitet werden. Diese API ist von einigen
Programmiersprachen wie Visual Basic oder C++ aus nutzbar.
2. Das Word- Dokument wird in das stabile und dokumentierte Format RTF
exportiert. Anschließend kann auf die RTF-Daten zugegriffen werden.
Der Haken bei diesem Ansatz ist allerdings, dass die Abbildung der
Strukturelemente aus Word nach RTF instabil und mit
Informationsverlust behaftet ist. Bei Word sind also erheblich höhere
Hürden damit verbunden, die Dokumentdaten einer Fremdanwendung
zugänglich zu machen als bei LaTeX.
Nach ähnlichen Prinzipien wie Word operieren Word Perfect, FrameMaker,
Microstar Office und Quark Express.
Selbsttestaufgabe 1.3
25
26
Zeichenkodierungen
Welches Textsystem benutzen Sie im Alltag oder im Beruf? Analysieren Sie, inwieweit
Ihr Textsystem das Modell der strukturierten Dokumente unterstützt.
Selbsttestaufgabe 1.4
Nehmen Sie sich ein Dokument vor, das Sie vor kurzem geschrieben haben.
Analysieren Sie, welche Strukturelemente darin vorkommen. Nehmen Sie eine
logische Markierung dieses Dokuments vor, zunächst auf Papier und dann mit
Ihrem Textsystem. Definieren Sie zwei verschiedene Formate für Ihr Dokument
und erstellen Sie entsprechende Stylesheets. Erstellen Sie ein zweites
Dokument vom selben Typ wie Ihr Ausgangsdokument mit den gleichen
Strukturelementen und mit anderem Inhalt. Wenden Sie Ihre beiden Stylesheets
auf das neue Dokument an.
1.4 Zeichenkodierungen
Der Inhalt ist ein grundlegender Bestandteil eines strukturierten Dokuments.
Die Repräsentation im Computer, also die kodierte Datei, spielt somit auch eine
wichtige Rolle. Es wird dabei davon ausgegangen, dass der Inhalt aus „glattem“
Text besteht. Dies ist eine Folge von elementaren Texteinheiten wie
Buchstaben, Ziffern, Interpunktionszeichen und anderen Zeichen. Diese Zeichen
müssen letztendlich in Bits und Bytes kodiert werden. Eine Zeichenkodierung
gibt dazu eine Vorschrift an.
1.4.1 Übersicht
Die bekannteste Zeichenkodierung ist US-ASCII, standardisiert als ANSI X3.4 im
Jahre 1968. Sie ist eine die Variante zu ISO 646-US und somit von ISO 646 aus
dem Jahre 1972. Der Zeichensatz von US-ASCII bei Abb.: 1.3 reicht lediglich um
lateinische und US-amerikanische Texte sowie Texte in einigen wenigen
weiteren Sprachen zu kodieren.
Für das Deutsche, das Dänische und vierzehn weitere Sprachen sieht ISO 646
deshalb nationale Varianten vor, welche die US-ASCII-Zeichen „#“ (Hash), „$“
(Dollar), „@“ (At), „[“ (eckige Klammer auf), „\“ (Backslash), „]“ (eckige Klammer
zu), „ˆ“ (Caret), „`“ (Grave), „{“ (geschweifte Klammer auf), „|“ (Strich), „}“
(geschweifte Klammer zu) und „˜“ (Tilde) durch nationale Zeichen ersetzen. Die
deutsche Variante ISO 646-DE bei Abb.: 1.4 nimmt beispielsweise die in Tab.: 1.1
aufgeführten Ersetzungen vor.
ISO 646-US
[
\
ISO 646-DE
Ä
Ö
Glatter Text
Das Modell der strukturierten Dokumente
27
]
{
Ü
ä
|
}
~
@
ö
ü
ß
§
Tab.: 1.1 Die Ersetzungen der deutschen Variante von ISO 646
Aus diesem Grund erscheint ein Absender „Technische Universität München,
Arcisstraße 21“ gelegentlich auch heute noch in amerikanischen E-MailProgrammen in der Form „Technische Universit{t M}nchen, Arcisstra˜e 21“. Die
ursprünglich mit ISO 646-DE angelegte Kodierung der Adresse wird mithilfe von
ISO 646-US ausgegeben.
Abb.: 1.3: Der Zeichensatz ISO 646-US (US-ASCII)
Abb.: 1.4: Die deutsche Variante ISO 646-DE von ISO 646
28
Zeichenkodierungen
Abb.: 1.5: Der Zeichensatz ISO 8859-1 (ISO Latin-1)
Mitte der achtziger Jahre erweiterte die European Computer Manufacturer’s
Association den Zeichensatz US-ASCII zu einer Familie von Zeichensätzen, mit
denen die alphabetischen Schriftsysteme kodiert werden können. Die inzwischen von der ISO unter dem Namen ISO 8859i1 kodierte Zeichensatzfamilie
besteht aus den Zeichensätzen ISO 8859-1 bis ISO 8859-15. Jeder Zeichensatz
ISO 8859-X umfasst die 128 US-ASCII-Zeichen und ergänzt sie um weitere 128
Zeichen. Für die meisten westeuropäischen Sprachen wie das Deutsche,
Dänische oder Französische, ist ISO 8859-1, auch ISO Latin-1 (siehe Abb.: 1.5:
Der Zeichensatz ISO 8859-1 (ISO Latin-1)) genannt ISO 8859-7 deckt das
griechische Alphabet ab und ISO-8859-15 ersetzt im Wesentlichen das
internationale Währungssymbol mit dem Eurozeichen. Die so genannte Code
Page 12522 von Microsoft Windows ist in weiten Teilen identisch mit ISO 8859-1,
ersetzt aber einige Kontrollzeichen von ISO 8859-1 durch druckbare Zeichen. So
ist u. a. das Eurozeichen € vorhanden.
Anfang der neunziger Jahre kamen Unicode und ISO/IEC 10646 heraus. Das Ziel
dieser beiden in einem Sinne, den wir noch genauer kennen lernen werden,
äquivalenten Zeichenkodierungen ist Universalität, also Texte aus sämtlichen
Sprachen der Welt eindeutig zu kodieren. Die aktuellen Versionen Unicode 3.0
und ISO/IEC 10646-1:2000 kodieren 49.194 Zeichen, die alle modernen und viele
klassische Sprachen abdecken. Unicode und ISO/IEC 10646 werden laufend um
weitere historisch bedeutsame Zeichen und Sprachen ergänzt.
1.4.2 Was gehört zu einer Zeichenkodierung?
Die Kodierungen ISO 8859 und Unicode sind von zentraler Bedeutung für die
Internetformate HTML und XML. Ohne internationale Standards für die
_________________________________________________
1http://www.cs.tut.fi/~jkorpela/iso8859/
2http://msdn.microsoft.com/en-us/goglobal/cc305145.aspx
ECMA
Das Modell der strukturierten Dokumente
Kodierung universeller Zeichensätze wäre der grenzüberschreitende Dokumentenaustausch im Internet und im Web zum Scheitern verurteilt.
Abb.: 1.6 Der Windows-Zeichensatz 1252
Im Folgenden werden diese Kodierungen genauer vorgestellt, und zwar im
Rahmen eines abstrakten Kodierungsmodells für Zeichen [3, 6, 13].
Das Kodierungsmodell stellt einen konzeptuellen Rahmen dar, innerhalb dessen
man die Kodierung von potentiell einigen Milliarden Zeichen in Bitmuster
strukturieren und so besser verstehen kann.
Die einzelnen Bestandteile des Kodierungsmodells sind:
x
ein abstrakter Zeichensatz
x
eine Codetabelle
x
ein Kodierungsformat
x
ein Kodierungsschema
x
eine Übertragungssyntax, die über so genannten „glatten Text“ hinaus
geht
Die einzelnen Bestandteile des Kodierungsmodells entsprechen zunehmend
konkreten Repräsentationen von Zeichen, von einem abstrakten Begriff hin zu
Bitmustern. Zwischen einer abstrakten Repräsentationsebene und der
nächstliegenden konkreteren Repräsentationsebene besteht eine Abbil-
29
30
Zeichenkodierungen
dungsvorschrift im mathematischen Sinne. Um über mehrere Ebenen hinweg
von einer Zeichenposition in einer Codetabelle direkt zu seiner Kodierung in
einem Kodierungsschema zu gelangen, können die verschiedenen Abbildungsvorschriften konkateniert werden. Daraus entsteht eine so genannte
Zeichenkarte.
1.4.3 Abstrakter Zeichensatz
Die obere abstrakte Ebene des Kodierungsmodells ist der abstrakte Zeichensatz. Dieser besteht aus einer Menge so genannter abstrakter Zeichen.
Ein
abstraktes Zeichen ist eine Informationseinheit, die zur Repräsentation,
Organisation oder Kontrolle von Text dient. Es handelt sich hierbei also um
Buchstaben, Ziffern, Interpunktionszeichen, Akzente, grafische Symbole,
ideografische Zeichen, Leerzeichen, Tabulatoren, Zeilenweiterschaltung und vorschub und Kontrollkodes für Auswahl-Markierungen. Der Zeichensatz ISO
646-US (US-ASCII) beispielsweise besteht aus 33 Kontrollzeichen und 95
druckbaren Zeichen.
Ein abstrakter Zeichensatz beinhaltet jedoch noch keine Ordnung oder
Nummerierung der im Zeichensatz enthaltenen Zeichen. Dieser Aspekt kommt
in der nächsten Stufe des Kodierungsmodells in Form einer Codetabelle hinzu.
Abstrakte Zeichensätze wurden in der Regel festgelegt, um alle Texte einer
bestimmten Sprache oder Sprachfamilie angemessen zu kodieren. Der
Anspruch, alle lebenden und alle historisch bedeutsamen Sprachen mit einem
einzigen Zeichensatz kodieren zu können, führte zu den (identischen) Zeichensätzen von Unicode und ISO/IEC 10646, dem so genannten Universal Character
Set kurz UCS genannt.
Zur visuellen Präsentation von Text dienen abstrakte graphische Einheiten, die
Glyphen genannt werden. Glyphen entsprechen auf der Präsentationsebene den
Zeichen auf der Kodierungsebene. Die Liste
A, A, A, A, A, A
List.: 1.1 Typographie und Auswirkungen
enthält grafische Ausprägungen der Glyphen für den Buchstaben „A“, so
genannte Glyphenbilder. Nach Design und anderen Charakteristika zusammengehörige Glyphenbilder bilden einen Font.
Die Beziehung zwischen abstrakten Zeichen und Glyphen ist komplex. In Tab.:
1.2 gibt es eine beispielhafte Gegenüberstellung. Im einfachsten Fall präsentiert
sich ein einzelnes Zeichen als genau eine Glyphe. Einzelne Glyphen können
jedoch auch ganze Folgen von abstrakten Zeichen darstellen, wie etwa bei den
Ligaturen „fi“, „fl“, „ff“ oder „ffl“. Ein einzelnes abstraktes Zeichen mit Akzent,
Das Modell der strukturierten Dokumente
31
wie das Zeichen „ö“, kann durch zwei Glyphen dargestellt sein, nämlich die
Glyphe für das Basiszeichen „o“ und die darüber positionierte Glyphe für den
Akzent. Im Tamilischen gibt es Buchstaben, die durch ein Paar von Glyphen
repräsentiert werden. Dieses Glyphenpaar umrahmt dann in der formatierten
Sicht einen weiteren Glyphen, der den Nachbarbuchstaben im Text darstellt. Im
Arabischen schließlich gibt es kontextuelle Formen: ein Zeichen wird je nach dem
Kontext seiner Nachbarzeichen durch Glyphen ganz verschiedener grafischer
Form dargestellt. Ähnliche Phänomene sind aus der mittelalterlichen
Satztechnik bekannt.
Gutenberg verwendete bereits für ein- und denselben Buchstaben verschieden
breite Glyphen. Er verfügte auch bereits über abkürzende Symbole für Wörter
oder Silben, um einen gleichmäßigen rechten Rand zu erzeugen. Hier gibt also
die Formatierung den Kontext für die Wahl einer bzw. mehrerer Glyphen.
In vielen Fällen sind die elementaren Texteinheiten, die als abstrakte Zeichen
Eingang in einen Zeichensatz finden sollen, nicht offensichtlich. Sowohl aus den
verschiedenen Sprachen, deren Texte kodierbar sein sollen, als auch aus den
verschiedenen Verarbeitungsfunktionen, die auf die Texte Anwendung finden
sollen, können Anforderungen und somit Konflikte erwachsen.
Abstrakte Zeichen
A
f+i
f+f+l
ö
→
Glyphen
A
Fi
Ffl
o+¨
oder →
Tab.: 1.2 Das Verhältnis von abstrakten Zeichen und Glyphen
Im Schwedischen beispielsweise sind „ä“ und „ö“ Buchstaben für sich, die hinter
„z“ im Alphabet angeordnet sind. Im Französischen dagegen gibt die Diaräse
über einem Vokal lediglich einen Hinweis, dass der Vokal separat zu sprechen
ist, etwa in „duët“. Anstelle eines einzigen abstrakten Zeichens „ë“ wären also
die beiden abstrakten Zeichen „e“ und „¨“ mit zwei kombinierbaren Glyphen
natürlicher.
Für die Darstellung eines deutschen Textes in gedruckter Form ist die
Unterscheidung von Groß- und Kleinbuchstaben im Zeichensatz äußerst
bequem. Bei der Nutzung einer Sortierfunktion stellt sie jedoch ein kleines
Hindernis dar. Im Spanischen gilt „ll“ hinsichtlich des alphabetische Sortieren als
32
Zeichenkodierungen
ein einziger Buchstabe, für die Formatierung wird „ll“ jedoch als Folge von zwei
Buchstaben behandelt.
Die Festlegung eines abstrakten Zeichensatzes erfordert also eine sorgfältige
Abwägung von verschiedenen Alternativen, wobei Sprachen, Schriften und
Bearbeitungsfunktionen zu berücksichtigen sind. Das zugegebenermaßen sehr
allgemein formulierte Ziel bei der Entwicklung des Unicode-Zeichensatzes und
der gesamten Unicode-Kodierung war es, die Implementierung nützlicher Verarbeitungsprozesse für Textdaten zu ermöglichen.
Unicode 3.0 formuliert zehn Designprinzipien für den Unicode-Standard. Zwei
davon lassen sich bereits mit den Begriffen auf der Ebene des Zeichensatzes
formulieren:
x
x
Unicode kodiert Zeichen, nicht Glyphen.
Unicode kodiert glatten Text, keine Formatinformation.
Glyphen spielen bei der Formatierung von Texten eine Rolle und sind auch bei
der automatischen Texterkennung interessant. Für die computerisierte
Weiterverarbeitung von Inhalten sind sie naturgemäß nicht besonders wichtig.
1.4.4 Codetabelle
Auf der nächsten Stufe des Kodierungsmodells steht die Codetabelle, die den
abstrakten Zeichen im Zeichensatz eine Codeposition zuweist. Eine Codeposition ist immer eine natürliche Zahl, also größer oder gleich 01.
Der Code-Raum einer Zeichenkodierung ist immer ein Abschnitt der natürlichen
Zahlen, der alle Codepositionen enthält. Der Code-Raum kann jedoch auch
Zahlen enthalten, die keine zulässigen Codepositionen sind.
Codepositionen werden üblicherweise in Hexadezimalnotation angegeben,
wodurch eine natürliche Beziehung zu Bitmustern hergestellt wird. Diese
Beziehung kommt auf der nächsten Stufe des Kodierungsmodells – dem
Kodierungsformat – zum Tragen.
Ein Bit dient zur Darstellung oder Speicherung von 2 Zuständen, die durch die
Ziffern 1 und 0 repräsentiert werden. Die sechzehn möglichen Sequenzen von
vier Bits werden üblicherweise mit den Ziffern 0,...,9 und den Buchstaben A,...,F,
auch Hexadezimal-Ziffern genannt, bezeichnet.
_________________________________________________
1 Für diesen Kurs ist die Menge der natürlichen Zahlen so definiert, dass sie die 0 enthält: Es gilt
demzufolge IN entspricht IN+0
Das Modell der strukturierten Dokumente
33
Die Hexadezimal-Ziffern 0,...,9 und A,...,F stehen für die Dezimalzahlen von 0
bis 15. Jede Hexadezimalzahl stellt also eine natürliche Zahl dar. Eine Sequenz
von Hexadezimal-Ziffern hn...h0 kann in eine Dezimalzahl umgewandelt werden
mit folgender Summationsregel:
h0 + h116d + h2162d + ... + hn16nd
Die Zahl 16 ist hierbei in Dezimalschreibweise – erkennbar durch das Zeichen
„d“. Die Tabelle Tab.: 1.3 zeigt eine Beziehung zwischen dezimaler, hex- und
binärer Schreibweise.
Die Dezimal-Zahlen von 0 bis 255 können somit durch Sequenzen von zwei
Hexadezimal-Ziffern dargestellt werden und Zahlen von 0 bis 65.535 durch
Sequenzen von vier Hexadezimal-Ziffern und damit durch 16 Bit. Sequenzen mit
einer Länge von 16 Bit werden auch Word genannt.
Selbsttestaufgabe 1.5
Erstellen Sie eine Additions- und eine Multiplikationstabelle für Hex-Ziffern.
Wie in Abb.: 1.3 gezeigt, umfasst der Code-Raum für US-ASCII 128 Positionen. In
hexadezimaler Schreibweise geht der Code-Raum also von 0 bis 7F.
Hex-Ziffer
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
Bitmuster
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Dezimalschreibweise
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Tab.: 1.3 Die sechzehn Hex-Ziffern und ihre Repräsentationen als Bitmuster
Der Code-Raum für ISO 8859-X umfasst die 256d Positionen von 0 bis FFh, der
für Unicode die 65.536d Positionen von 0 bis FFFFh plus die 1.048.576d
34
Zeichenkodierungen
Positionen von 10000h bis 10FFFFh und der für ISO/IEC 10646 die 2.147.483.648d
Positionen von 0 bis 7FFFFFFFh.
Kodierung
US-ASCII
ISO 8859-X
Unicode
ISO / IEC 10646
Code-Raum
0-7F
0-FF
0-10FFFF
0-7FFFFFFF
Zahl der Codeposition
128
256
65.536+1.048.576
2.147.483.648
Tab.: 1.4 Code-Räume für verschiedene Kodierungen
Die Code-Räume können weiter strukturiert sein:
Abb.: 1.7 Unicode-Code-Raum mit Surrogatpositionen und privatem Bereich
Die Positionen von 0 bis 1Fh und die Position 7Fh von US-ASCII sind Kontrollzwecken vorbehalten, ebenso die Positionen 80h bis 9Fh von ISO 8859-X. Beide
Code-Räume können durch ein Byte repräsentiert werden.
Der Unicode-Code-Raum in Abb.: 1.7 enthält Lücken an den 2.048d
Surrogatpositionen von D800h bis DFFFh und an den Positionen FFFEh sowie
FFFFh. Diese Positionen sind für spezielle Funktionen vorgesehen und es werden
ihnen auch künftig keine Unicode-Zeichen zugeordnet werden.
Die 6.400 Unicode-Codepositionen von E000h bis F8FFh – also knapp 10 Prozent
des Code-Raums von 0 bis FFFFh – sind für private Zwecke reserviert. Die
Positionen sind etwa für Logos, für Icons oder für in speziellen Notationen
benötigte Zeichen etwa wie bei Musik und Tanz außerhalb des UnicodeZeichensatzes freigegeben. Die Codepositionen in diesem Bereich werden auch
in späteren Unicode-Ergänzungen für private Verwendung freigehalten.
Selbsttestaufgabe 1.6
Berechnen Sie den prozentualen Anteil der Codepositionen von E000h bis F8FFh
am Code-Raum von 0 bis FFFFh.
Von den übrigen 57.086d Unicode-Positionen im Bereich von 0 bis FFFFh sind 65d
mit Kontrollzeichen belegt, ist 49.194d Positionen ein druckbares Zeichen
zugeordnet und sind 7.827d Positionen noch frei für Erweiterungen von Unicode.
Im nächsten Abschnitt bei der Diskussion von Kodierungsformaten wird
Das Modell der strukturierten Dokumente
35
erläutert, wie der Unicode-Code-Raum im Bereich von 0 bis FFFFh durch zwei
Bytes und im Bereich von 10000h bis 10FFFFh durch vier Bytes repräsentiert wird.
Derzeit, d. h. bis zur Version 3.0, enthält die Unicode-Kodetabelle nur Werte im
Bereich von 0 h bis FFFFh.
Der Code-Raum von ISO/IEC 10646 ist konzeptuell unterteilt in 128 Gruppen von
256 Ebenen, wobei jede Ebene 256 Spalten mit je 256 Seiten, also insgesamt
65.536 Zeichen, enthält. Derzeit weist ISO/IEC 10646-1:2000 nur den
Codepositionen von 0 bis FFFFh, die in Ebene 0 von Gruppe 0 liegen Werte zu.
Diese Ebene heißt auch Basic Multilingual Plane. Die Kodetabellen von Unicode
Version 3.0 und ISO/IEC 10646-1:2000 sind Position für Position identisch. Das
Unicode-Konsortium und die ISO haben sich verpflichtet, diese
Übereinstimmung auch bei späteren Ergänzungen der Kodetabelle aufrechtzuerhalten; sie haben eine Organisationsform wechselseitiger Liaisonen geschaffen, die dies garantieren kann. Unicode beinhaltet für jedes in seiner
Codetabelle kodierte Zeichen die folgenden Daten:
• die Codeposition des Zeichens
• ein typisches Glyphenbild für das Zeichen
• einen Namen
• semantische Information
Die semantische Information ist eine Spezialität bei Unicode. ISO/IEC 10646
stellt diese Information nicht zur Verfügung. Für die Codeposition 00AFh steht in
Unicode die folgende Information zur Verfügung:
Das Zeichen hat (1) den Unicode-Namen „Macron“, (2) alternative Namen
„Overline“ und „APL Overline“ und ist (3) grafisch ein hochgestellter waagerechter Strich. Das Macron bewirkt (4) einen horizontalen Vorschub (Spacing
Character) und steht (5) in Beziehung zu weiteren Unicode-Zeichen, u. a. dem
Zeichen 0304 „Combining Macron“, das genauso aussieht wie das Macron
selbst, aber beim Formatieren keinen Vorschub bewirkt (Nonspacing Character),
sondern sich über das vorangehende Basiszeichen positioniert. Das Makron
kann (6) zerlegt werden in das Leerzeichen 0020, gefolgt von dem Combining
Macron 0304. Das Macron 00AF ist (7) im Unterschied zum Combining Macron
kein Kombinationszeichen sondern ein Basiszeichen.
Das Macron wurde, wie viele andere Unicode-Zeichen, aus Kompatibilitätsgründen in die Codetabelle aufgenommen. Hier wirkt sich das Designziel der
Konvertierbarkeit von existierenden Standards nach Unicode und zurück aus.
Ein Zeichen, das nur aus Kompatibilitätsgründen in der Codetabelle steht, lässt
sich gemäß einer Unicode-Vorgabe immer zerlegen in eine Sequenz aus so
genannten Primärzeichen.
BMP
36
Zeichenkodierungen
Für Basiszeichen, die von Kombinationszeichen gefolgt sind, wird bei Unicode
ein Äquivalenzbegriff definiert. Kombinationszeichen, die grafisch an unterschiedlichen Stellen am Basiszeichen positioniert werden, können miteinander
ausgetauscht werden. Beispielsweise können für die beiden Kombinationszeichen 0307h „Combining Dot Above“ und 0323h „Combining Dot Below“ die
Plätze getauscht werden, sodass die beiden Kodierungen 006F:0307:0323h und
006F:0323:0307h für ein „o“ mit einem Punkt über sich und einem Punkt unter
sich miteinander äquivalent sind.
Auf dem Äquivalenzbegriff für Zeichenfolgen und der Zerlegung von
Kompatibilitätszeichen in Folgen von Primärzeichen und der Komposition von
Kompatibilitätszeichen aus Folgen von Primärzeichen beruhen auch zwei
Normalisierungen von Unicode Zeichenketten, nämlich die Precomposed Form
und die Decomposed Form.
Bei Web-Texten sollten stets Zeichen benutzt werden, die schon so weit wie
möglich zusammengesetzt sind. Verbleibende Kombinationszeichen sollten in
normierter Reihenfolge angegeben werden. Web-Anwendungen sollten bei
Texten, die eingelesen werden so liberal wie möglich programmiert sein. Im
Gegenzug dazu sollten sie so konservativ filtern bei Texten, die sie ausgeben.
Dies soll Kompatibilitätsprobleme weitgehend vermeiden.
Von den zehn Designprinzipien, die Unicode anführt, lassen sich fünf auf der
Ebene der Codetabelle erklären:
Kodierung/Kodierungsformat
Code-Raum/Code-Einheit/Länge
US-ASCII / kanonisch
ISO 8859-X / kanonisch
ISO / IEC 10646, Ebene 0 / UCS-2
ISO / IEC 10646 / UCS-4
Unicode 3.0 / UTF8
Unicode 3.0 / UTF16
0-7F / 1Byte / fest (1)
0-FF / 1 Byte / fest (1)
0-FFFF / 1 Word / fest (1)
0-7FFFFFFF / 2 Word / fest (1)
0-10FFFF / 1 Byte / variabel (1-4)
0-10FFFF / 1 Word / variabel (1-2)
Tab.: 1.5 Kodierungsformate für verschiedene Kodierungen
1. Unifikation: Unicode repräsentiert Zeichen, die in verschiedenen
Alphabeten vorkommen, aber vom Aussehen her ähnlich sind, nur
einmal.
2. Konvertierbarkeit zwischen etablierten Standards: Eine eineindeutige
Abbildung aus einem etablierten Standard nach Unicode soll ermöglicht
werden.
Zeichenpositionen
aus
einem
einzelnen
international
verbreiteten Zeichensatz, die nach dem Designprinzip der Unifikation
eigentlich miteinander identifiziert werden müssten, erhalten trotzdem
getrennte Unicode-Codepositionen.
Äquivalenz von Zeichen
Das Modell der strukturierten Dokumente
3. Semantik: Unicode definiert semantische Eigenschaften für Zeichen.
4. Dynamische Komposition: Jedes Basiszeichen kann mit beliebig vielen
Kombinationszeichen gleichzeitig gepaart werden.
5. Charakterisierung äquivalenter Kodierungen: Für die verschiedenen
Kodierungen eines Basiszeichens mit Kombinationszeichen oder eines
primären und eines aus Kompatibilitätsgründen in den Zeichensatz
aufgenommenen Zeichens kann eine normalisierte Kodierung gefunden
werden.
1.4.5 Kodierungsformat
Mithilfe des Kodierungsformats für eine Codetabelle werden die Bitrepräsentationen für die Codeposition festgelegt. Dazu gibt es eine Code-Einheit, die in
der Regel aus acht oder sechzehn Bits besteht. Durch das Kodierungsformat
werden dann die Positionen eines Code-Raums in Sequenzen von CodeEinheiten und somit in Bitmuster abgebildet. Wird jede Codeposition einer
Codetabelle auf die gleiche Anzahl von Code-Einheiten abgebildet, sprechen wir
von einem Kodierungsformat fester Länge; andernfalls hat das Kodierungsformat variable Länge.
Ein kanonisches Kodierungsformat fester Länge ergibt sich aus der Dualzahldarstellung von Codepositionen. Die Anzahl der jeweils benötigten CodeEinheiten ergibt sich aus der Größe des Code-Raum und der Zahl der Bits in
einer Code-Einheit. In Tab.: 1.5 gibt es eine Übersicht über die verschiedenen
Kodierungsformate.
Für US-ASCII bzw. seine ISO 646-Varianten sowie für die ISO 8859XKodetabellen ist das kanonische Kodierungsformat das einzig gebräuchliche.
Für die höchstens 256d vielen Positionen genügen eine Code-Einheit von acht
Bits sowie eine Code-Einheit pro Zeichenposition.
Die beiden kanonischen Kodierungsformate für die Code-Räume von 0 bis FFFFh
bzw. von 0 bis 7FFFFFFFh heißen UCS2 und UCS4. Beide Kodierungsformate
repräsentieren eine Codeposition mit genau einer Code-Einheit. Im Falle von
UCS2 ist die Code-Einheit 16 Bit lang und im Falle von UCS4 ist sie 32 Bits lang.
Prinzipiell kann eine Kodierung mehrere Kodierungsformate definieren und das
kanonische Kodierungsformat muss nicht darunter sein. Unicode 3.0
beispielsweise definiert nur zwei Kodierungsformate, nämlich UTF8 und UTF16,
wobei UTF für Unicode Transfer Format steht. UTF8 hat eine Code-Einheit von 8
Bits Länge und repräsentiert Codepositionen mit einer bis vier Code-Einheiten.
37
38
Zeichenkodierungen
UTF16 hat eine Code-Einheit von 16 Bits Länge und repräsentiert
Codepositionen mit einer bis zwei Code-Einheiten.
Ursprünglich war Unicode für einen Code-Raum von 0 bis FFFFh ausgelegt,
sodass sechzehn Bits genügt hätten, um Codepositionen darzustellen.
Tatsächlich hätte dieser Code-Raum ja auch mindestens bis Version 3.0
ausgereicht. Als jedoch klar wurde, dass zumindest für alle historisch
interessanten Sprachen und Alphabete der Code-Raum nicht ausreichen würde
und weil man mit ISO/IEC 10646 und seinem größeren Code-Raum kompatibel
bleiben wollte, wurde das Konzept der Surrogat-Codepositionen eingeführt und
der Code-Raum von Unicode bis zur Position 10FFFFh erweitert. Das
Kodierungsformat UTF16 benutzt jeweils ein Paar von Surrogatpositionen, um
Positionen jenseits von FFFF darzustellen.
UTF16 stellt wie die kanonische Kodierung jede gültige Codeposition im Bereich
von 0 bis FFFFhdar. Die ungültigen Codepositionen in dem so genannten hohen
Surrogatbereich von D800h bis DBFFh und in dem niedrigen Surrogatbereich
von DC00 bis DFFF entsprechen den hohen und niedrigen Surrogat-Bitfolgen
der Form 110110xxxxxxxxxxb und 110111xxxxxxxxxxb, in denen jeweils zehn
Bitpositionen für 210 verschiedene Werte frei wählbar sind. Die
Gegenrechnungen:
DBFFh +1-D800h =DC00h-D800h=400h=4x162d=210d
DFFFh +1-DC00h=E000h-DC00h=400h=210d
bestätigen, dass in jedem der beiden Surrogatbereiche 210, also 1024d ungültige
Codepositionen liegen. Ein Paar von Surrogatpositionen, von denen die erste im
hohen und die zweite im niedrigen Bereich liegt, ist somit eindeutig
charakterisiert durch zwanzig Bits, die wiederum die 220 Werte von 10000h bis
10FFFFh repräsentieren können:
10FFFF h+1-10000h=110000h-10000h=100000h=165d=220d
Es ist deshalb stimmig, wenn bei UTF16 eine Codeposition P im Bereich von
10000h bis 10FFFFh durch die kanonische Bitdarstellung der beiden hohen und
niedrigen Surrogatpositionen H und L repräsentiert, wobei sich H und L wie folgt
berechnen:
H = (P – 10000h)DIV400h + D800h
L = (P – 10000h)MOD400h + DC00h
Das Modell der strukturierten Dokumente
Einheiten
1
2
3
4
5
6
Darstellungsform
0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx (10xxxxxx)2
11110xxx (10xxxxxx)3
111110xx (10xxxxxx)4
1111110x (10xxxxxx)5
39
freie Bits
7
11
16
21
26
31
Maximum
7F
7FF
FFFF
1FFFFF
3FFFFFF
7FFFFFFF
Tab. 1.6: Grunddaten zu Kodierungseinheiten
Umgekehrt bestimmen eine hohe und eine niedrige Surrogatposition H und L
eine Unicode-Position P im Bereich von 10000 bis 10FFFF wie folgt:
P = (H − D800h) · 400h + (L − DC00h) + 10000h
Selbsttestaufgabe 1.7
Wie wird die Unicode-Position F0000 unter UTF16 dargestellt?
Selbsttestaufgabe 1.8
Welche Unicode-Position wird unter UTF16 durch die beiden Surrogat-Words
DAFF und DEFF dargestellt?
Das zweite Unicode-Kodierungsformat, nämlich UTF8, hat die besondere Eigenschaft, die ersten 128 Codepositionen kanonisch mit einem Byte darzustellen.
UTF8 ist damit US-ASCII-transparent.
Die Kodierungseinheit von UTF8 ist 8 Bits lang. UTF8 stellt jede Position im
Bereich von 0 bis FFFFh mit ein bis drei Kodierungseinheiten, im Bereich von 0
bis 10FFFFh mit ein bis vier Kodierungseinheiten und im Bereich von 0 bis
7FFFFFFFh mit ein bis sechs Kodierungseinheiten dar.
Die UTF8-Darstellung einer Position mit einer einzigen Kodierungseinheit hat
die Form 0xxxxxxxb mit einer führenden 0 und beliebigen Bits, die anstelle des
Platzhalters x stehen. Die UTF8-Darstellung einer Position mit n
Kodierungseinheiten hat die Form 1n0x7−nb gefolgt von n − 1 Kodierungseinheiten der Form 10xxxxxxb. Bei drei Kodierungseinheiten sind also genau
sechzehn Bits frei wählbar, sodass mit drei Kodierungseinheiten unter UTF8
Code-Positionen bis FFFF darstellbar sind.
40
Die mit n Kodierungseinheiten darstellbaren Positionsbereiche lassen sich aus
der Tab. 1.6: Grunddaten zu Kodierungseinheiten entnehmen.
Für die Darstellung einer Codeposition unter UTF8 muss immer die kleinste Zahl
von Kodierungseinheiten gewählt werden. Eine Codeposition im Bereich von
800h bis FFFFh muss also mit drei Kodierungseinheiten und darf nicht –obwohl
das technisch möglich wäre – mit vier Kodierungseinheiten dargestellt werden.
Die Umkehrfunktion von UTF8, die aus einer Folge von Code-Einheiten eine
Codeposition berechnet, darf jedoch auch zu lange Darstellungen korrekt
umrechnen. Die zwei Bytes C1BFh dürfen also unter UTF8 in die Position 7Fh
zurückgerechnet werden, obwohl die UTF8-Darstellung der Position 7Fh das
Byte 7Fh ist.
Das Unicode-Designprinzip der Effizienz lässt sich auf Ebene von Kodierungsformaten erläutern. Für jedes der beiden Unicode-Kodierungsformate UTF8 und
UTF16 lässt sich in einem Strom von Positionsdarstellungen von jeder
Kodierungseinheit aus der Anfang der zugehörigen Positionsdarstellung mit
beschränktem Backup finden. Im Falle von UTF16 muss höchstens um eine
Kodierungseinheit zurückgegangen werden, im Falle von UTF8 höchstens um
drei Positionen.
Selbsttestaufgabe 1.9
Kodieren Sie die ASCII-Zeichenfolge „<?xml“ ohne die Anführungsstriche unter
UTF8 und UTF16.
Selbsttestaufgabe 1.10
Zeigen Sie, dass unter UTF8 die Kodierungen der Positionen 192 bis 255 alle
dasselbe führende Byte haben und zwar C3h.
Selbsttestaufgabe 1.11
Ein Textsystem stellt das Zeichen „ü“ als Kombination zweier Glyphen à und 1/4
dar. Überlegen Sie, in welchem Kodierungsformat der Textstrom vorliegen
könnte und welche Annahmen das Textsystem über das Kodierungsformat
macht.
Zeichenkodierungen
Das Modell der strukturierten Dokumente
41
1.4.6 Kodierungsschema
Damit Daten über Netzwerke zuverlässig ausgetauscht werden können, müssen
sie in eine lineare Folge von Bytes gebracht werden. Dieser Vorgang wird auch
Serialisierung genannt. Mithilfe eines Kodierungsformats wird der Text als Folge
von Kodierungseinheiten dargestellt. Ein Kodierungsschema wird nun dazu
genutzt zu einem Kodierungsformat zusätzlich festzulegen, wie die
Kodierungseinheiten in Bytefolgen zu serialisieren sind.
Ist die Kodierungseinheit eines Kodierungsformats selbst acht Bits lang, so ist
nichts mehr festzulegen und das Kodierungsschema ist mit dem Kodierungsformat identisch. So kann also UTF8 sowohl als Kodierungsformat als auch als
Kodierungsschema bezeichnet werden.
Ist die Kodierungseinheit ein Word, wie bei UTF16, so gibt es zwei Möglichkeiten
der Serialisierung: Big Endian1und Little Endian. Dementsprechend gibt es zu
UTF16 zwei Kodierungsschemata: UTF16-BE und UTF16-LE. Analoges gilt für
UCS2 und UCS4.
Mit dem Byte Order Mark an Position FEFFh kann bei einem UTF16repräsentierten Datenstrom signalisiert werden, welche der beiden Serialisierungen, Big Endian oder Little Endian, vorliegt. Da FFFEh keine zulässige
Codeposition bei Unicode ist, lässt sich schließen, dass das Kodierungsschema
UTF16-LE vorliegt. Dies funktioniert jedoch nur dann, wenn als die ersten zwei
Bytes FFh und FEh gelesen werden. Ein BOM am Anfang eines UTF16-kodierten
Datenstroms ist nicht Bestandteil der Daten und wird – abgesehen von seiner
Signalwirkung für die Serialisierung – ignoriert. Tritt die Codeposition FEFFh
dagegen an anderer Stelle im Datenstrom auf, so wird sie als das entsprechende
Unicode-Zeichen Zero Width No-Break Space interpretiert, das dieser Position
zugewiesen ist.
Generell darf ein Unicode-Zeichenstrom am Anfang mit dem zusätzlichen
Zeichen BOM versehen werden. Anwendungen, die über keine Metainformation
über die Natur des Datenstroms verfügen, erhalten so das Signal, dass es sich im
Folgenden um Unicode-Daten, die in einem bestimmten Kodierungsschema
vorliegen, handelt. Das erste BOM eines Zeichenstroms bildet also keinen Teil
der eigentlichen Daten.
Selbsttestaufgabe 1.12 Was ist die Kodierung des BOM FEFF unter dem
Kodierungsschema UTF8? Überprüfen Sie, ob das Vorausschicken eines BOM
_________________________________________________
1 Das höherwertige Bit kommt zuerst
BOM
42
ausreicht, um zwischen den bisher besprochenen Kodierungsschemata zu
differenzieren.
1.4.7 Jenseits von glattem Text – eine Übertragungssyntax
Mit glattem Text, der als Folge von Unicode-Zeichen kodiert ist, kann der reine
Inhalt von strukturierten Dokumenten gehandhabt werden. Da auch
eingebettetes Markup – wie etwa bei den in Abschnitt 1.3.7 eingeführten Tags
der Form <XXX> und </XXX> – eine Folge von Zeichen ist, scheint es auf den
ersten Blick als wäre das Problem, strukturierte Dokumente zu kodieren, bereits
vollständig gelöst.
Es ergibt sich jedoch eine zusätzliche Komplikation dadurch, dass der Markuptext vom Inhaltstext syntaktisch voneinander unterscheidbar sein muss. Zur
Abgrenzung von Markup und Inhalt werden bestimmte Funktionszeichen
eingesetzt, die dann außerhalb ihrer syntaktischen Rolle weder im Markup
selbst noch im Inhalt des Klartextes vorkommen dürfen. In XML ist „<“ ein
solches Funktionszeichen, das den Anfang eines Tags charakterisiert. Das
Zeichen „<“ darf deswegen im Inhaltstext eines XML-Dokuments nicht
vorkommen.
Die klassische Methode Funktionszeichen in glattem Text unterzubringen, ist
die Verwendung von so genannten Escape-Zeichen. Diese werden nicht selbst als
Bestandteil des Textes interpretiert sondern signalisieren die Präsenz eines
Zeichens, das eigentlich nicht im Text vorkommen darf. Im Falle von XML
bezeichnet die Formel &#<<Hexziffern>>; oder als &<<Dezimalziffern>>;
im Inhaltstext das Unicode- Zeichen an Position <<Hexziffern>> bzw. an
Position <<Dezimalziffern>>. Wir können ein „<“ im Inhaltstext als z. B. als
< notieren und das zusätzliche Funktionszeichen „&“ durch &.
Im Allgemeinen wird glatter Text nicht direkt als Folge von Zeichen auftreten.
Vielmehr wird die Zeichenfolge, die einen Text ausmacht, konstruiert aus einer
weiteren Folge von so genannten Eingabezeichen, von denen ganze
Teilsequenzen einzelne Zeichen des Textes repräsentieren. In der Praxis existiert
also eine zweistufige Kodierung von Texten. Zeichen entweder durch sich selbst
oder durch spezielle Zeichenfolgen wie &#<<Hexziffern>>; zu kodieren, löst
insgesamt drei bekannte Probleme:
1 In glattem Text lassen sich Funktionszeichen an Stellen unterbringen, an
denen sie nicht im Klartext vorkommen dürfen.
2 Es können Zeichen in einen Text eingefügt werden, die das verwendete
Eingabewerkzeug nicht unterstützt. So kann also in ein XML-Dokument
Zeichenkodierungen
Das Modell der strukturierten Dokumente
43
auch mithilfe einer amerikanischen Tastatur etwa der Umlaut „ä“ als
ä eingegeben werden.
3 Die Paare aus den beiden ASCII-Steuerzeichen linefeed bzw. newline und
carriage return können als ein- und dasselbe Zeilenendezeichen interpretiert werden. Auf diese Weise werden die beiden gängigen verschiedenen
Konventionen im Text ein Zeilenende zu signalisieren vereinheitlicht.
Werkzeuge mit denen die Texte verarbeitet werden, verfügen damit über
eine plattformunabhängige Methode zur Zeilen-Nummerierung.
Die Technik, Zeichen durch Zeichenfolgen spezieller Syntax zu kodieren, ist
Standard in allen Bereichen, in denen Texte erstellt werden. Insbesondere bei
der Erstellung von Programmtexten spielt sie eine wichtige Rolle.
Java-Programme etwa dürfen beliebige Unicode-Zeichen der Basic Multilingual
Plane enthalten. Dies gilt unter anderem für Namen, Literale für Zeichenketten
oder bei Kommentaren. Grundsätzlich kann im Programmtext jedes Zeichen
durch sich selbst oder durch eine Sequenz \u<<xxxx>> mit einer ungeraden
Anzahl von Zeichen „\“, einer positiven Anzahl von Zeichen „u“ und einer
Sequenz <<xxxx>> von genau vier Hexziffern dargestellt werden. Die einzige
Ausnahme betrifft das Zeichen „\“, das nur dann für sich selbst stehen darf,
wenn es nicht in einer Sequenz der Form \u<<xxxx>> vorkommt.
Der Programm-Code in Java zu dem Klassiker “HelloWorld”
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
List.: 1.2 Ein typischer Java Programm-Code
dürfte also auch in folgender Form erscheinen:
\u0070ublic class HelloWorld {
public static void main(String[] args) {
System.out.println("\uuuu0048ello World");
\\\u007D
}
List.: 1.3 Programm-Code mit Escape Zeichen
Die Java-Notation macht es also möglich, einen beliebigen Unicode-Text mit
Zeichen im Bereich zwischen 0 und FFFF als einen 7-Bit-ASCII-Text zu kodieren.
LF und CR
44
Zusammenfassung und Ausblick
1.4.8 Unicode-Werkzeuge
Bei der Diskussion von Werkzeugen zur Bearbeitung von Unicode-Texten gibt es
den entscheidenden Unterschied zwischen der Eingabe und der Darstellung von
Unicode-Zeichen. Wird ein genuiner Unicode-Editor gewünscht, so ist die
Auswahl derzeit noch nicht allzu groß. Eine der wenigen Optionen ist ein
Forschungsprototyp von der Duke University namens UniEdit,1 der eine Vielzahl
von Kodierungsschemata und Eingabeformaten unterstützt.
Ansonsten unterstützt jeder beliebige Editor für 7-Bit-ASCII den Unicode. Die so
erstellten Texte können als Unicode-Texte in UTF8-Kodierung ausgegeben
werden. Damit können auch nur 7-Bit-ASCII-Zeichen in eigenen Texten
verwendet werden. Indirekt gibt es eine weitere Kodierungsstufe, über die der
Zugriff zu dem vollen Unicode-Zeichenrepertoire gewährleistet ist. Im Falle der
Java-Kodierung steht ein Werkzeug zur Verfügung, mit dem die Java-Notation
wieder dekodiert werden kann. Sie wird so und in verschiedene
Kodierungsformate übersetzt. Das Werkzeug heißt native2ascii und ist
Bestandteil des Java Software Development Kit.
Selbsttestaufgabe 1.13
Installieren
Sie,
falls
erforderlich,
das
Werkzeug
native2ascii
(http://java.sun.com) aus dem Java Software Development Kit. Erstellen Sie eine
Textdatei mit Umlauten und anderen Zeichen außerhalb von US-ASCII und
übersetzen Sie diese Datei mithilfe von native2ascii nach UTF8.
Selbsttestaufgabe 1.14
Erstellen Sie eine Textdatei, in der Sie in Java-Notation die Zeichen außerhalb
des Code-Raumes von 0 bis FFh referenzieren. Versuchen Sie, diese Datei mit
native2ascii nach ISO Latin-1 bzw. Code Page 1252 zu Übersetzen. Was passiert?
1.5 Zusammenfassung und Ausblick
Zwei wichtige Faktoren machen digitale Dokumente zu modernen Informationsträgern, die vielfach verwendbar und der automatischen Verarbeitung
zugänglich sind. Die beiden Faktoren sind das Modell der strukturierten
Dokumente, dem solche digitalen Dokumente entsprechen sollen, und die
Standardisierung der Textkodierung, die Textinhalte austauschbar macht. Beide
_________________________________________________
1http://www.humancomp.org/uniintro.htm
Das Modell der strukturierten Dokumente
Faktoren wurden in dieser Kurseinheit besprochen. Als dritter Faktor steht die
Standardisierung der Strukturinformation noch aus; damit werden die
kommenden Kurseinheiten im Zusammenhang mit XML und den verwandten
Sprachfamilien zu tun haben.
45
46
Anhang: Formate am Beispiel
1.6 Anhang: Formate am Beispiel
1.6.1 Fertig formatiertes Dokument für ein Journal
Prof. Dr. Anne Brüggemann-Klein
Dr. Angelika Reiser
Prof. Dr. Doris Schmitt-Landsiedel
Ein Computer-Propädeutikum von Studentinnen für
Studentinnen
Konzept vom 12.10.1999, Version 1.3
Hintergrund und Ziele
Gerade in technischen Studiengängen spielen Computer als alltägliches Arbeitsmittel eine wichtige
Rolle. Es ist wesentlich, daß die Studierenden gleich zu Beginn des Studiums einen vertrauten und
sicheren Umgang mit diesem Handwerkszeug haben. Eventuell vorhandene Hemmschwellen müssen
sobald wie möglich abgebaut werden; davon ist eine studienzeitverkürzende Wirkung zu erwarten.
Es ist bekannt, daß Schülerinnen weniger Zugang zu einem Computer haben als Schüler und weniger
häufig einen eigenen Computer besitzen. Das Computer-Propädeutikum richtet sich deshalb primär an
Studentinnen, die dadurch eventuell fehlende Vorerfahrungen ausgleichen können.
Das Kursangebot des Computer-Propädeutikums
Das Computer-Propädeutikum bietet Kurzeinführungen mit praktischen Übungen in für das Studium an
der TU München relevante Themen rund um den Computer. Jeder Kurs dauert-als Block angeboten-drei
Stunden und beinhaltet eine tutorielle Einführung in das Thema, praktische Übungen am Rechner und
eine Abschlußbesprechung zu den Übungen. Kursthemen können sein:
x
x
x
x
x
x
x
x
x
x
Textverarbeitung mit Word
Textverarbeitung mit LaTeX
Textverarbeitung mit Star Office
E-Mail
Browsen und Informationsnutzung im World-Wide Web
Erstellen von Informationsangeboten im World-Wide Web (HTML)
Betriebssystem, Dateiorganisation
Gestaltung des Desktops (Window-Manager)
ASCII-Editoren (vi, emacs)
Kauf eines PCs
Abb.: 1.8 Erste Seite des formatierten Textes
Das Modell der strukturierten Dokumente
x
Datenverbindungen von zu Hause (analog, ISDN)
x
Fakultätsspezifische Informationsinfrastrukturen
Jeder Kurs sollte sich auf ein enges Thema konzentrieren. Die Themenliste ist offen für Ergänzungen.
Kriterium ist, daß der Kursinhalt propädeutischer Natur für das Studium an der TU ist und eine Form der
Computernutzung zum Inhalt hat. Ein Kurs kann fakultätsübergreifend oder fakultätsspezifisch sein. Die
Kurse sind in der Regel auf eine spezielle Rechnerplattform (PC/Windows, Unix) zugeschnitten.
Die Zielgruppe des Computer-Propädeutikums
Das Kursangebot richtet sich an Studentinnen im ersten Semester. Wird ein Angebot von dieser
Zielgruppe nicht ausgeschöpft, steht es auch Studentinnen höherer Semester und, in dritter Priorität,
männlichen Studierenden offen.
Die Leiterinnen und Leiter des Computer-Propädeutikums
Die Kurse werden vorzugsweise von Studentinnen höherer Semester konzipiert und durchgeführt. Zur
Ergänzung des Kursangebots können auch Mitarbeiterinnen und Mitarbeiter oder Studenten höherer
Semester Kurse anbieten. Nur von Studierenden angebotene Kurse können im Rahmen des Programms
finanziert werden.
Die Kursleiterinnen und -leiter sind selbst für die Organisation von Seminar- und Rechnerräumen und
von Zugangsmöglichkeiten zu den Räumen am Wochenende für ihren Kurs verantwortlich. Wir gehen
davon aus, daß die Studiendekaninnen und -dekane sie bei der Organisation unterstützen.
Durchführung
Das Computer-Propädeutikum ist eine Initiative der Frauenbeauftragten der TU München und wird vom
Frauenbüro (Kerstin Hansen, Anja Quindeau) organisiert. Die TU München finanziert das Programm
aus dem Tutorienprogramm zur Verkürzung der Studiendauer. Für von Studierenden angebotene Kurse
wird ein Werksvertrag abgeschlossen, der die Konzeption, Vorbereitung und Durchführung eines
dreistündigen Kurses beinhaltet. Konzeption und Vorbereitung eines Kurses werden mit 200 DM und
jede Durchführung mit 100 DM honoriert. Das Frauenbüro erhält Hilfskraftmittel aus dem
Tutorienprogramm für die Organisation des Computer-Propädeutikums. Wir rechnen mit folgenden
Kosten: 20 Kurse, jeder zweimal durchgeführt, zu 20 mal 200 DM plus 20 mal 2 mal 100 DM, also 8000
DM, plus 1000 DM für die Organisation im Frauenbüro.
Eine erste Ausschreibung des Programms ist bereits erfolgt. Interessierte Kursleiterinnen und -leiter
können ihr Kursangebot bis zum 5.11.1999 abgeben. Bitte benutzen Sie dazu unser Formular. Die ersten
Kurse sollen noch im November 1999 stattfinden. Bei Bedarf erfolgt eine zweite Ausschreibung, zu der
neue Kursangebote abgegeben werden können, Anfang Dezember 1999. Die Ausschreibung des
Programms, die Gestaltung des Kursangebots sowie die Ankündigung der Kurse erfolgt durch das
Frauenbüro in Zusammenarbeit mit den Studierendenvertretungen, den Studiendekanen und den
Frauenbeauftragten. Die Verträge werden nach Absprache mit dem Frauenbüro von der
Hochschulverwaltung abgeschlossen.
Die Kurse sollen zu Randzeiten (Abends, Freitags Nachmittags oder am Wochenende) stattfinden.
Abb.: 1.9 Zweite Seite des formatierten Textes
47
48
Anhang: Formate am Beispiel
1.6.2 Unformatiertes Dokument mit reinem Text
Prof. Dr. Anne Brueggemann-Klein Dr. Angelika Reiser
Prof. Dr. Doris Schmitt-Landsiedel Ein ComputerPropaedeutikum
von
Studentinnenfuer
Studentinnen
Konzept vom 12.10.1999, Version 1.3 Hintergrund und
Ziele Gerade in technischen Studiengaengen spielen
Computer alsalltaegliches Arbeitsmittel eine wichtige
Rolle. Es ist wesentlich, dass die Studierenden gleich
zu Beginn des Studiums einen vertrauten und sicheren
Umgang mit diesem Handwerkszeug haben. Eventuell
vorhandene Hemmschwellen muessen sobald wie moeglich
abgebaut werden; davon ist eine studienzeitverkuerzende
Wirkung zu erwarten. Es ist bekannt, dass Schuelerinnen
weniger Zugang zu einem Computer haben als Schueler und
weniger haeufig einen eigenen Computer besitzen. Das
Computer-Propaedeutikum richtet sich deshalb primaer an
Studentinnen,
die
dadurch
eventuell
fehlende
Vorerfahrungen ausgleichen koennen. Das Kursangebot des
Computer-Propaedeutikums
Das
Computer-Propaedeutikum
bietet Kurzeinfuehrungen mit praktischen Uebungen in
fuer das Studium an der TU Muenchen relevante Themen
rund um den Computer. Jeder Kurs dauert-als Block
angeboten-drei Stunden und beinhaltet eine tutorielle
Einfuehrung in das Thema, praktische Uebungen am
Rechner und eine Abschlussbesprechung zu den Uebungen.
Kursthemen koennen sein: Textverarbeitung mit Word
Textverarbeitung mit LaTeX Textverarbeitung mit Star
Office E-Mail Browsen und Informationsnutzung im WorldWide Web Erstellen von Informationsangeboten im WorldWide
Web
(HTML)
Betriebssystem,
Dateiorganisation
Gestaltung des Desktops (Window-Manager) ASCII-Editoren
(vi, emacs) Kauf eines PCs Datenverbindungen von zu
Hause
(analog,
ISDN)
Fakultaetsspezifische
Informationsinfrastrukturen Jeder Kurs sollte sich auf
ein enges Thema konzentrieren. Die Themenliste ist
offen fuer Ergaenzungen. Kriterium ist, dass der
Kursinhalt propaedeutischer Natur fuer das Studium an
der TU ist und eine Form der Computernutzung zum Inhalt
hat.
Ein
Kurs
kann
fakultaetsuebergreifend
oder
fakultaetsspezifisch sein. Die Kurse sind in der Regel
auf eine spezielle Rechnerplattform (PC/Windows, Unix)
zugeschnitten.
Die
Zielgruppe
des
ComputerPropaedeutikums
Das
Kursangebot
richtet
sich
an
Studentinnen im ersten Semester. Wird ein Angebot von
Das Modell der strukturierten Dokumente
dieser Zielgruppe nicht ausgeschoepft, steht es auch
Studentinnen
hoeherer
Semester
und,
in
dritter
Prioritaet,
maennlichen
Studierenden
offen.
Die
Leiterinnen und Leiter des Computer-Propaedeutikums Die
Kurse werden vorzugsweise von Studentinnen hoeherer
Semester konzipiert und durchgefuehrt. Zur Ergaenzung
des Kursangebots koennen auch Mitarbeiterinnen und
Mitarbeiter oder Studenten hoeherer Semester Kurse
anbieten. Nur von Studierenden angebotene Kurse koennen
im
Rahmen
des
Programms
finanziert
werden.
Die
Kursleiterinnen und -leiter sind selbst fuer die
Organisation von Seminar- und Rechnerraeumen und von
Zugangsmoeglichkeiten zu den Raeumen am Wochenende fuer
ihren Kurs verantwortlich. Wir gehen davon aus, dass
die
Studiendekaninnen
und
-dekane
sie
bei
der
Organisation unterstuetzen. Durchfuehrung Das ComputerPropaedeutikum
ist
eine
Initiative
der
Frauenbeauftragten der TU Muenchen und wird vom
Frauenbuero
(Kerstin
Hansen,
Anja
Quindeau)
organisiert. Die TU Muenchen finanziert das Programm
aus
dem
Tutorienprogramm
zur
Verkuerzung
der
Studiendauer. Fuer von Studierenden angebotene Kurse
wird
ein
Werksvertrag
abgeschlossen,
der
die
Konzeption,
Vorbereitung
und
Durchfuehrung
eines
dreistuendigen
Kurses
beinhaltet.
Konzeption
und
Vorbereitung eines Kurses werden mit 200 DM und jede
Durchfuehrung mit 100 DM honoriert. Das Frauenbuero
erhaelt Hilfskraftmittel aus dem Tutorienprogramm fuer
die Organisation des Computer-Propaedeutikums. Wir
rechnen mit folgenden Kosten: 20 Kurse, jeder zweimal
durchgefuehrt, zu 20 mal 200 DM plus 20 mal 2 mal 100
DM, also 8000 DM, plus 1000 DM fuer die Organisation im
Frauenbuero. Eine erste Ausschreibung des Programms ist
bereits erfolgt. Interessierte Kursleiterinnen und –
leiter koennen ihr Kursangebot bis zum 5.11.1999
abgeben. Bitte benutzen Sie dazu unser Formular. Die
ersten Kurse sollen noch im November 1999 stattfinden.
Bei Bedarf erfolgt eine zweite Ausschreibung, zu der
neue Kursangebote abgegeben werden koennen, Anfang
Dezember 1999. Die Ausschreibung des Programms, die
Gestaltung des Kursangebots sowie die Ankuendigung der
Kurse erfolgt durch das Frauenbuero in Zusammenarbeit
mit den Studierendenvertretungen, den Studiendekanen
49
50
Anhang: Formate am Beispiel
und den Frauenbeauftragten. Die Vertraege werden nach
Absprache
mit
dem
Frauenbuero
von
der
Hochschulverwaltung abgeschlossen. Die Kurse sollen zu
Randzeiten (Abends, Freitags Nachmittags oder am
Wochenende) stattfinden
1.6.3 Dokumentdarstellung mit optischer Gliederung
Abb.: 1.10:Dokumentdarstellung mit Ikonen
Das Modell der strukturierten Dokumente
Abb.: 1.11 Dokumentdarstellung mit verschachtelten Boxen
51
52
Anhang: Formate am Beispiel
Abb.: 1.12 Dokumentdarstellung als Baum
1.6.4 Struktursicht mithilfe von eingebettetem Markup
<?xml version="1.0"?>
<!DOCTYPE Konzept SYSTEM "Konzept.dtd">
<Konzept>
<Briefkopf>
<Institution Logo="fbLogo"/>
<Autorinnen>
<Autorin>Prof. Dr. Anne Brüggemann-Klein</Autorin>
<Autorin>Dr. Angelika Reiser</Autorin>
<Autorin>Prof. Dr. Doris Schmitt-Landsiedel</Autorin>
</Autorinnen>
</Briefkopf>
<Hauptueberschrift>
Ein Computer-Propädeutikum von Studentinnen für
Studentinnen
</Hauptueberschrift>
<Nebenueberschrift>
Konzept vom
<Datum>12.10.1999</Datum>
,Version
<Version>1.3</Version>
</Nebenueberschrift>
<Abschnitt>
<Abschnittueberschrift>
Hintergrund und Ziele
</Abschnittueberschrift>
<P>
Gerade in technischen Studiengängen spielen
Computer als alltägliches Arbeitsmittel eine
wichtige Rolle.Es ist wesentlich, daß die
Studierendengleich zu Beginn des Studiums einen
vertrauten und sicheren Umgangmit diesem
Handwerkszeug haben. Eventuell vorhandene
Hemmschwellen müssen sobald wiemöglich
abgebaut werden; davon ist eine
studienzeitverkürzende Wirkung zu erwarten.
Das Modell der strukturierten Dokumente
</P>
<P>
Es ist bekannt, daß Schülerinnen weniger
Zugangzu einem Computer haben als Schüler und
weniger häufigeinen eigenen Computer besitzen.
Das Computer-Propädeutikum richtet sich deshalb
primär anStudentinnen, die dadurch eventuell
fehlende Vorerfahrungenausgleichen können.
</P>
</Abschnitt>
<Abschnitt>
<Abschnittueberschrift>
Das Kursangebot des Computer
Propädeutikums
</Abschnittueberschrift>
<P>Das Computer-Propädeutikum bietet Kurzeinführungen
mit praktischen Übungen in für das Studium an
der TU München relevante Themen rund um den Computer.
Jeder Kurs dauert-als Block angeboten-drei Stunden
und beinhaltet eine tutorielle Einführung in das Thema,
praktische Übungen am Rechner und eine
Abschlußbesprechung zu den Übungen.
Kursthemen können sein:</P>
<UL>
<LI>Textverarbeitung mit Word</LI>
<LI>Textverarbeitung mit LaTeX</LI>
<LI>Textverarbeitung mit Star Office</LI>
<LI>E-Mail</LI>
<LI>Browsen und Informationsnutzung im World-Wide Web</LI>
<LI>Erstellen von Informationsangeboten im World-Wide Web (HTML)</LI>
<LI>Betriebssystem, Dateiorganisation</LI>
<LI>Gestaltung des Desktops (Window-Manager)</LI>
<LI>ASCII-Editoren (vi, emacs)</LI>
<LI>Kauf eines PCs</LI>
<LI>Datenverbindungen von zu Hause (analog, ISDN)</LI>
<LI>Fakultätsspezifische Informationsinfrastrukturen</LI>
</UL>
<P>Jeder Kurs sollte sich auf ein enges Thema konzentrieren.
Die Themenliste ist offen für Ergänzungen.
Kriterium ist, daß der
Kursinhalt propädeutischer Natur für das Studium an der TU ist
und eine Form der Computernutzung zum Inhalt hat.
Ein Kurs kann fakultätsübergreifend
oder fakultätsspezifisch sein. Die Kurse sind in der Regel auf
eine spezielle Rechnerplattform (PC/Windows, Unix) zugeschnitten.</P>
</Abschnitt>
<Abschnitt>
<Abschnittueberschrift>Die Zielgruppe des
Computer-Propädeutikums</Abschnittueberschrift>
<P>Das Kursangebot richtet sich an Studentinnen im ersten Semester.
Wird ein Angebot von dieser Zielgruppe nicht ausgeschöpft, steht es
auch Studentinnen höherer Semester und, in dritter Priorität,
männlichen Studierenden offen.</P>
</Abschnitt>
53
54
<Abschnitt>
<Abschnittueberschrift>Die Leiterinnen und Leiter des
Computer-Propädeutikums</Abschnittueberschrift>
<P>Die Kurse werden vorzugsweise von Studentinnen höherer Semester
konzipiert und durchgeführt. Zur Ergänzung des Kursangebots
können auch Mitarbeiterinnen und Mitarbeiter
oder Studenten höherer Semester Kurse anbieten.
Nur von Studierenden angebotene Kurse können im Rahmen
des Programms finanziert werden.</P>
<P>Die Kursleiterinnen und -leiter sind selbst für die
Organisation von Seminar- und Rechnerräumen und von
Zugangsmöglichkeiten zu den Räumen am Wochenende
für ihren Kurs verantwortlich. Wir gehen davon aus,
daß die Studiendekaninnen und -dekane sie bei der
Organisation unterstützen.</P>
</Abschnitt>
<Abschnitt>
<Abschnittueberschrift>Durchführung</Abschnittueberschrift>
<P>Das Computer-Propädeutikum ist eine Initiative der
Frauenbeauftragten der TU München und wird vom
Frauenbüro (Kerstin Hansen, Anja Quindeau) organisiert.
Die TU München finanziert das Programm aus dem Tutorienprogramm
zur Verkürzung der Studiendauer.
Für von Studierenden angebotene Kurse
wird ein Werksvertrag abgeschlossen, der
die Konzeption, Vorbereitung und Durchführung
eines dreistündigen Kurses beinhaltet.
Konzeption und Vorbereitung eines Kurses werden mit 200 DM und jede
Durchführung mit 100 DM honoriert.
Das Frauenbüro erhält Hilfskraftmittel
aus dem Tutorienprogramm für die
Organisation des Computer-Propädeutikums.
Wir rechnen mit folgenden Kosten: 20 Kurse,
jeder zweimal durchgeführt,
zu 20 mal 200 DM plus 20 mal 2 mal 100 DM, also 8000 DM,
plus 1000 DM für die Organisation im Frauenbüro.</P>
<P>Eine erste <A HREF="Ausschreibung.html">Ausschreibung</A>
des Programms ist bereits erfolgt.
Interessierte Kursleiterinnen und -leiter
können ihr Kursangebot bis zum 5.11.1999 abgeben.
Bitte benutzen Sie dazu unser
<A HREF="Formular.html">Formular</A>.
Die ersten Kurse sollen noch im November 1999
stattfinden. Bei Bedarf erfolgt eine zweite Ausschreibung,
zu der neue Kursangebote abgegeben werden können,
Anfang Dezember 1999.
Die Ausschreibung des Programms, die Gestaltung des Kursangebots
sowie die Ankündigung der Kurse erfolgt durch das Frauenbüro
in Zusammenarbeit mit den Studierendenvertretungen, den Studiendekanen
und den Frauenbeauftragten. Die Verträge werden nach Absprache
mit dem Frauenbüro von der Hochschulverwaltung abgeschlossen.</P>
<P>Die Kurse sollen zu Randzeiten (Abends, Freitags Nachmittags
oder am Wochenende) stattfinden.</P>
</Abschnitt>
</Konzept>
Anhang: Formate am Beispiel
Das Modell der strukturierten Dokumente
List.: 1.4 Der Text als XML-Datei
55
56
1.6.5 Das Dokument im LaTeX-Format
\documentclass{article}
\usepackage[german]{babel}
\usepackage{myPage}
\def\Datum{\today}
\def\Version#1{{\bf #1}}
\begin{document}
\author{Prof. Dr. Anne Br"uggemann-Klein \and
Dr. Angelika Reiser \and
Prof. Dr. Doris Schmitt-Landsiedel}
\title{Ein Computer-Prop"adeutikum
von Studentinnen f"ur Studentinnen
(Konzept vom \Datum, Version \Version{1.3})}
\maketitle
\section{Hintergrund und Ziele}
Gerade in technischen Studieng"angen spielen
Computer als allt"agliches Arbeitsmittel eine wichtige Rolle.
Es ist wesentlich, da"s die Studierenden
gleich zu Beginn des Studiums einen vertrauten und sicheren Umgang
mit diesem Handwerkszeug haben. Eventuell vorhandene
Hemmschwellen m"ussen sobald wie m"oglich abgebaut werden;
davon ist eine studienzeitverk"urzende Wirkung zu erwarten.
Es ist bekannt, da"s Sch"ulerinnen weniger Zugang zu einem Computer
haben als Sch"uler und weniger h"aufig einen eigenen Computer besitzen.
Das Computer-Prop"adeutikum richtet sich deshalb prim"ar an
Studentinnen, die dadurch eventuell fehlende Vorerfahrungen
ausgleichen k"onnen.
\section{Das Kursangebot des Computer-Prop"adeutikums}
Das Computer-Prop"adeutikum bietet Kurzeinf"uhrungen
mit praktischen "Ubungen in f"ur das Studium an
der TU M"unchen relevante Themen rund um den Computer.
Jeder Kurs dauert-als Block angeboten-drei Stunden
und beinhaltet eine tutorielle Einf"uhrung in das Thema,
praktische "Ubungen am Rechner und eine
Abschlu"sbesprechung zu den "Ubungen. Kursthemen k"onnen sein:
\begin{itemize}
\item Textverarbeitung mit Word
\item Textverarbeitung mit LaTeX
\item Textverarbeitung mit Star Office
\item E-Mail
\item Browsen und Informationsnutzung im World-Wide Web
Anhang: Formate am Beispiel
Das Modell der strukturierten Dokumente
\item Erstellen von Informationsangeboten im World-Wide Web (HTML)
\item Betriebssystem, Dateiorganisation
\item Gestaltung des Desktops (Window-Manager)
\item ASCII-Editoren (vi, emacs)
\item Kauf eines PCs
\item Datenverbindungen von zu Hause (analog, ISDN)
\item Fakult"atsspezifische Informationsinfrastrukturen
\end{itemize}
Jeder Kurs sollte sich auf ein enges Thema konzentrieren.
Die Themenliste ist offen f"ur Erg"anzungen.
Kriterium ist, da"s der
Kursinhalt prop"adeutischer Natur f"ur das Studium an der TU ist
und eine Form der Computernutzung zum Inhalt hat.
Ein Kurs kann fakult"ats"ubergreifend
oder fakult"atsspezifisch sein. Die Kurse sind in der Regel auf
eine spezielle Rechnerplattform (PC/Windows, Unix) zugeschnitten.
\section{Die Zielgruppe des Computer-Prop"adeutikums}
Das Kursangebot richtet sich an Studentinnen im ersten Semester.
Wird ein Angebot von dieser Zielgruppe nicht ausgesch"opft, steht es
auch Studentinnen h"oherer Semester und, in dritter Priorit"at,
m"annlichen Studierenden offen.
\section{Die Leiterinnen und Leiter des Computer-Prop"adeutikums}
Die Kurse werden vorzugsweise von Studentinnen h"oherer Semester
konzipiert und durchgef"uhrt. Zur Erg"anzung des Kursangebots
k"onnen auch Mitarbeiterinnen und Mitarbeiter
oder Studenten h"oherer Semester Kurse anbieten.
Nur von Studierenden angebotene Kurse k"onnen im Rahmen
des Programms finanziert werden.
Die Kursleiterinnen und -leiter sind selbst f"ur die
Organisation von Seminar- und Rechnerr"aumen und von
Zugangsm"oglichkeiten zu den R"aumen am Wochenende
f"ur ihren Kurs verantwortlich. Wir gehen davon aus,
da"s die Studiendekaninnen und -dekane sie bei der
Organisation unterst"utzen.
\section{Durchf"uhrung}
Das Computer-Prop"adeutikum ist eine Initiative der
Frauenbeauftragten der TU M"unchen und wird vom
Frauenb"uro (Kerstin Hansen, Anja Quindeau) organisiert.
Die TU M"unchen finanziert das Programm aus dem Tutorienprogramm
zur Verk"urzung der Studiendauer. F"ur von Studierenden angebotene Kurse
wird ein Werksvertrag abgeschlossen, der
die Konzeption, Vorbereitung und Durchf"uhrung
eines dreist"undigen Kurses beinhaltet.
57
58
Anhang: Formate am Beispiel
Konzeption und Vorbereitung eines Kurses werden mit 200 DM und jede
Durchf"uhrung mit 100 DM honoriert.
Das Frauenb"uro erh"alt Hilfskraftmittel
aus dem Tutorienprogramm f"ur die
Organisation des Computer-Prop"adeutikums.
Wir rechnen mit folgenden Kosten: 20 Kurse,
jeder zweimal durchgef"uhrt,
zu 20 mal 200 DM plus 20 mal 2 mal 100 DM, also 8000 DM,
plus 1000 DM f"ur die Organisation im Frauenb"uro.
Eine erste Ausschreibung des Programms ist bereits erfolgt.
Interessierte Kursleiterinnen und -leiter
k"onnen ihr Kursangebot bis zum 5.11.1999 abgeben.
Bitte benutzen Sie dazu unser
Formular. Die ersten Kurse sollen noch im November 1999
stattfinden. Bei Bedarf erfolgt eine zweite Ausschreibung,
zu der neue Kursangebote abgegeben werden k"onnen,
Anfang Dezember 1999.
Die Ausschreibung des Programms, die Gestaltung des Kursangebots
sowie die Ank"undigung der Kurse erfolgt durch das Frauenb"uro
in Zusammenarbeit mit den Studierendenvertretungen,
den Studiendekanen und den Frauenbeauftragten.
Die Vertr"age werden nach Absprache mit dem Frauenb"uro
von der Hochschulverwaltung abgeschlossen.
Die Kurse sollen zu Randzeiten
(Abends, Freitags Nachmittags oder am Wochenende) stattfinden.
\end{document}
List.: 1.5Auschnitt aus der LaTex Datei
1.6.6 Prinzipien aus der Informatik
Das Studium dieses Kurses setzt nicht voraus, dass andere Kurse aus dem
Bereich der Informatik bereits belegt und erfolgreich absolviert wurden. Bei
einem so spezialisierten Wissensgebiet wie es das Daten und Dokumentmanagement darstellt, ist es jedoch unumgänglich, einige grundlegende
Prinzipien zu verstehen. Die nötigen Basisinformationen folgen diesem
Abschnitt.
Late Binding
Late Binding bedeutet, Entscheidungen so lange hinauszuzögern, bis sie
unumgänglich sind. Das Prinzip des Late Binding bringt oft einen Gewinn an
Flexibilität und wird in ganz unterschiedlichen Teilgebieten der Informatik
angewendet. Polymorphie in objektorientierten Programmiersprachen ist ein
Beispiel. Polymorphie bedeutet, dass in einer Klassenhierarchie spezialisierte
Klassen die Methoden allgemeinerer Klassen, von denen sie erben,
umdefinieren dürfen. Erst zur Laufzeit steht für ein jedes Objekt fest, wie es in
Das Modell der strukturierten Dokumente
der Klassenhierarchie einzuordnen ist und welche der polymorph definierten
Methoden für das Objekt Gültigkeit haben. Im Zusammenhang mit Stylesheets
bedeutet der Begriff Late Binding folgendes: Erst wenn ein Dokument
präsentiert werden soll, wird ein zum Anwendungszweck passendes Stylesheet
zugeschaltet und das grafische Aussehen des Dokuments festgelegt.
Abstraktionsebenen
Levels of Abstraction einzuführen bedeutet, einen komplexen Sachverhalt ausgehend von einer hohen Abstraktionsstufe auf immer niedrigeren Abstraktionsstufen zu beschreiben und auf diese Weise einen konzeptuellen Rahmen
herzustellen, in dem der Sachverhalt verstanden werden kann. Eine typische
Anwendung des Prinzips ist die Rechnerarchitektur, in der ein Rechensystem auf
den
Ebenen
Hardware,
Maschinensprache,
Betriebssystem
und
Anwendungssystem beschrieben wird. Bei DDM kommt das Prinzip der Levels
of Abstraction im Zusammenhang mit Kodierungen zum Tragen, die im Rahmen
des Kodierungsmodells auf immer konkreterer Ebene beschrieben werden.
Separation of Concerns
Die Trennung konzeptueller Dimensionen bedeutet, ein System so zu gestalten,
dass unterschiedliche Aufgaben unabhängig voneinander durchgeführt werden
können. Separation of Concerns erfordert entsprechende Modelle und
Architekturen. Ein klassischer Fall von Separation of Concerns sind
Datenbankanwendungen. Durch die Trennung in eine Anwendungsschicht, eine
konzeptionelle Schicht und eine physikalische Schicht kann unabhängig
voneinander an der Anwendungssoftware und an den Speicher- und
Zugriffsstrukturen gearbeitet werden. Dies garantiert Datenunabhängigkeit.
Separation of Concerns wird durch das Dokumentenmodell erzielt. Unabhängig
voneinander können entsprechende Fachleute an der inhaltlichen Gestaltung
eines Dokuments arbeiten.
Selbsttestaufgabe 1.15 Überlegen Sie, wo Ihnen die drei erwähnten Informatik-
Prinzipien in Ihrem Studium schon einmal begegnet sind. Können Sie weitere
grundlegende Prinzipien ausmachen?
59
60
1.7 Literatur
[1] J. André, R. Furuta, and V. Quint. Structured Documents. The Cambridge
Series on Electronic Publishing. Cambridge University Press, Cambridge, 1989.
[2] B. Böhm.A spiral model of software development and enhancement, ACM,
SIGSOFT, 1999. M. J. Dürst, F. Yergeau, R. Ishida, M. Wolf, A. Freytag, and T.
Texin. Character model for the World Wide Web 1.0. www.w3.org/TR/charmod,
February 2002. W3C Working Draft.
[3] M. J. Dürst, F. Yergeau, R. Ishida, M. Wolf, A. Freytag, and T. Texin. Character
model for the World Wide Web 1.0. www.w3.org/TR/charmod, February 2002.
W3C Working Draft.
[4] D. Engelbart. A conceptual framework for the augmentation of man’s
intellect. In P. W. Howerton and D. C. Weeks, editors, Vistas in Information
Handling, volume 1, pages 1–29, Washington, DC, 1963. Spartan Books.
[5] T. Feuerstack, A. Hartmann, B. Vogeler, and J. Vieler. Einmal um die Erde und
zurück: Unterwegs im Internet. Broschüre A/003/0811,
Universitätsrechenzentrum FernUniversität Hagen, August 2011. www.fernunihagen.de/imperia/md/content/zmi_2010/a003_internet.pdf
[6] R. Furuta, J. Scofield, and A. Shaw. Document formatting: Survey, concepts,
and issues. Computing Surveys, 14(3):417–172, September 1982.
[7] J. Korpela. A tutorial on character code issues, January 1999. Looking for a
new home on the Internet.
[8] L. Lamport. LATEX: A Document Preparation System, User’s Guide &
Reference Manual. Addison-Wesley Publishing Company, Reading, MA, 1986.
Literatur
Das Modell der strukturierten Dokumente
[9] N. Meyrowitz and A. van Dam. Interactive editing systems (Parts I and II).
Computing Surveys, 14(3):321–415, September 1982.
[10] T. H. Nelson. Embedded markup considered harmful, 2000. Published on
XML.com
http://broadcast.oreilly.com/2009/08/microsoft-and-the-two-xml-pate-1.html
[11] D. R. Raymond, F. W. T. Tompa, and D. Wood. Markup reconsidered.
Technical Report TR-356, Computer Science Department, University of Western
Ontario, May 1993. http://www.csd.uwo.ca/tech-reports/356/tr356.abstract
[12] P. Weverka and D. A. Reid. Word 2000: The Complete Reference.
Osborne/McGraw-Hill, Berkeley, 1999.
[13] K. Whistler and M. Davis. Character encoding model. Unicode Technical
Report 17-3.1, Unicode, Inc., August 2000.
http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=IWS-Chapter03
[14] J. Wipper. Mathematik Online Kurs LaTeX.Darstellung mathematischer
Ausdrücke: Pfeile, Universität Stuttgart, Februar 2009.
http://mo.mathematik.uni-stuttgart.de/kurse/kurs44/seite28.html
61
62
Lösungen der Selbsttestaufgaben
1.8 Lösungen der Selbsttestaufgaben
Selbsttestaufgabe 1.1 Bei Gemälden handelt es sich wegen des fehlenden
sprachlichen Ausdrucks nicht um Dokumente. Personalausweise und Geldscheine sind eindeutig Dokumente ursprünglicher Art, für die das Trägermedium
ebenso essentiell ist wie der sprachliche Informationsgehalt. Veranstaltungsplakate, Privatbriefe, Gedichtbände und Romane sind wohl in der Regel
Dokumente neuerer Art, in denen neben dem Informationsgehalt auch die
Formatierung eine Rolle spielt. Limitierte Auflagen und handschriftliche Briefe
mit Unterschrift könnten wir jedoch genauso gut als Dokumente ursprünglicher
Art einordnen. Memos, Bestellungen, Produktbeschreibungen und Fragebögen
sehe ich je nach Kontext als Dokumente neuerer oder moderner Art an. Ein
wichtiges Entscheidungskriterium ist, ob diese Dokumente digital oder auf
Papier vorliegen. E-Mail-Nachrichten oder Nachrichten in einem Protokoll zum
digitalen Zahlungsverkehr sind Nachrichten moderner Art, solange man den
Protokollnachrichten den sprachlichen Ausdruck zugesteht.
Selbsttestaufgabe 1.2 Beispiele für sinnvolle Schachtelungen sind:
• Listen mit durchgängig nummerierten Aufzählungspunkten, die durch erläuternde Absätze unterbrochen werden können.
• Eine Gruppe von Zitaten mit Quellenangaben am Ende eines Kapitels.
Selbsttestaufgabe 1.3/4 Achten Sie auf Funktionen, die Struktur und Format
trennen (Stylesheets) und auf Funktionen, die eine solche Trennung unterlaufen
(explizite typografische Auszeichnung).
Das Modell der strukturierten Dokumente
63
Selbsttestaufgabe 1.5 Tab.: 1.7gibt die Additionstabelle, Tab.: 1.8 gibt die
Multiplikationstabelle für Hex-Ziffern an.
Addition:
+
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
1
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
2
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10 11
3
3
4
5
6
7
8
9
A
B
C
D
E
F
10 11 12
4
4
5
6
7
8
9
A
B
C
D
E
F
10 11 12 13
5
5
6
7
8
9
A
B
C
D
E
F
10 11 12 13 14
6
6
7
8
9
A
B
C
D
E
F
10 11 12 13 14 15
7
7
8
9
A
B
C
D
E
F
10 11 12 13 14 15 16
8
8
9
A
B
C
D
E
F
10 11 12 13 14 15 16 17
9
9
A
B
C
D
E
F
10 11 12 13 14 15 16 17 18
A
A
B
C
D
E
F
10 11 12 13 14 15 16 17 18 19
B
B
C
D
E
F
10 11 12 13 14 15 16 17 18 19 1A
C
C
D
E
F
10 11 12 13 14 15 16 17 18 19 1A 1B
D D E
F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C
E
E
F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D
F
F
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E
Tab.: 1.7 Die Additionstabelle für Hex-Ziffern
64
Lösungen der Selbsttestaufgaben
Multiplikationstabelle:
X
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
2
0
2
4
6
8
A
C
E
10 12 14 16 18 1A 1C 1E
3
0
3
6
9
C
F
12 15 18 1B 1E 21 24 27 2A 2D
4
0
4
8
C
10 14 18 1C 20 24 28 2C 30 34 38 3C
5
0
5
A
F
14 19 1E 23 28 2D 32 37 3C 41 46 4B
6
0
6
C
12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7
0
7
E
15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8
0
8
10 18 20 28 30 38 40 48 50 58 60 68 70 78
9
0
9
12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A
0
A
14 1E 28 32 3C 46 50 5A 6A 6E 78 82 8C 96
B
0
B
16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C
0
C
18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0
D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E
0
E
1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F
0
F
1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
Tab.: 1.8 Die Multiplikationstabelle für Hex-Ziffern
Selbsttestaufgabe 1.6 Die Dezimalzahl 100 ist 64 in Hexadezimalnotation. Der
prozentuale Anteil der Codepositionen von E000h bis F8FFh am Code-Raum von
0 bis FFFFh ist also in Hexadezimalnotation:
Das Modell der strukturierten Dokumente
(F8FF − E000 + 1) · 64/(FFFF + 1), also 1900 · 64/10000, also 9C4/100. Knapp 10
Prozent der Unicode-Positionen im Bereich von 0 bis FFFF sind also für den
privaten Gebrauch reserviert.
Selbsttestaufgabe 1.7 Die Unicode-Position F0000 wird unter UTF16 durch die
beiden Surrogat-Words (F0000 − 10000) DIV 400 + D800 = DB80 und (F0000 −
10000) DIV 400 + DC00 = DC00 dargestellt.
Selbsttestaufgabe 1.8 Die Surrogat-Words DAFF und DEFF stellen die Unicode-
Position (DAFF − D800) · 400 + DEFF − DC00 + 10000 = CFEFF dar.
Selbsttestaufgabe 1.9 Alle Zeichen der Zeichenfolge liegen im ASCII-Bereich von
Unicode. Die Kodierung unter UTF8 und ASCII sind deshalb identisch; die
Kodierung unter UTF16 ist um führende Nullen angereichert. Die Kodierung von
„<?xml“ unter UTF8 ist 3C3F786D6C, die unter UTF16 ist
003C003F0078006D006C.
Selbsttestaufgabe 1.10 Die Positionen von 192 bis 255 werden unter UTF8 mit
zwei Bytes kodiert nach dem Schema 110xxxxxb10xxxxxxb. Da zur Kodierung der
genannten Positionen nur acht Bits benötigt werden, die im Schema 110xxxxx
10xxxxxx von rechts aufgefüllt werden, hat das führende Byte des Kodifikats die
Form 110000xx, wobei xx die führenden beiden Bits der Hexzahlen C bis F sind,
also 11000011, was C3 entspricht.
Selbsttestaufgabe 1.11 Das Zeichen „ü“ hat die Position FCh also 11111100b. Die
UTF8-Kodierung ist die Bitfolge 1100001110111100, bestehend aus den Unicodeoder ISO Latin-1-Positionen C3h für „Ó und BCh für „1/4“. Es ist also denkbar,
dass das Textsystem einen UTF8-kodierten Zeichenstrom als ISO-Latin-1kodiert interpretiert.
Selbsttestaufgabe 1.12 Unter UTF8 wird FEFFh als Folge von drei Bytes
dargestellt, nämlich EFh, BBh und BFh.
Sowohl unter UTF16-BE als auch unter UCS2-BE wird BOM als dieselbe Folge von zwei
Bytes dargestellt, nämlich FEh und FFh. Das BOM ist also kein hinreichendes
Signal, um zwischen den bisher definierten Kodierungsschemata zu
differenzieren.
Selbsttestaufgabe 1.13 native2ascii < test.ntv | native2ascii -reverse - encoding
UTF8 > test.utf.
65
66
Index
1.9 Index
API 26
kontextuelle Formen 32
ASCII 27
LaTeX 21
BE 42
LE 42
BMP 36
LF 44
BOM 42
linearisieren 18
Content Provider 12
Markup 7
CR 44
Microstar Office 26
CSS 12
MS-Word 21
dHTML 12
native2ascii 45
Diaräse 32
Outline Sichten 6
Document Engineering 13
Quark Express 26
Document Management 20
Quellrepräsentation 5
Document Templates 25
RFC 11
Dokumentengrammatiken 7
RTF 26
ECMA 28
Semantik 14
Embedded Markup 19
Serialisierung 42
Escape-Zeichen 43
Stylesheet 16
EVA Prinzip 9
Surrogatpositionen 35
Formatierer 16
UCS 31
FrameMaker 26
Unicode 8, 29
Glatter Text 26
W3C 12
Glyphe 31
Word 34
Glyphenbilder 31
Word Perfect 26
HTML 11
WYSIWYG 24
Idiosynkrasien 19
XLink 12
IETF 11
XML 8, 12
Information Retrieval 5
XPath 12
Instanzen 7
XPointer 12
ISO 27
XSL 12
ISO/IEC 29
Prof. Dr. Christoph Beierle, Prof. Dr. Gabriele Kern-Isberner
Kurs 01843
Einführung in wissensbasierte
Systeme
LESEPROBE
mathematik
und
informatik
Kapitel 5: Aktionen und Planen
Gegeben sei der in Abbildung 5.1(a) skizzierte Zustand. Wenn nun eine
von S0 ausgehende, konstruktive Beschreibung von t gefunden wird, in der
die obige Zielbeschreibung gilt, so können wir daraus einen Plan erstellen,
der den Ausgangszustand in einen gewünschten Zielzustand überführt. Wenn
wir im vorliegenden Fall die Variablen x, y und s der im vorigen Abschnitt
angegebenen Ausführungsbedingung für STACK ersetzen durch A, B und S0, so
erhalten wir die Formel
Poss(STACK(A,B),S0) ≡ ONTABLE(A,S0) ∧ CLEAR(A,S0) ∧ CLEAR(B,S0)
die offensichtlich in S0 gilt. Damit ist die Instanz STACK(A,B) des STACKOperators in S0 anwendbar. Als Nachbedingungen für die in Abschnitt 5.3.4
angegebenen Effektaxiome für STACK(A,B) erhalten wir
ON(A,B,do(STACK(A,B),S0))
¬ CLEAR(B,do(STACK(A,B),S0))
¬ ONTABLE(A,do(STACK(A,B),S0))
Damit haben wir eine Situation t = do(STACK(A,B),S0) gefunden, so dass
ON(A,B,t) gilt. Dabei ist t = do(STACK(A,B),S0) insofern eine konstruktive Beschreibung, als dass man daraus den Plan “Staple in der Situation S0
Block A auf Block B” direkt ablesen kann. Einsetzen von t in die ursprüngliche
Zielformel ergibt
ON(A,B,do(STACK(A,B),S0)) ∧ ON(B,C,do(STACK(A,B),S0))
Selbsttestaufgabe 5.2 (Situationskalkül) Ist mit den bisherigen Formalisierungen sichergestellt, dass in der Situation t = do(STACK(A,B),S0) immer
noch Block B auf Block C liegt? Mit anderen Worten, kann mit dem bisher
Gesagten die Formel ON(B,C,do(STACK(A,B),S0)) abgeleitet werden?
Auf der einen Seite ist zu beachten, dass sich eine Operatoranwendung
im Situationskalkül nur auf die Formeln der Nachfolgesituation auswirkt, aber
nicht auf die der Ausgangssituation. Wenn in Situation S0 Block A auf B gesetzt
wurde, so gilt immer noch, dass sich A in S0 auf dem Tisch befand; die Formel
ONTABLE(A,S0) ist immer noch wahr und steht auch nicht im Widerspruch
zu der Formel ON(A,B,do(STACK(A,B),S0)), die ebenfalls wahr ist. Auf der
anderen Seite überträgt sich die Gültigkeit einer Formel in einer Situation
nicht ohne weiteres auf eine Nachfolgesituation: Aus ON(B,C,S0) können wir
(bisher) nicht ON(B,C,do(STACK(A,B),S0)) schließen.
5.4
5.4.1
Probleme
Das Rahmenproblem
Die am Ende des vorigen Abschnitts erläuterte Schwierigkeit, Gültigkeit von
Formeln auf nachfolgende Situationen zu übertragen, ist als das sog. Rahmenproblem (frame problem) bekannt. Die Vorstellung dabei ist, dass sich alles,
83
84
Kapitel 5: Aktionen und Planen
was sich gewissermaßen als Rahmen um die betrachtete Operatoranwendung
befindet, auf die neue Situation überträgt. Um zu formalisieren, dass sich zwei
Blöcke, die beide bei einer STACK-Operation nicht bewegt wurden, noch aufeinander befinden, wenn dies vorher der Fall war, benutzen wir folgende Formel:
ON(x,y,s) ∧ x = u ⇒ ON(x,y,do(STACK(u,v),s))
Umgekehrt müssen wir auch noch formalisieren, dass sich ein Block nach einer
STACK-Operation nicht auf einem anderen befindet, wenn dies vorher nicht der
Fall war und er bei der Operation nicht darauf gesetzt wurde:
¬ ON(x,y,s) ∧ (x = u ∨ y = v) ⇒ ¬ ON(x,y,do(STACK(u,v),s))
Rahmenaxiom
Diese Art von Formeln werden Rahmenaxiome (frame axioms) genannt. In
Analogie zu positiven und negativen Effektaxiomen ist das zuerst angeführte
Rahmenaxiom ein positives, das zweite ein negatives Rahmenaxiom. Zu allem
Überfluss reichen aber die beiden angegebenen Rahmenaxiome für den STACKOperator selbst in unserer einfachen Blockwelt immer noch nicht aus. Neben
dem Nicht-Effekt auf die Relation ON müssen wir auch noch Rahmenaxiome
bzgl. der anderen relationalen Fluents ONTABLE und CLEAR angeben.
Ein Block befindet sich auch nach einer STACK-Operation auf dem Tisch
bzw. nicht auf dem Tisch, wenn er bei der Operation nicht bewegt wurde:
ONTABLE(x,s) ∧ x = u
¬ ONTABLE(x,s) ∧ x = u
⇒ ONTABLE(x,do(STACK(u,v),s))
⇒ ¬ ONTABLE(x,do(STACK(u,v),s))
Selbsttestaufgabe 5.3 (Rahmenaxiome) Formulieren Sie zunächst verbal
und dann in Prädikatenlogik Rahmenaxiome für den STACK-Operator bzgl. der
Relation CLEAR.
Auch für den UNSTACK-Operator (vgl. Selbsttestaufgabe 5.1) müssen wir explizite Rahmenaxiome angeben. Analog zur Situation bei STACK sind das jeweils
Rahmenaxiome für die relationalen Fluents ON, ONTABLE und CLEAR:
ON(x,y,s) ∧ x = u
¬ ON(x,y,s)
ONTABLE(x,s)
¬ ONTABLE(x,s) ∧ x = u
CLEAR(x,s)
¬ CLEAR(x,s) ∧ x = v
⇒
⇒
⇒
⇒
⇒
⇒
ON(x,y,do(UNSTACK(u,v),s))
¬ ON(x,y,do(UNSTACK(u,v),s))
ONTABLE(x,do(UNSTACK(u,v),s))
¬ ONTABLE(x,do(UNSTACK(u,v),s))
CLEAR(x,do(UNSTACK(u,v),s))
¬ CLEAR(x,do(UNSTACK(u,v),s))
Da man also typischerweise für jede Kombination von Operator und Prädikat
Rahmenaxiome benötigt, kann man sich leicht klarmachen, dass dies in realistischen Anwendungen schnell zu einer nicht mehr zu bewältigenden Fülle von
Formeln führt.
Das Rahmenproblem stellt damit eine zentrale Schwierigkeit beim Planen
und überhaupt beim Schließen mit Veränderungen über eine Zeitachse dar.
Kapitel 5: Aktionen und Planen
Wird es in der Prädikatenlogik erster Stufe durch explizite Angabe und Verwendung der Rahmenaxiome gelöst, ist dies im Allgemeinen äußerst ineffizient. Andererseits muss jeder Planungsformalismus eine – möglichst effiziente –
Lösung des Rahmenproblems zur Verfügung stellen; in Abschnitt 5.6 werden
wir als Beispiel dazu den STRIPS-Ansatz vorstellen. Wenn auch der Situationskalkül als direkte Anwendung durch Ansätze wie STRIPS oftmals verdrängt
worden ist, stellt es eine hervorragende Basis dar, die logischen Grundlagen
des Planens und der dynamischen Veränderungen durch die Ausführung von
Aktionen zu untersuchen.
5.4.2
Das Qualifikationsproblem
Ein weiteres Problem des Planens liegt darin, die Vorbedingungen zum
Ausführen einer Aktion genau anzugeben. So hatten wir für die Operatoranwendung UNSTACK(A,B) verlangt, dass A auf B steht und A frei ist. In einer
realen Anwendung könnte A zu schwer zum Hochheben sein, der Greifarm des
Roboters könnte defekt sein, A könnte auf B festgeschraubt sein usw. Zwar kann
man solche Bedingungen als Vorbedingung in die Operatorbeschreibung aufnehmen, es wird aber niemals gelingen, alle Bedingungen für einen Zustand der
realen Welt vollständig anzugeben. Dies entspricht genau dem Qualifikationsproblem (qualification problem, vgl. Abschnitt 3.1.1), nämlich dem Problem, alle Bedingungen für eine gültige Schlussfolgerung in der realen Welt anzugeben.
Es gibt verschiedene Ansätze, das Qualifikationsproblem mit nichtmonotonem
Schließen in den Griff zu bekommen. Die Idee dabei ist, Standardannahmen
als Defaults zu formalisieren, um so Schließen unter “normalen Umständen”
zu ermöglichen (vgl. z.B. [BKI08a], [BKI08b]).
5.4.3
Das Verzweigungsproblem
Ein weiteres Planungsproblem entsteht bei der Berücksichtigung von impliziten Konsequenzen einer Operatoranwendung. Wenn ein Roboter ein Paket von
einem Raum R1 in einen Raum R2 bringt, so könnte in der entsprechenden Operatorbeschreibung explizit stehen, dass sich die Position des Pakets von Raum
R1 in Raum R2 geändert hat. Aber auch der Aufkleber, der sich auf dem Paket befindet, ist dann in Raum R2, ohne dass dies explizit als Veränderung
angegeben wurde. In diesem Fall ist es vermutlich auch sinnvoller, bei Bedarf
aus der Position des Pakets auf die implizit veränderte Position des Aufklebers zu schließen. Hier könnten allerdings Konflikte mit den Rahmenaxiomen,
die gerade die generelle Bewahrung gültiger Formeln sicherstellen sollen, entstehen. Dieses Problem, die indirekten Effekte von Aktionen zu bestimmen,
wird Verzweigungsproblem (ramification problem) genannt. Für die effiziente
Lösung dieses Problems werden spezielle Inferenzverfahren benötigt; verschiedene Ansätze dazu basieren auf Methoden der Truth Maintenance-Systeme
(vgl. z.B. [BKI08a], [BKI08b]).
85
Dr. Stefan Wohlfeil
Kurs 01866
Sicherheit im Internet I
LESEPROBE
mathematik
und
informatik
Inhaltsverzeichnis
1 Sicherheit in der Informationstechnik
1.1 Einführung . . . . . . . . . . . . . . . . . . . .
1.2 Einleitung . . . . . . . . . . . . . . . . . . . . .
1.2.1 Warum ist Sicherheit erforderlich? . . . .
1.2.2 Was heißt eigentlich Sicherheit? . . . . .
1.2.3 Angriffsziele . . . . . . . . . . . . . . . .
1.2.4 Systematik der Bedrohungen . . . . . . .
1.2.5 Klassische Bedrohungen . . . . . . . . .
1.2.6 Nicht-technische Aspekte von Sicherheit
1.3 Netze . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Lokale Netze . . . . . . . . . . . . . . .
1.3.2 Vernetzte Netze . . . . . . . . . . . . . .
1.3.3 Das Internet-Protokoll . . . . . . . . . .
1.3.4 Die Internetdienste . . . . . . . . . . . .
1.4 Konkrete Gefahren . . . . . . . . . . . . . . . .
1.4.1 Viren . . . . . . . . . . . . . . . . . . . .
1.4.2 Würmer . . . . . . . . . . . . . . . . . .
1.4.3 Trojanische Pferde . . . . . . . . . . . .
1.4.4 Passwortmissbrauch . . . . . . . . . . .
1.5 Zusammenfassung . . . . . . . . . . . . . . . . .
Lösungen der Übungsaufgaben . . . . . . . . . . . . .
2 Verschlüsselung und digitale Signaturen
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
4
4
10
11
11
12
17
19
19
21
23
26
32
33
38
38
40
47
49
55
3 Benutzersicherheit im Internet
121
4 Anbietersicherheit im Internet
179
Literatur
227
Das Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere das Recht der Vervielfältigung und Verbreitung
sowie der Übersetzung und des Nachdrucks, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Kein Teil des Werkes darf in
irgendeiner Form (Druck, Fotokopie, Mikrofilm oder ein anderes Verfahren) ohne schriftliche Genehmigung der FernUniversität reproduziert
oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.
1
Kapitel 1
Sicherheit in der
Informationstechnik
Die Autoren: Dr. Stefan Wohlfeil, geb. 12.12.1964
• Studium der Informatik mit Nebenfach Elektrotechnik an der Universität
Kaiserslautern (1984–1991)
• Wissenschaftlicher Mitarbeiter am Lehrgebiet Praktische Informatik VI
der FernUniversität in Hagen (1991–1998)
• Promotion zum Dr. rer. nat. (1997)
• Mitarbeiter in der Deutsche Bank AG, Abteilung TEC — The Advanced
Technology Group (1998–2002)
• Professor an der Hochschule Hannover, Fakultät IV, Abteilung Informatik;
Arbeitsgebiet: Sichere Informationssysteme (seit 2002)
Einige Abschnitte in Kurseinheit 2 hat Prof. Dr. Jörg Keller (Lehrgebiet
Parallelität und VLSI der FernUniversität in Hagen) geschrieben.
1.1
Einführung
Liebe Fernstudentin, lieber Fernstudent,
herzlich willkommen beim Kurs über Sicherheit im Internet!
Diese Einführung soll Ihnen einen Überblick darüber geben, worum es im
vorliegenden Kurs geht. Dieser Kurs liefert eine Einführung in das Gebiet der
Sicherheit. Dabei wird es um einzelne Computer, vernetzte Computer und das
Internet gehen. Sie erfahren, welche Sicherheitsprobleme dort existieren und
welche Möglichkeiten Sie haben, sich diesen Problemen entgegenzustellen.
Inhalt des Kurses und Vorkenntnisse: Dieser Kurs richtet sich an
Informatik-Studierende1 und setzt die Kenntnis einiger Inhalte aus einem
Informatik-Grundstudium voraus. Konkret sollten Sie bereits wissen, wie ein
Computer prinzipiell aufgebaut ist, was ein Betriebssystem typischerweise
macht und welche Möglichkeiten sich durch die Vernetzung, wie beispielsweise
1
Hierzu gehören alle Studierenden, deren Curriculum einen Informatikbestandteil enthält
wie beispielsweise auch Studierende der Wirtschaftsinformatik.
(Version 4; 2014)
2
Kapitel 1
Sicherheit in der Informationstechnik
im Internet, für Anwender bieten. Diese Themen werden im Kurs (01801)
Betriebssysteme und Rechnernetze behandelt.
Die Kurseinheit 1 beschäftigt sich mit den Grundlagen des Themas Sicherheit. Die folgenden Fragen werden diskutiert:
• Warum ist das Thema Sicherheit überhaupt bedeutsam?
• Was bedeutet der Begriff „Sicherheit“ im Zusammenhang mit Computern
eigentlich?
• Welche Probleme sind zu lösen?
In der Literatur werden eine Reihe von „klassischen Bedrohungen“ vorgestellt,
auf die im Kurs auch eingegangen wird. Weiterhin wird der Aufbau und die
Funktionsweise des Internets kurz vorgestellt. Konkret werden einige wichtige
Protokolle und Dienste des Internets besprochen. Den Abschluss der ersten
Kurseinheit bildet eine Beschreibung von ausgewählten konkreten Bedrohungen
der Computersicherheit, wie beispielsweise Viren.
Die Kurseinheit 2 beschäftigt sich mit den Grundfunktionen, die die Hardware von Systemen und die Betriebssysteme selbst im Bereich Sicherheit anbieten.
Außerdem werden dort die Grundlagen von Verschlüsselungsverfahren erklärt.
Sie sind für die Lösung des Vertraulichkeits- und des Integritätsproblems ein
wichtiges Hilfsmittel. Es wird weiterhin auf Authentifizierungsverfahren eingegangen. Dazu gehört auch das Konzept der digitalen Signaturen.
In Kurseinheit 3 wird das Thema Sicherheit aus der Perspektive eines WorldWide-Web-Benutzers beleuchtet. Die Fragen, wie versende/empfange ich sicher
eine E-Mail, bzw. wie surfe ich sicher im Netz, werden beantwortet. Oft muss
man auch an Rechnern arbeiten, die weit entfernt vom eigenen Schreibtisch
stehen. Der Studentenrechner baobab (früher bonsai) der FernUniversität ist
ein Beispiel hierfür. Wie man das sicher tun kann, wird auch in Kurseinheit 3
erklärt. Abschließend bekommen Sie einige Hinweise, wie Sie Ihren privaten
PC zu Hause sicherer machen können.
Die Kurseinheit 4 beschäftigt sich mit dem Thema Sicherheit aus der
Perspektive eines Systemadministrators und eventuell auch Web-Anbieters.
Hier werden Verfahren und Systeme vorgestellt, mit denen ein internes Netz
(auch Intranet genannt) so an das Internet angeschlossen wird, dass keine
unbefugten Zugriffe und Modifikationen möglich sind. Neben dem Konzept der
Firewall wird auch auf organisatorische und prozedurale Aspekte eingegangen.
Bücher
Internet
Ergänzende Materialien: Das Thema Sicherheit im Internet ist derart
umfangreich, dass es in diesem Kurs nur in Ausschnitten behandelt werden kann.
Ziel des Kurses ist es, dass Sie die Grundlagen des Themengebietes kennenlernen
und Sie sich dann darauf aufbauend tiefer in die Materie einarbeiten können.
Dazu gibt es verschiedene weitere Informationsquellen.
Die Menge an Büchern zum Thema Security wächst sehr schnell. Ausgehend
vom Literaturverzeichnis dieses Kurses sollten Sie in der Universitätsbibliothek
das eine oder andere Buch ausleihen und durchschauen. Aktuellste Bücher kann
man bei den verschiedenen Buchhändlern im Internet suchen. Dort findet man
u. U. auch Rezensionen der Bücher vor.
Überhaupt ist das Internet eine nahezu unerschöpfliche Quelle an Informationen zum Thema Security. Im Kurs werden eine Reihe von Verweisen auf
(Version 4; 2014)
1.1
Einführung
3
interessante Seiten im Internet genannt. Wenn Sie Zugang zum Internet haben,
nehmen Sie sich doch die Zeit und schauen sich die eine oder andere Seite
an. Ich hoffe, dass die Verweise noch stimmen, wenn Sie den Kurs lesen. Das
Internet ändert sich ständig, so dass es gut sein kann, dass Sie einmal eine Seite
nicht finden. In diesem Fall sollten Sie eine der vielen Suchmaschinen wie z. B.
bing oder Google konsultieren. Vielleicht hat sich ja nur die Adresse der Seite
leicht verändert. Informieren Sie dann auch bitte die Kursbetreuer, damit der
Kurstext aktualisiert werden kann. Die Namen und Kontaktmöglichkeiten der
Kursbetreuer wurden Ihnen im Anschreiben zusammen mit dieser Kurseinheit
genannt.
An der FernUniversität in Hagen ergänzen der Kurs (01868) Sicherheit im
Internet 1 – Ergänzungen und der Kurs (01867) Sicherheit im Internet 2 diesen
Kurs. In Kurs (01868) Sicherheit im Internet 1 – Ergänzungen werden unter
anderem diese Themen besprochen:
• Computer-Forensik
• Anonymität
• Biometrie
• Zugriffskontrollen, Benutzerauthentisierung
• Sicherheit in Telekommunikationsnetzen (WLAN, Voice over IP)
• Aktive Inhalte (ActiveX, Java, JavaScript)
In Kurs (01867) Sicherheit im Internet 2 werden dann diese Themen behandelt:
• Konkrete Bedrohungen und Angriffe gegen Rechner
• Bezahlverfahren im Internet
• Überblick über wichtige Gesetze und Verordnungen, die im Internet von
besonderer Bedeutung sind
• Virtual Private Networks (VPN)
• Intrusion Detection Systems (IDS)
• Entwurf und Implementierung sicherer Systeme
Informationen zu den Prüfungsmöglichkeiten dieses Kurses finden Sie in den
Studien- und Prüfungsinformationen Ihres Studienganges an der FernUniversität
oder bei der Studienberatung. Dort erfahren Sie, in welchen Studiengängen
dieser Kurs eingesetzt wird, in welchen Modulen dieser Kurs ein Bestandteil
ist, in welcher Form Sie Leistungsnachweise oder Prüfungen ablegen können
bzw. müssen und so weiter.
(Version 4; 2014)
Fortsetzungskurse im
nächsten Semester
4
Kapitel 1
1.2
1.2.1
private
Geschäftstätigkeiten
eBooks
Sicherheit in der Informationstechnik
Einleitung
Warum ist Sicherheit erforderlich?
Das Thema „Sicherheit in der Informationstechnik“ hat in den letzten Jahren mehr und mehr an Bedeutung gewonnen. Einer der Hauptgründe dafür
ist die große Popularität des Internets. Für viele Menschen ist das Internet
nicht nur das Informationsmedium, als das es ursprünglich entwickelt wurde,
sondern immer öfter auch das Medium für private Geschäftstätigkeiten aller
Art. Bücher, Flug- und Eisenbahntickets, Schuhe, Mode, Musik, usw. können
nicht nur im Geschäft gekauft werden, sondern auch bequem von zu Hause
aus. Über virtuelle Auktionshäuser wie beispielsweise eBay werden inzwischen
täglich enorme Mengen von Gütern aller Art versteigert. Neben Privatleuten
beteiligen sich auch Gewerbetreibende als Bieter, ebenso wie als Anbieter.
Neben den materiellen Gütern können natürlich digitale Güter, also alles was
sich digitalisieren lässt, sehr einfach über das Internet vertreiben lassen. Müssen
klassische Bücher noch von einem Boten ausgeliefert werden, so können digitale
Bücher (auch eBooks genannt) direkt über das Internet ausgeliefert werden.
Das gilt ebenso für Musik, Filme oder Software.
Auch Bankgeschäfte wie Überweisungen, Einrichten/Ändern von Daueraufträgen oder sogar An- und Verkäufe von Wertpapieren lassen sich über das
Internet abwickeln. Die Vorteile für die Konsumenten sind vielfältig:
• Man ist nicht mehr an die Ladenöffnungszeiten gebunden, sondern kann
rund um die Uhr tätig sein.
• Man muss nicht mehr persönlich im Geschäft vorbei schauen, sondern
kann seine Geschäfte bequem von zu Hause erledigen.
• Verschiedene Angebote lassen sich einfacher vergleichen. Die Konkurrenz
ist immer nur „einen Mausklick“2 entfernt.
• Bei digitalen Gütern erfolgt die Lieferung sofort über das Internet und es
fallen keine Wartezeiten an.
wirtschaftliche
Bedeutung
Aber nicht nur Privatleute, sondern auch viele Firmen benutzen das Internet
für ihre Geschäftszwecke. War man zuerst nur durch eine „website“ präsent
und hat sich und seine Produkte vorgestellt, so nutzt man das Internet bzw.
die Internettechnologie heute auch für die Abwicklung von Geschäften. In der
Automobilindustrie sind die Hersteller und ihre Zulieferer über das Internet
miteinander verbunden und tauschen so beispielsweise Bestellungen aus. Der
Vorteil für die Unternehmen besteht darin, dass viele solcher Tätigkeiten
automatisierbar sind. Dadurch lassen sich Kosten einsparen. Den Umfang der
wirtschaftlichen Bedeutung, die das Internet heute (Juli 2013) erreicht hat,
verdeutlichen die folgenden Zahlen:
• Alleine in Deutschland wurden 2006 ca. 35,4 Millionen Bankkonten online
geführt.3 Das sind etwa 80% der Girokonten bei privaten Banken. Etwa
jeder zweite Internetbenutzer führt sein Konto online. Bis 2011 stieg
2
Tatsächlich ist es nicht ganz so einfach. Die wenigsten Anbieter werden einen Verweis
(engl. link) auf ihre Konkurrenz mit anbieten. Man muss diese Adressen also erst einmal
finden. Suchmaschinen, wie Google, oder Verzeichnisdienste, wie Yahoo!, helfen bei der Suche.
3
Quelle: Bundesverband Deutscher Banken (http://www.bdb.de/)
(Version 4; 2014)
1.2
Einleitung
die Zahl der online geführten Girokonten auf 48 Millionen (von ca. 95
Millionen Konten insgesamt).
• Im Jahr 2006 wurden in Deutschland etwa 1,8 Milliarden Online-Überweisungen getätigt. Dabei wurden etwa 1 685 Milliarden Euro bewegt4 .
Im Jahr 2011 wurden bereits etwa 2,3 Milliarden Online-Überweisungen
getätigt und dabei 11 849 Milliarden Euro bewegt.
• Das U.S. Census Bureau veröffentlicht Statistiken aus den USA. Im dritten
Quartal des Jahres 2008 wurden etwa 34,4 Milliarden US-Dollar Umsatz
im E-Commerce gemacht. Abbildung 1.1 zeigt die stetig steigenden Umsatzzahlen sowie die Spitzen zu Weihnachten. Dabei zählt ein Handel als
E-Commerce, wenn entweder die Bestellung oder die Preisvereinbarung
über das Internet oder ein anderes elektronisches Netz (z. B. Extranet
oder EDI) erfolgt.
Abbildung 1.1: E-Commerce-Anteil an den Gesamtumsätzen in den USA
Im Jahr 2011 ist der Anteil des E-Commerce an den Umsätzen im Bereich
„Produktion/Herstellung“ (engl. manufacturing) auf fast 50 Prozent
gestiegen. Das heißt, dass in diesem Bereich fast jeder zweite Dollar durch
E-Commerce umgesetzt wird und viele Firmen bereits sehr stark vom
E-Commerce abhängen. Im Großhandelsbereich (engl. wholesale) liegt
die Quote bei knapp 25 Prozent, im Einzelhandelsbereich (engl. retail)
liegt die Quote bei knapp 5 Prozent.
• Der Buchhändler Amazon hat nach eigenen Angaben am 29. November
2010 weltweit mehr als 13,7 Millionen Bestellungen angenommen. Das
entspricht etwa 158 Bestellungen pro Sekunde. Im Jahr 2007 hat Amazon
knapp 14,9 Milliarden US-Dollar Umsatz (engl. net sale) gemacht. Im
Jahr 2008 stieg der Umsatz trotz der Finanz- und Wirtschaftskrise auf ca.
19,2 Milliarden US-Dollar, um sich dann bis 2012 auf ca. 61 Milliarden
US-Dollar zu verdreifachen.
Man sieht, dass das Internet eine große wirtschaftliche Bedeutung gewonnen
hat und dass die wirtschaftliche Bedeutung kontinuierlich wächst. Ohne die
4
Quelle: Deutsche Bundesbank (http://www.bundesbank.de/): Statistiken zum Zahlungsverkehr 2002–2006 (Stand Januar 2008) und Statistiken zum Zahlungsverkehr 2007–2011
(Stand Januar 2013)
(Version 4; 2014)
5
6
Kapitel 1
Sicherheit in der Informationstechnik
entsprechende Sicherheit der beteiligten Informations-Technologie-Systeme (ITSysteme) könnten also immense wirtschaftliche Probleme entstehen.
Aktuelle Sicherheitsprobleme: Sicherheit ist aber auch deshalb ein wichtiges Thema, weil heute schon viele Sicherheitsprobleme auftreten. Sie stören
die normale Computernutzung, richten nicht unerhebliche Schäden an und
finden daher auch mehr und mehr Beachtung in der Presse. Ein ComputerComputer- Emergency-Response-Team (CERT) ist eine Anlaufstelle, die Meldungen
Emergency- über Sicherheitsvorfälle entgegen nimmt und über mögliche Abwehrmaßnahmen
Response-Team informiert. Im Internet findet man unter der Adresse http://www.cert.org/
(CERT) eine Statistik der gemeldeten Vorfälle.
In Deutschland betreibt das Deutsche Forschungsnetz (DFN) auch solch ein
Team. Zu seinen Aufgaben gehören neben der Betreuung der DFN-Mitglieder
auch die Bereitstellung von Informationen über Sicherheitsvorfälle und Hilfsmitteln zur Bekämpfung von Sicherheitsproblemen. Außerdem betreibt es eine
Zertifizierungsstelle (siehe auch Abschnitt 2.7). Im Internet finden Sie es unter
der Adresse http://www.cert.dfn.de/ Eine Liste von weiteren deutschsprachigen CERTs findet man unter der Adresse http://www.cert-verbund.de.
140000
Anzahl der gemeldeten Vorfälle
120000
100000
80000
60000
40000
20000
0
1988
1990
1992
1994
1996
1998
2000
2002
2004
Jahre
Abbildung 1.2: Dem CERT gemeldete Sicherheitsvorfälle
Abbildung 1.2 zeigt grafisch die Zahlen, die das CERT als Tabelle im
Internet publiziert. Die steigende Zahl der Vorfälle kann nicht alleine auf ein
gestiegenes Bewusstsein bzgl. Computersicherheit zurück geführt werden. Wenn
mehr Personen auf Sicherheitsvorfälle achten, dann werden natürlich auch mehr
Vorfälle erkannt. Eine leichte Steigung der gemeldeten Vorfälle wäre also auch
bei einer eigentlich konstanten Zahl an Vorfällen zu erwarten. Dadurch alleine
lässt sich der Anstieg der Zahlen in Abbildung 1.2 allerdings nicht erklären. Es
ist tatsächlich eine steigende Zahl an Sicherheitsvorfällen vorhanden.
Hierfür gibt es zwei wesentliche Gründe: (1) Ein Grund ist die Verfügbarkeit von einfach zu bedienenden Angriffswerkzeugen, beispielsweise VirusKonstruktions-Programmen oder konkreten „hacker tools“. Damit kann auch
(Version 4; 2014)
1.2
7
Einleitung
ein weniger qualifizierter Angreifer Schwachstellen in Systemen ausnutzen. In
diesem Fall spricht man oft von sog. Script-Kiddies, die verfügbare Programme zur Ausnutzung von Schwachstellen laufen lassen und beliebige Rechner
angreifen. (2) Der zweite Grund ist wirtschaftlicher Natur. Der massenhafte
Versand von unerwünschten Werbe-E-Mails (engl. spam) ist für die Versender
ein potentiell lukratives Geschäft. Vergleichsweise niedrigen Kosten steht ein
großer Nutzen gegenüber. Allerdings versuchen Anwender permanent, die steigende Flut von Werbe-E-Mails einzudämmen. Beispielsweise werden E-Mails
von bekannten „Spammern“ grundsätzlich blockiert. Dies kann aber dadurch
umgangen werden, indem die „Spammer“ nicht unter eigenem Namen agieren,
sondern erfolgreich angegriffene Rechner und deren Benutzer hierzu missbrauchen. Die unerwünschten Werbe-E-Mails kommen dann nicht mehr von einem
Rechner (den man als Absender evtl. nicht zulassen kann), sondern von beliebigen, vorher nicht bekannten Rechnern von Privatnutzern. Hacker vermieten
solche Bot-Netze an zahlende Kunden um deren Werbung über die gehackten
Rechner zu verbreiten.
Das SANS Institute (siehe http://www.sans.org/) hat einige Jahre lang
eine Liste mit den Top 20 Security Risks erstellt. Sie gruppierte die Liste der
Probleme des Jahres 2007 in
• Client-side Vulnerabilities (Webbrowser, Office-Software, E-Mail-Clients,
Mediaplayer etc.)
• Server-side Vulnerabilities (Webapplications, Windows-Services, UNIXand Mac OS-Services, Backupsoftware, Antivirensoftware, ManagementServers, Database-Software etc.)
• Security-Policy and Personnel (Excessive User-Rights and Unauthorized
Devices, Phishing, Unencrypted Laptops and Removable Media etc.)
• Application-Abuse (Instant Messaging, Peer-to-Peer-Programs etc.)
• Network-Devices (VoIP-Servers and Phones etc.)
• Zero-Day-Attacks
Man sieht, dass es eine Vielzahl von Schwachstellen und Problemen gibt. Da
ständig neue Probleme auftauchen und glücklicherweise einige alte Probleme
gelöst scheinen, ändert sich auch die Klassifikation der Liste mit der Zeit.
Seit 2009 werden andere Listen erstellt. Aktuell sind zwei Listen:
1. Top 25 Most Dangerous Software Errors. In dieser Liste werden die gefährlichsten Softwarefehler vorgestellt. Sie sind der Grund für entsprechende
Sicherheitsprobleme. Software-Entwickler sollten diese Fehler kennen und
in ihren Programmen unbedingt vermeiden. In der Liste des Jahres 2011
gehören die Fehler zu drei Kategorien: (1) Insecure Interaction between
Components; hier geht es um unsichere Datenübertragung zwischen Komponenten eines Programms, zwischen Programmen, zwischen Prozessen,
threads oder zwischen Systemen. (2) Risky Resource Management; hier
geht es um schlechte Erstellung, Übertragung oder Löschung von wichtigen Ressourcen eines Systems und (3) Porous Defenses; also falsch
realisierten oder schlicht vergessenen Sicherheitsmaßnahmen.
(Version 4; 2014)
Script-Kiddies
Bot-Netze
8
Kapitel 1
Sicherheit in der Informationstechnik
2. Top 20 Critical Security Controls. Hier werden die wichtigsten Sicherheitsmaßnahmen aufgezählt, mit denen man die eigene IT schützen sollte. Bei
allen Maßnahmen wird erklärt, wie Angreifer das Fehlen dieser Maßnahme
ausnützen können und wie man die Maßnahme effektiv umsetzt.
Conficker
Sich persistent
machen
Als
Verbreitungsserver
arbeiten
Andere aussperren
verbreiten
Ein Beispiel für ein großes Sicherheitsproblem aus dem Jahr 2008 ist der
Wurm Conficker alias Downadup. Es zeigt wie geschickt Angreifer vorhandene
Sicherheitsprobleme ausnützen können. Der Wurm nutzt einige Software-Fehler
in allen Betriebssystemen von Microsoft Windows 2000 bis Microsoft Windows
Server 2008 aus. Der Remote-Procedure-Call-Dienst (RPC-Dienst) enthält
einen Fehler, so dass ein Angreifer eine spezielle Nachricht an den Rechner
schicken kann, um dann die komplette Kontrolle über diesen Rechner auszuüben.
Der Angreifer braucht keine Benutzerkennung oder irgendein Passwort auf
dem System zu kennen oder auszuspähen. Bereits im Jahr 2003 hatte der
Wurm MSBlaster alias Lovsan eine vergleichbare Lücke in Microsoft Windows
ausgenutzt und großen Schaden angerichtet. Der RPC-Dienst wird bei der
Datei- und Druckfreigabe in Microsoft Windows benutzt.
Als erstes kopiert sich der Wurm als DLL-Datei in das Betriebssystem des
infizierten Rechners, trägt sich in die Registry ein und sorgt somit dafür, dass
er beim Systemstart immer wieder neu gestartet wird.
In ihrem Malware-Protection-Center beschrieb Microsoft die weiteren Auswirkungen von Conficker wie folgt:
This malware mostly spreads within corporations but also was
reported by several hundred home users. It opens a random port between port 1024 and 10000 and acts like a web server. It propagates
to random computers on the network by exploiting MS08-067. Once
the remote computer is exploited, that computer will download a
copy of the worm via HTTP using the random port opened by the
worm. The worm often uses a .JPG extension when copied over and
then it is saved to the local system folder as a random named dll.
It is also interesting to note that the worm patches the vulnerable
API in memory so the machine will not be vulnerable anymore. It
is not that the malware authors care so much about the computer
as they want to make sure that other malware will not take it over
too. . .
Jeder infizierte Rechner wird somit zum neuen Verteiler für den Wurm im
Gegensatz zu anderer Schadsoftware, die ein neu infizierter Rechner immer von
demselben Server laden würde.
Anschließend ruft der Wurm HTML-Seiten von einigen Webservern ab,
um daraus das aktuelle Datum und die Uhrzeit zu entnehmen. Außerdem
erfährt er so, welche im Internet sichtbare IP-Adresse der infizierte Rechner hat.
(Der Rechner könnte in einem privaten Netz mit privaten IP-Adressen liegen
und über einen Router, der Network-Address-Translation (NAT) durchführt,
mit dem Internet verbunden sein.) Eine URL zum o. g. Webserver auf dem
infizierten Rechner verteilt der Wurm dann an andere Rechner, die er zu
infizieren versucht.
Letztlich versucht der Wurm sich (1) im lokalen Netz auf angeschlossene
USB-Devices etc. zu verbreiten und (2) schickt der Wurm dann auch noch
Anfragen an einige URLs, um von dort weitere (Schad-)Software nachzuladen.
Diese URLs werden zufällig generiert, wobei das aktuelle Datum und die
(Version 4; 2014)
1.2
Einleitung
Uhrzeit in die Erzeugung eingehen. Es werden also täglich andere URLs erzeugt,
damit man diese Rechner nicht einfach sperren kann. Ein Hacker der den
Erzeugungsalgorithmus kennt kann nun beispielsweise die URLs für einen Tag
in etwa drei Monaten berechnen und dann eine dieser zufällig generierten
DNS-Domains für sich registrieren, dort Schadsoftware aufspielen und abwarten
bis infizierte Rechner versuchen, diese Schadsoftware zu laden und zu starten.
Die Firma F-Secure hat einige solche DNS-Domains für sich registriert und
dann gezählt wie viele infizierte Computer dorthin Anfragen schicken. Am 16.
Januar 2009 schätzte man bei F-Secure die Zahl der mit dem Conficker-Wurm
infizierten Rechner auf ca. 8,9 Millionen!
Das Nachladen von Funktionen haben die Autoren von Conficker noch
zusätzlich geschützt. Die nachzuladenden (Schad-)Funktionen müssen mit einem speziellen RSA-Schlüssel (siehe Abschnitt 2.4.2) digital signiert sein. Die
Autoren von Schutzsoftware können diesen Nachlademechanismus also nicht
dazu benutzen dem Wurm eine „Selbstzerstörungsfunktion“ unter zu schieben.
Der einzige Schutz vor dem Wurm besteht darin, den Betriebssystem-Patch Schutz
von Microsoft rechtzeitig zu installieren.
PRISM: Im Sommer 2013 wurde bekannt, dass die National Security Agency
(NSA) der USA ein weltweites Abhörnetz betreibt und so viele Kommunikationsdaten wie möglich mitliest. So wird u. a. erfasst wer mit wem per E-Mail
kommuniziert und wer wann welche Internetseiten aufruft. Außerdem sind
amerikanische Firmen wie Google, Microsoft, Apple und facebook verpflichtet,
der NSA Daten auf Anfrage zur Verfügung zu stellen. Welche Daten das genau
sind ist nicht öffentlich bekannt. Man muss also davon ausgehen, dass die eigene
Privatsphäre doch nicht so privat ist wie man das gerne hätte. Möchte man vertrauliche Inhalte schützen, so muss man sie verschlüsseln (siehe Abschnitt 2.3).
Möchte man nicht, dass jemand weiss, welche Internetseite man besucht, so
muss man Anonymitätsnetze wie JAP oder Tor (siehe Kurs (01868) Sicherheit
im Internet 1 – Ergänzungen) benutzen. Außerdem sollte man sich sehr genau
überlegen, welche persönlichen Daten man in sozialen Netzen preisgeben will.
Gesetzliche Verpflichtungen: Am 1. Mai 1998 trat das Gesetz zur Kontrolle und Transparenz im Unternehmensbereich (KonTraG) in Kraft. Es zwingt KonTraG
börsennotierte Aktiengesellschaften zur Risikovorsorge durch die Etablierung
eines Risikomanagement- und Kontrollsystems. Das heißt, dass diese Firmen
gezwungen sind, sich mit den Risiken, die durch ihre IT-Systeme entstehen
können, auseinander zu setzen. Natürlich reicht es nicht, sich nur mit den
Risiken auseinander zu setzen. Die Unternehmen müssen die erkannten Gefahrenpotentiale auch verringern. Da 100-prozentige Sicherheit nicht erreichbar ist,
müssen die Restrisiken auf ein vertretbares Maß reduziert werden. Verbleibende
Gefahren sollen durch Überwachungsmaßnahmen kalkulierbar werden.
Im Geschäftsleben hat die Risikovorsorge aber auch handfeste finanzielle
Gründe. Banken müssen für jeden Kredit, den sie vergeben, einen bestimmten
Anteil an Eigenkapital vorhalten. Das dient dazu, dass beim Zahlungsausfall
eines Gläubigers die Bank nicht in Liquiditätsprobleme kommt. Die Höhe dieses
Eigenkapitalanteils richtet sich nach der Höhe des Risikos. Kreditnehmer mit
hohem Risiko zwingen eine Bank zu höheren Eigenkapitalrücklagen. Daher
werden Banken solchen Kreditnehmern ungünstigere Zinskonditionen anbieten.
Das Basel Committee on Banking Supervision hat solche Vorschriften unter
(Version 4; 2014)
9
10
Kapitel 1
Basel II
Basel III
Sicherheit in der Informationstechnik
dem Namen Basel II erarbeitet. Insbesondere die sog. operationellen Risiken
werden zukünftig beurteilt. Ein Kreditnehmer, dessen Geschäfte stark von
der IT abhängen und der wenig IT-Sicherheitsvorkehrungen trifft, muss also
mit höheren Kreditkosten rechnen. Im Jahr 2010 wurde unter dem Namen
Basel III ein weiteres Reformpaket veröffentlicht, das ab 2013 schrittweise in
Kraft treten wird. Als Folge der weltweiten Finanzkrise von 2007 wurden u. a.
weitere Vorschriften zum Risikomanagement erlassen.
Ein weiteres Problem stellen Computer im Börsenhandel dar. Sie können
so programmiert werden, dass sie automatisch bei bestimmten Ereignissen
Kauf- oder Verkaufs-Aufträge absetzen. Das kann zu Spiraleffekten führen.
Sinkt der Kurs einer Aktie unter einen bestimmten Wert, dann will der erste
Computer verkaufen. Dadurch sinkt der Wert weiter und weitere Computer
wollen verkaufen usw. Dadurch können sehr starke Schwankungen entstehen.
Im sogenannten Hochfrequenzhandel nutzen Computer Informationsvorsprünge
im Bereich von Millisekunden aus, d. h. für einen Menschen bleibt eigentlich
kaum Zeit, um gegebenenfalls einzugreifen.
Aber auch Sie persönlich müssen aufpassen, dass Angreifer Ihren Rechner
nicht dazu missbrauchen, anderen einen Schaden zuzufügen. Möglicherweise
tragen Sie daran eine Mitschuld, wenn Sie die erforderliche Sorgfalt missachten.
Dann könnten Sie auf Schadenersatz verklagt werden.
Persönliche Arbeitserleichterung: Sobald Sie auf dem eigenen Rechner
ein Sicherheitsproblem haben, müssen Sie sich darum kümmern. Falls Sie
nichts tun, können Sie Probleme der vielfältigsten Art bekommen. Ihr Rechner
arbeitet nicht mehr für Sie, er schädigt andere Benutzer oder Ähnliches. Um
diese Probleme zu vermeiden, müssen Sie also etwas tun. Das kostet mindestens
Zeit, die Sie möglicherweise mit Erfreulicherem verbringen wollen. Daher ist
es einfacher, Probleme von Anfang an zu vermeiden, als sich später mit der
Problembehebung auseinander zu setzen. In der Medizin heißt das: „Vorbeugen
ist besser als heilen.“
1.2.2
Was heißt eigentlich Sicherheit?
Umgangssprachlich versteht man unter Sicherheit in der Regel einen Zustand
ohne Gefahren. Im dtv-Lexikon ist Sicherheit wie folgt definiert:
Sicherheit, 1) Zivilrecht: Bürgschaft, Pfand oder jeder Vermögenswert, der zur Sicherheitsleistung gebracht wird. 2) objektiv
das Nichtvorhandensein von Gefahr, subjektiv die Gewissheit, vor
möglichen Gefahren geschützt zu sein.
Bedrohungen
Schäden
Angriffe
Für diesen Kurs ist die juristische Bedeutung uninteressant. Die zweite Interpretation unterscheidet zwischen objektiver Sicherheit und subjektiver Sicherheit.
In beiden Fällen ist von Gefahren die Rede. Im Rahmen von IT-Sicherheit
spricht man an Stelle von Gefahren häufiger von Bedrohungen. Neben den
eher abstrakten Bedrohungen sind auch die potentiellen Schäden zu betrachten. Diese lassen sich in der Regel einfacher quantifizieren. In Abschnitt 1.2.3
wird kurz vorgestellt, was eigentlich bedroht ist. Es geht konkret um die Ziele
von Angriffen (engl. attacks). In Abschnitt 1.2.4 werden einige Kriterien vorgestellt, anhand derer man Bedrohungen klassifizieren kann. Anschließend geht
es in Abschnitt 1.2.5 um die „klassischen Bedrohungen“ der IT-Sicherheit. Hier
(Version 4; 2014)
1.2
11
Einleitung
werden die typischen Probleme, wie Integrität, Vertraulichkeit, Authentizität
usw. diskutiert.
1.2.3
Angriffsziele
Die Sicherheit von IT-Systemen kann auf verschiedene Weise gefährdet sein.
Abbildung 1.3 zeigt, an welchen Stellen die Sicherheit gefährdet werden kann.
Der erste Angriffspunkt liegt an den Zugangswegen zu einem Computer. In
Angriff auf
Kommunikationswege
Angriff auf
Computer
Angriff auf
Daten
Abbildung 1.3: Ziele von potentiellen Angriffen auf die Sicherheit
einem vernetzten System wie dem Internet sind nicht alle Kommunikationswege
unter der Kontrolle einer einheitlichen Instanz. Deshalb ist damit zu rechnen,
dass einzelne Übertragungsleitungen abgehört werden. So kann jemand Ihre
Kommunikation „mitlesen“.
Der zweite Angriffspunkt ist der Computer selbst. Bei Mehr-BenutzerComputern können andere Benutzer Programme laufen lassen, die evtl. Ihre
eigenen Programme beeinträchtigen oder Ihre eigenen Daten verfälschen oder
ausspionieren. Außerdem könnte der Computer lahmgelegt werden und dadurch
nicht mehr für Sie zur Verfügung stehen.
Das dritte Ziel von Angreifern sind die Daten selbst. Durch unbefugten
Zugriff auf Datenbanken oder die Datenträger (Festplatten, Bänder, DVDs,
USB-Sticks) können Daten ausspioniert oder manipuliert werden. Aber auch
durch die Messung von elektromagnetischen Wellen, die von einem Bildschirm
immer5 abgestrahlt werden, kann man den Bildschirminhalt (und damit die
Daten auf dem Bildschirm) rekonstruieren.
1.2.4
Systematik der Bedrohungen
Bei den Bedrohungen kann man unterschiedliche Klassen differenzieren. Ein
erstes Unterscheidungskriterium ist, ob es sich um technische Bedrohungen nicht-technische und
handelt oder ob eine nicht-technische Bedrohung vorliegt. Zu den einfachen technische
technischen Bedrohungen gehört z. B. die kosmische Strahlung. Auch wenn Bedrohungen
es eher selten vorkommt, so kann diese Strahlung den Wert einzelner Bits
verändern und so Daten verfälschen. Auch andere elektrische Probleme, z. B.
5
Zumindest bei Bildschirmen auf Basis von Elektronenstrahlröhren.
(Version 4; 2014)
12
Kapitel 1
beabsichtigte und
unbeabsichtigte
Bedrohungen
aktive und passive
Bedrohungen
Sicherheit in der Informationstechnik
auf Übertragungsleitungen, oder elektromagnetische Probleme bei Funkübertragungen gehören hierzu. Diesen Problemen kann man durch die Einführung
von Redundanz, beispielsweise durch Prüfbits oder fehlerkorrigierende Codes,
begegnen. Man begegnet technischen Bedrohungen also i. d. R. mit technischen
Maßnahmen.
Ein nicht-technisches Problem wäre dagegen eine Person, die absichtlich
Daten verfälscht und dann überträgt. Natürlich kann man hier auch argumentieren, dass eine Person die Daten ja nicht „von Hand“ ändern kann, sondern
dazu einen Computer und ein Programm (also Technik) benutzen muss. Soll die
Person diese Daten aber tatsächlich mit dem Computer verarbeiten (natürlich
unverfälscht), dann arbeitet die Technik in diesem Fall tatsächlich so wie sie
soll. Um das Problem der Datenfälschung zu vermeiden würden technische
Maßnahmen weniger helfen als organisatorische Maßnahmen wie beispielsweise
das Vier-Augen-Prinzip. Also wäre diese Bedrohung eher nicht-technisch.
Das o. g. Problem führt zum zweiten Unterscheidungsmerkmal. Bedrohungen können beabsichtigt oder unbeabsichtigt entstehen. Eine unbeabsichtigte
Bedrohung ist es, wenn ein Mitarbeiter aus Unwissenheit ein wichtiges Passwort
auf einen Post-it-Zettel schreibt und diesen auf den Monitor des Computers
klebt. Im Allgemeinen zählen die meisten Bedienungsfehler zu dieser Kategorie.
Im Gegensatz dazu ist jede Form von Spionage zu den beabsichtigen Bedrohungen zu zählen. Auch die sogenannten Denial-of-Service-Attacks sind
beabsichtigte Bedrohungen. Hier versuchen Angreifer einen Dienst für die
legitimen Benutzer nicht mehr verfügbar zu machen, beispielsweise durch Systemüberlastungen.
Ein drittes Merkmal unterscheidet aktive und passive Bedrohungen. Zu den
passiven Bedrohungen zählt jede Form des Abhörens. Funkübertragungen lassen
sich durch eine zusätzliche Antenne einfach mitschneiden und beeinträchtigen
den regulären Empfang nicht. Selbst wenn der Angreifer aktiv seine Antenne
in die Luft halten muss und das Abhörprogramm starten muss, so greift er
doch nicht in die Übertragung ein. Auch das heute sehr oft benutzte Ethernet
(siehe auch Abschnitt 1.3.1) überträgt in seiner Grundform jedes Datenpaket
an alle angeschlossenen Computer. Normalerweise ignoriert ein Computer alle
Datenpakete, die nicht an ihn selbst adressiert sind. Es ist jedoch sehr einfach,
einen Computer so zu programmieren, dass er alle Pakete an einen bestimmten
anderen Computer im Netz mitprotokolliert. Passive Bedrohungen sind schwer
zu entdecken.6
Im Gegensatz dazu wird bei aktiven Bedrohungen direkt eingegriffen. Das
Erzeugen neuer Nachrichten, das Unterdrücken oder Verzögern von Nachrichten
und die Fälschung von Nachrichten durch einen Angreifer sind aktive Bedrohungen. Sie lassen sich i. d. R. einfacher entdecken als passive Bedrohungen.
Abbildung 1.4 visualisiert die Systematik der Bedrohungen. Im Rahmen
dieses Kurses wird der Schwerpunkt der Betrachtungen auf den gemusterten
Bereichen (vorne unten im Würfel) liegen.
1.2.5
Klassische Bedrohungen
Hauptzweck der Erstellung von Computernetzen ist es, den Austausch von
Daten zwischen verschiedenen Computern so einfach wie möglich zu machen. In
6
Edward Snowden hat 2013 über solche Aktivitäten durch die National Security Agency
(NSA) der USA berichtet.
(Version 4; 2014)
1.2
13
Einleitung
unabsichtlich
nicht−technisch
absichtlich
technisch
aktiv
passiv
Abbildung 1.4: Klassifikation von Bedrohungen
diesem Abschnitt wird daher von einer normalen, ungestörten Kommunikation
wie in Abbildung 1.5 ausgegangen. Ein Sender verschickt eine Nachricht an
Sender
Empfänger
Abbildung 1.5: Ungestörter Nachrichtenaustausch
einen Empfänger und die Nachricht kommt dort unversehrt an. Die Nachricht
könnte dabei eine E-Mail oder ein HTTP-Request oder eine beliebige andere
elektronische Nachricht sein. In den folgenden Abschnitten wird dann aufgezeigt,
welche Probleme beim Datenaustausch auftreten können.
Unbefugter Informationsgewinn: Der unbefugte Informationsgewinn ist
ein Angriff auf die Vertraulichkeit (engl. confidentiality) der übertragenen Vertraulichkeit
Daten. Bei der elektronischen Abwicklung von Geschäften, z. B. dem Kauf von
Aktien, möchten die beteiligten Parteien i. d. R. nicht, dass Dritte davon erfahren.
Der unbefugte Informationsgewinn ist ein passiver Angriff, der absichtlich oder
unabsichtlich erfolgen kann. Abbildung 1.6 zeigt das Prinzip des unbefugten
Informationsgewinns.
Sender
Empfänger
Dritter
Abbildung 1.6: Unbefugter Informationsgewinn
Das „klassische“ Gegenmittel gegen diese Bedrohung besteht darin, die
Nachricht für den Dritten unleserlich, unverständlich oder unerkennbar zu machen. Durch Verschlüsselung kann man Nachrichten unverständlich machen. Verschlüsselung
Versteckt man eine Nachricht in einer anderen, unverfänglichen und i. d. R.
größeren Nachricht, so spricht man von Steganografie.
Steganografie
Der unbefugte Informationsgewinn ist nicht auf das Abhören von Datenübertragungen begrenzt. Wie bereits in Abschnitt 1.2.3 dargestellt, kann sich ein
Unbefugter auch direkt Zugang zu einem Computer mit wichtigen Daten verschaffen. Diese kann ein Angreifer dann einsehen oder kopieren und mitnehmen.
(Version 4; 2014)
14
Kapitel 1
Sicherheit in der Informationstechnik
In großen Rechenzentren sind die Computer daher in verschlossenen Räumen
untergebracht. Der Zugang zu diesen Räumen ist genau reglementiert und
wird u. U. durch Sicherheitsschleusen geregelt. Durch die steigende Verwendung
von mobilen Computern, wie Notebooks, Smartphones oder Tablet-Computer,
steigt jedoch die Gefahr von Diebstählen nicht nur der Geräte, sondern auch
der darauf gespeicherten Daten.
Weiterhin ist unbefugter Informationsgewinn auch dadurch möglich, dass
sich ein Angreifer Zugang zu den Datenträgern selbst verschafft. Die Festplatten
sind normalerweise genauso sicher untergebracht wie die Computer selbst. Aber
die Sicherungen, z. B. auf Magnetbändern oder dedizierten Backup-Festplatten,
werden aus Sicherheitsgründen auch an anderen Orten als der Computer selbst
gelagert. Eventuell sind diese Orte nicht so gut gesichert wie ein Rechenzentrum.
USB-Sticks haben einen Kapazität von mehreren Gigabytes. Sie sind klein
und können unbemerkt transportiert werden. Hat man Zugriff auf die USBSchnittstelle eines Computers und steckt dort einen USB-Stick an, dann kann
man Daten auf den Stick kopieren und dann mitnehmen.
Integrität
Unbefugte Modifikation: Die unbefugte Modifikation ist ein Angriff auf
die Integrität (engl. integrity) der übertragenen Daten. Eine vom Sender als
Kaufauftrag abgeschickte Nachricht könnte unterwegs von einem Dritten in
einen Verkaufsauftrag umgewandelt werden. Die unbefugte Modifikation ist
ein aktiver Angriff der i. d. R. absichtlich erfolgt. Doch auch durch technische
Probleme ist eine unbeabsichtigte Modifikation möglich.
Sender
Dritter
Empfänger
Abbildung 1.7: Unbefugte Modifikation
Abbildung 1.7 zeigt das Prinzip der unbefugten Modifikation einer Nachricht.
Der Empfänger erhält eine andere Nachricht, als der Sender abgeschickt hat.
Gegen unbefugte Modifikationen kann man sich auf verschiedene Arten
schützen. Durch die Einführung von Redundanz kann ein Empfänger erkennen,
ob Daten auf dem Transportweg verändert wurden. Dazu werden an den
Nutzinhalt zusätzliche Daten gehängt, die bestimmten Bedingungen genügen.
Ein Beispiel hierfür sind die Paritätsbits von Hauptspeicherbausteinen. Bei
gerader Parität wird das Paritätsbit so gesetzt, dass die Zahl der Einsen
in einem Datenwort (einschließlich Paritätsbit) gerade ist. Folgende Gründe
machen dieses Verfahren im Bereich der Sicherheit jedoch nicht einsetzbar:
• Einfache Verfahren erkennen nur bestimmte Veränderungen an den Daten,
z. B. nur die Veränderung eines Bits. Andere Veränderungen bleiben
dagegen unentdeckt.
• Bei einer beabsichtigten Modifikation der Daten kann ein Angreifer nicht
nur die Nutzdaten, sondern auch die Redundanzdaten verändern. Für den
Empfänger sieht die Nachricht dadurch korrekt aus. Voraussetzung hierfür
ist, dass der Angreifer das Verfahren kennt, mit dem die Redundanzdaten
berechnet werden.
Eine weitere Schutzmöglichkeit ist wiederum die Verschlüsselung der Daten
mit einem geeigneten Verfahren. Ohne den Schlüssel zu kennen, kann ein
(Version 4; 2014)
1.2
15
Einleitung
Angreifer dann keine sinnvolle Veränderung der Daten vornehmen. Verändert
man wahllos einige Bytes einer gut verschlüsselten Nachricht, so entsteht bei
der Entschlüsselung meistens etwas Unleserliches.
Angriffe auf die Integrität der Daten können nicht nur bei der Übertragung von Daten auftreten. Auch hier kann ein Unbefugter durch den direkten
Zugang zu einem Computer, auf dem wichtige Daten gespeichert sind, diese
Daten verändern. Eine weitere Gefährdung der Integrität von Daten sind ungeübte Benutzer. Durch die falsche Bedienung der Programme können Daten
unbeabsichtigt modifiziert werden.
Unbefugte Erzeugung: Die unbefugte Erzeugung von Nachrichten ist ein
Angriff auf die Authentizität (engl. authenticity). Dabei erzeugt jemand
eine Nachricht und gibt darin vor, jemand anderes zu sein. Beispielsweise könnte
Ihr Nachbar eine Bestellpostkarte auf Ihren Namen ausfüllen und damit bei
irgendeinem Versandhändler eine Bestellung in Ihrem Namen aufgeben. Es
kommt auch immer noch häufig vor, dass Personen einen Anruf von einem
vorgeblichen Bankmitarbeiter erhalten. Dieser fragt den Angerufenen dann mit
einer vorgeschobenen Begründung nach der Geheimzahl der EC-Karte. Geben
Sie Ihre Geheimzahl oder ein Passwort niemals jemand anderem preis!
Abbildung 1.8 zeigt das Prinzip der unbefugten Erzeugung. Ohne dass
der Sender aktiv wird, erhält der Empfänger eine Nachricht. Die unbefugte
Erzeugung ist ein aktiver Angriff und erfolgt überwiegend absichtlich. Er kann
bei Konfigurations- oder Bedienungsfehlern auch unabsichtlich erfolgen.
Sender
Dritter
Authentizität
Empfänger
Abbildung 1.8: Unbefugte Erzeugung von Nachrichten
Normalerweise überzeugt man sich von der Identität einer Person durch
einen Ausweis, wie z. B. einen Personalausweis. Um festzustellen, ob ein Brief
tatsächlich vom vorgeblichen Absender kommt, bedient man sich der eigenhändigen Unterschrift. Diese Methoden haben den Vorteil, dass sie schwer zu
fälschen oder zu kopieren sind. Man kann mit dem Auge recht gut feststellen,
ob man ein Originaldokument oder eine Fotokopie vor sich hat. In der digitalen
Welt der Computer kann man den Unterschied zwischen „Original-Bit“ und
„Kopie-Bit“ jedoch nicht mehr feststellen. Man ist dort auf andere Verfahren
angewiesen, auf die wir in Abschnitt 2.6 noch genauer eingehen werden.
Das Problem der Authentizität ist auch eng verwandt mit dem Problem der
Nicht-Zurückweisbarkeit (engl. non-repudiation) von Nachrichten. Dabei
geht es darum, dass weder der Sender noch der Empfänger die stattgefundene Kommunikation nachträglich abstreiten (zurückweisen) können. Konkret
bedeutet dies, dass
• der Empfänger beweisen kann, dass die Nachricht tatsächlich vom vorgegebenen Absender kommt (vorhandene eigenhändige Unterschrift) und
• der Sender beweisen kann, dass die Nachricht tatsächlich beim geplanten Empfänger und nicht bei jemand anderem angekommen ist (vgl.
Einschreiben mit Rückschein bei der Post).
(Version 4; 2014)
Nicht-Zurückweisbarkeit
16
Kapitel 1
Verfügbarkeit
Sicherheit in der Informationstechnik
Unbefugte Unterbrechung: Die unbefugte Unterbrechung ist ein Angriff
auf die Verfügbarkeit (engl. availability) von Daten, Computern und Kommunikationsmitteln. Wenn Ihr Nachbar Ihr Telefonkabel durchschneidet, so
steht Ihnen dieses Kommunikationsmittel nicht mehr zur Verfügung. Insbesondere bei zeitkritischen Geschäften ist die Verfügbarkeit der Systeme sehr
wichtig. Aktienkurse können sich beispielsweise sehr schnell ändern und eine
Verzögerung Ihrer Kauf-/Verkaufsorder durch die Nicht-Verfügbarkeit der Kommunikationsstrecke kann enorme wirtschaftliche Konsequenzen haben. Angriffe
auf die Verfügbarkeit sind aktive Angriffe, die i. d. R. absichtlich erfolgen.
Sender
Dritter
Empfänger
Abbildung 1.9: Unbefugte Unterbrechung
Angriffe auf die Verfügbarkeit können sich auch auf Computer selbst richten.
Dabei werden speziell konstruierte Nachrichten an einen Computer geschickt,
sodass bei der Bearbeitung der Nachricht das Betriebssystem abstürzt. Bis der
Computer neu gestartet ist (evtl. ist dazu ein manueller Eingriff erforderlich!)
stehen die Dienste dieses Computers nicht mehr zur Verfügung.
Das klassische Gegenmittel gegen diese Attacken besteht darin, sogenannte
„hochverfügbare Systeme“ (engl. high availability) aufzustellen. Dem eigentlichen Rechnersystem stellt man ein zweites, redundantes System mit identischer
Konfiguration zur Seite. Fällt ein System aus, übernimmt das andere den
Betrieb. Das macht man nicht nur bei Rechnern, sondern auch anderen Komponenten, wie Stromversorgung, Festplatten, Internetanschlüssen usw. Bei
Ausfällen aufgrund technischer Probleme (z. B. Ausfall der Festplatte, Blitzeinschlag, o. ä.) hat sich dieses Mittel bewährt. Gezielte Attacken, die Fehler im
Betriebssystem ausnutzen und den Computer dadurch zum Absturz bringen,
kann man durch ein identisches Backup-System nicht bekämpfen.
Allgemein gesagt entwirft man Architekturen, die sich nicht durch einen
Fehler an einer einzelnen Stelle lahm legen lassen. Solche Stellen nennt man auf
single point of failure Englisch single point of failure. Sie sind zu vermeiden. Das Thema sichere
Architekturen wird im Kurs (01867) Sicherheit im Internet 2 ausführlicher
besprochen.
Zusammenfassung der zu schützenden Eigenschaften:
Vertraulichkeit (engl. confidentiality): Daten sind nur für befugte Personen
zugänglich.
Integrität (engl. integrity): Daten sind korrekt und unverändert.
Authentizität (engl. authenticity): Daten stammen vom vorgeblichen Erzeuger.
Verfügbarkeit (engl. availability): Daten können von befugten Personen
gelesen/bearbeitet werden.
(Version 4; 2014)
1.2
Einleitung
1.2.6
Nicht-technische Aspekte von Sicherheit
Im vorigen Abschnitt wurde der Begriff der Sicherheit in dem Sinne vorgestellt,
dass ein sicheres System für den Benutzer verlässlich sein muss. Konkret be- Verlässlichkeit
deutet dies, dass die Funktionsweise des Systems den gestellten Anforderungen
genügt. Der Benutzer kann sich auf die Korrektheit der Ergebnisse (z. B. der
übertragenen Daten oder der Identität des Kommunikationspartners) ebenso
verlassen wie auf die Verfügbarkeit des Systems. Neben dieser technischen Sicht
gibt es auch die Sicht der Betroffenen. Aus dieser Sicht ist ein System sicher,
wenn es für die Betroffenen beherrschbar ist. Dies bedeutet, dass der Einzelne Beherrschbarkeit
und auch die gesamte Gesellschaft vor den unerwünschten Auswirkungen neuer
Technologien und Systeme geschützt werden müssen [MR99].
Neue Technologien und Systeme verändern das Verhalten der Menschen, die
diese Systeme benutzen. Die neuen Möglichkeiten der Informationsverarbeitung
beeinflussen auch die Struktur der Gesellschaft. Die Erfindung des Buchdrucks
mit beweglichen Lettern durch Gutenberg hat schon einmal das Leben der
Menschen und die Struktur der Gesellschaft grundlegend verändert. Ähnliches
kann durch die Verbreitung von Personal Computern (PCs) und des Internets
wieder vorkommen. Seit dem 11. September 2001 werden in den USA zum
Zweck der Terrorabwehr vermehrt Daten gesammelt (Patriot Act).
Dazu kommen die Daten, die viele Menschen freiwillig von sich selbst in
„sozialen Netzwerken“ wie XING, studiVZ, Facebook, MySpace usw. einstellen. Neben Namen, Anschrift und weiteren Kontaktdaten werden dort auch
berufliche Informationen und persönliche Hobbys und Interessen eingetragen.
Manchmal findet man dort auch einen Spitznamen einer Person, der in eigentlich
anonymen Diskussionsforen als Benutzerkennung auftaucht. Die Beiträge unter
dieser Benutzerkennung könnten dann der Person mit dem Spitznamen zugeordnet werden. Der Schutz der Privatsphäre (engl. privacy) eines Menschen
ist durch IT-Technik möglicherweise gefährdet.
privacy
Wenn man einmal zusammenstellt in welchen Bereichen Daten über Personen erfasst werden, ergibt sich eine lange Liste:
Finanzdaten: Wo hat man Konten? Wie viel verdient jemand? Wohin wird
Geld überwiesen? Wo hebt man Geld ab, d. h., wo hält man sich auf? Wo
kauft man ein (und bezahlt mit Karte)?
Konsumdaten: Mit Hilfe von Rabattkartensystemen erfassen Geschäfte die
Einkäufe ihrer Kunden. Was wird wann und wo gekauft? Daraus lassen
sich beispielsweise Ernährungsgewohnheiten ableiten, an denen Krankenkassen Interesse haben könnten.
Kommunikationsdaten: Mit wem telefoniert jemand? Wer bekommt EMails von wem? Telefongespräche und E-Mails können abgehört werden
(und werden es auch). Bei Mobiltelefonen kann man auch orten, wo sich
der Teilnehmer aufhält. Wohin surfen Benutzer im Internet? In welchen
Diskussionsgruppen beteiligen sich Personen?
Aufenthaltsdaten: Die Zahl von Überwachungskameras (Flughafen, Kaufhaus, öffentliche Plätze, Hotels, Banken usw.) steigt ständig und gibt
Auskunft über den Aufenthaltsort von Personen. Bei Flugreisen muss
man sich auch ausweisen und in den USA u. U. auch biometrische Daten
(Fingerabdrücke) von sich selbst abgeben.
(Version 4; 2014)
17
18
Kapitel 1
Sicherheit in der Informationstechnik
In modernen Digitalkameras sind immer öfter auch GPS-Sensoren eingebaut. Somit kann bei jedem Foto in den Metadaten gespeichert werden,
wann und wo das Foto aufgenommen wurde. Speichert man seine Fotos
im Internet (in einer Cloud, bei einem sozialen Netz, usw.) so kann jeder
mit Zugriff auf diese Fotos wissen, wo sie (als Fotograf oder als Motiv auf
dem Foto) zum Aufnahmezeitpunkt waren. Kombiniert mit automatischer
Gesichtserkennung kann man auch Bewegungsprofile der abgelichteten
Personen erstellen.
Persönliche Informationen: In sozialen Netzen findet man neben dem Namen einer Person oft auch Fotos, Informationen zur Ausbildung (den
eigenen Kenntnissen und Fertigkeiten), zum Arbeitsplatz (in welcher Firma, welche Position, welche Tätigkeit) und zu den sonstigen Interessen,
z. B. den Hobbys.
Data-Mining
Diese Liste ist nicht vollständig. Trotzdem können diese Datenmengen zusammengefasst und mit Hilfe von Data-Mining durchsucht und korreliert werden.
Daraus kann man
erschreckend komplette Dossiers über sie erhalten: über Lebensgewohnheiten, Interessen und Vorlieben, Lebensstile, persönliche
Probleme und sexuelle Orientierungen, politische Neigungen, finanzielle Verhältnisse, Familienstand usw. [DIE ZEIT Nr. 34, 12. August
2004]
Software-Fehler
Interessenkonflikt
Der Aufbau der Computer- und Netztechnologie ist für den Einzelnen im
Grundsatz verständlich. Trotzdem ist das Ausmaß der Veränderungen für die
Gesellschaft nur zum Teil vorhersehbar. Die Auswirkungen des E-Commerce
sind nur schwer vorhersehbar, insbesondere die Auswirkungen auf die bisher
als Verkäufer oder allgemein im Vertrieb tätigen Menschen.
Daneben gibt es ein weiteres Problem. Die technische Zuverlässigkeit von
Computern (sie können riesige Datenmengen in sehr kurzer Zeit fehlerfrei verarbeiten, z. B. Zahlenkolonnen addieren oder Gleichungssysteme lösen) verleitet
die Benutzer zu einer unzulässigen Verallgemeinerung. Es resultiert ein falsches
Vertrauen in die Objektivität der Datenverarbeitung nach dem Motto: „Was
der Computer berechnet hat, wird schon stimmen.“
Die Vernetzung der Systeme und die immer weiter steigende Komplexität
der Systeme stellt die Beherrschbarkeit in Frage. Da man nur noch selten
das gesamte System durchschaut und versteht, übersieht man möglicherweise
Schwachstellen und Missbrauchsmöglichkeiten. Und welcher PC-Benutzer weiß
heute schon, was sein Betriebssystem im Hintergrund so alles macht? Ist man
wirklich sicher, dass private Daten nicht heimlich an Dritte übertragen werden?
Neben der technischen Sicht der Sicherheit, also der Verlässlichkeit von
Systemen, darf auch die Benutzer- (bzw. Betroffenen-)Sicht, also die Frage der
Beherrschbarkeit von Systemen, nicht vergessen werden. In diesem Kurs geht
es allerdings nicht um Fragen der Beherrschbarkeit, sondern zunächst um die
Verlässlichkeit der Systeme.
An dieser Stelle soll auch erwähnt werden, dass die Wahrnehmung von
Gefahren, d. h. letztlich die Sicherheit, auch von der Perspektive des Wahrnehmenden abhängt. Ein Netzbetreiber hält es eventuell für gefährlich, wenn
jemand anonym Zugang zum Netz erhält. Wie könnte sich der Betreiber vor un(Version 4; 2014)
1.3
Netze
liebsamen Teilnehmern schützen? Wer bezahlt den Betreiber für die in Anspruch
genommenen Dienste?
Auf der anderen Seite möchten Sie als „Websurfer“ nicht unbedingt mit
Ihrem wahren Namen auftreten. Dadurch verhindern Sie, dass ein Aktivitätsund Interessenprofil von Ihnen erstellt wird. Ein aus Ihrer Sicht sicheres System
erlaubt also Anonymität, ein aus Sicht des Betreibers sicheres System würde
Anonymität lieber verbieten.
Solche widersprüchlichen Sichten ergeben sich nicht nur bei verschiedenen
Beteiligten, sondern auch aus den unterschiedlichen Situationen, in denen ein
Beteiligter agiert. Während einer Recherche oder bei anderer Informationsbeschaffung möchten Sie gerne anonym bleiben. Auf der anderen Seite wollen
und erwarten Sie beispielsweise bei Bankgeschäften, dass Sie und die Bank
keinesfalls anonym bleiben. Sie möchten wissen, dass Sie auch tatsächlich mit
der Bank kommunizieren und von einer Bank erwarten Sie, dass die Bank keine
anonymen Aufträge zu Lasten Ihres Kontos ausführt.
Übungsaufgabe 1.1 Welches sind die vier zu schützenden Eigenschaften in
einem System? Erklären Sie deren Bedeutung mit eigenen Worten.
1.3
Netze
In diesem Abschnitt werden der Aufbau und die Struktur von Computernetzen,
insbesondere des Internets diskutiert. Die im Internet verfügbaren Dienste und
die dort benutzten Kommunikationsprotokolle werden vorgestellt. Es wird auf
die einzelnen Bereiche jedoch nur so weit eingegangen, wie es für das Verständnis
des Kurses erforderlich ist.
1.3.1
Lokale Netze
Schon seit Jahren werden Computer miteinander vernetzt. Alle Computer einer
Abteilung, eines Lehrgebietes oder einer beliebigen anderen geschlossenen Benutzergruppe werden in einem lokalen Netz (engl. Local Area Network (LAN))
miteinander verbunden. So können die Benutzer bestimmte Ressourcen wie
Drucker oder Dateien gemeinsam benutzen und sehr einfach Daten austauschen.
In lokalen Netzen werden unterschiedliche Topologien eingesetzt. Im Folgenden Netztopologien
stellen wir diese Topologien kurz vor und betrachten dabei insbesondere die
Auswirkungen auf die Sicherheit.
Sterntopologie: In einem Netz mit Sterntopologie werden alle Computer
an einen zentralen Punkt angeschlossen (siehe Abbildung 1.10). Aufgrund der
Ähnlichkeit mit einem Rad nennt man den Mittelpunkt auch Nabe (engl. hub).
Ein Beispiel für ein Sternnetz ist das ATM (engl. Asynchronous Transfer
Mode) der Telefongesellschaften. Der zentrale Punkt ist ein elektronischer
Vermittler (engl. switch), der dedizierte Verbindungen zwischen den angeschlossenen Computern schaltet. Die Kommunikationsdaten fließen also nur vom
Sender zum Switch und zum Empfänger. Auf die Sicherheit hat dies folgende
Auswirkungen:
• Fällt ein Computer aus, so können die anderen Computer weiterhin
kommunizieren (Verfügbarkeit).
(Version 4; 2014)
19
20
Kapitel 1
Sicherheit in der Informationstechnik
switch
Hub
Abbildung 1.10: Prinzip der Sterntopologie
• Fällt der Switch aus, so ist keine Kommunikation mehr möglich (Verfügbarkeit).
• Da die Daten nur den Sender, den Switch und den Empfänger passieren,
können andere Computer diese Kommunikation nicht stören oder abhören
(Vertraulichkeit).
Das setzt allerdings voraus, dass der Switch die Adressen der angeschlossenen Systeme kennt. Ethernet-Switches lernen diese Adressen im laufenden
Betrieb. Trifft ein Paket ein, so steht darin die Adresse des Absenders.
Soll der Switch anschließend ein anderes Paket an genau diese Adresse
schicken, dann kennt der den zugehörigen Anschluss (engl. port). Der
Switch ist also darauf angewiesen, dass die angeschlossenen Computer
kooperativ sind und nicht beispielsweise gefälschte Absenderadressen
benutzen.
Token
Ringtopologie: Sind alle Computer eines lokalen Netzes in einer geschlossenen Schleife angeordnet, so spricht man von einer Ringtopologie (siehe Abbildung 1.11). Ein Beispiel für ein Ringnetz ist der Token-Ring von IBM. Die
Computer benutzen eine spezielle Nachricht, genannt Token, um die Nutzung
zu koordinieren. Will ein Computer Daten verschicken, so wartet er auf das
Token und sendet dann die Daten an seinen „rechten“ Nachbar. Die Nachricht
wird von Computer zu Computer weitergereicht. Der Empfänger erstellt eine
Kopie der Nachricht und der Absender erhält die Nachricht wieder zurück.
Danach gibt der Sender das Token, und somit die Sendeerlaubnis, an seinen
„rechten“ Nachbarn weiter. Will kein Computer senden, kreist das Token mit
hoher Geschwindigkeit. Auf die Sicherheit hat dies folgende Auswirkungen:
• Fällt ein Computer oder eine einzige Verbindung aus, so ist die Kommunikation unterbrochen (Verfügbarkeit).
• Eine Nachricht passiert alle angeschlossenen Computer und kann im Prinzip auf jedem Computer gelesen werden (Vertraulichkeit). Jeder Computer
könnte die Nachricht auch verfälschen (Integrität) oder unterdrücken.
(Version 4; 2014)
1.3
21
Netze
Abbildung 1.11: Prinzip der Ringtopologie
Bustopologie: Bei der Bustopologie sind alle Computer an das gleiche Kabel
angeschlossen (siehe Abbildung 1.12). Ein Beispiel für ein Busnetz ist das
Ethernet. Es kann in seiner Grundform die Daten mit 10 Mbit/s Geschwindigkeit
übertragen. Inzwischen gibt es auch Fast-Ethernet mit 100 Mbit/s Übertragungsrate und auch Gigabit-Ethernet mit 1 Gbit/s Übertragungsrate. Wenn
Abbildung 1.12: Prinzip der Bustopologie
ein Computer Daten versendet, dann können alle an das Kabel angeschlossenen
Computer diese Nachricht lesen. Wollen zwei Computer gleichzeitig senden,
so kommt es zu einer Kollision und die Computer müssen die Übertragung
abbrechen und später wieder aufnehmen. Auf die Sicherheit hat dies folgende
Auswirkungen:
• Fällt ein Computer aus, so können die anderen Computer weiterhin
miteinander kommunizieren (Verfügbarkeit).
• Läuft ein Computer „Amok“, so können die anderen Computer u. U. nicht
mehr kommunizieren, da die Leitung belegt ist (Verfügbarkeit).
• Jeder angeschlossene Computer kann alle Nachrichten auf dem Kabel
mitlesen (Vertraulichkeit).
1.3.2
Vernetzte Netze
Lokale Netze können nicht beliebig groß werden. Außerdem gibt es nicht
„die beste“ Netztechnologie für alle Anwendungsfälle. Es besteht also der
(Version 4; 2014)
22
Kapitel 1
Sicherheit in der Informationstechnik
Bedarf unterschiedliche Netze miteinander zu verbinden. Dazu stehen folgende
Gerätetechnologien zur Verfügung:
Repeater: Ein Repeater ist ein Gerät, das zwei gleichartige lokale Netze
miteinander verbindet und zu einem Gesamtnetz macht. Dazu verstärkt
und überträgt der Repeater alle Signale (also auch Störungen) zwischen
den beiden Netzen.
Bridge: Eine Bridge arbeitet im Prinzip wie ein Repeater. Sie gibt aber nicht
alle Signale weiter, sondern leitet nur vollständige und fehlerfreie Datenrahmen weiter. Daher kann eine Bridge anhand der Absenderadressen
in den Rahmen mit der Zeit lernen, welcher Computer in welchem Netz
liegt. Die Bridge leitet die Rahmen daher nur dann weiter, wenn der
Zielcomputer in einem anderen Netz liegt.
Switch
Dies setzt voraus, dass die Struktur und die Datenrahmen in beiden Netzen
gleich sind. Für ein Ethernet realisieren sogenannte Switches eine Menge
von einelementigen Subnetzen für jeden angeschlossenen Computer, der
über Bridges mit allen einelementigen Subnetzen verbunden ist. Dadurch
kann die Bustechnologie Ethernet sternförmig verkabelt sein.
Ethernet
Router
Token Ring
Abbildung 1.13: Verbindung von Ethernet und Token-Ring durch einen Router
Router: Ein Router ist ein dedizierter Computer für den Zusammenschluss
von Netzen. Er kann Netze unterschiedlicher Technologien mit verschiedenen Medien, Adressschemata oder Rahmenformaten verbinden. Dazu
hat er eine getrennte Schnittstelle für jeden Netzanschluss, d. h. eine
Netzwerkkarte für jeden Netztyp. Ein Router kann also ein Busnetz wie
das Ethernet mit einem Ringnetz wie dem Token-Ring verbinden (siehe
Abbildung 1.13).
(Version 4; 2014)
1.3
23
Netze
1.3.3
Das Internet-Protokoll
Damit man Daten zwischen unterschiedlichen Netzen austauschen kann, muss
man sich vorher auf bestimmte Dinge wie Datenformate, Adressierung, Verbindungsaufbau usw. einigen. Diese Einigungen werden in einem sogenannten
Protokoll festgehalten. Die am häufigsten implementierte Protokollfamilie ist
das TCP/IP.
Protokoll
Protokollschichten: Die Protokolle der TCP/IP-Familie sind hierarchisch
in Schichten organisiert. In Abbildung 1.14 sind die Teile dargestellt, die
bei einer Kommunikation beteiligt sind. Auf der obersten Ebene stehen die
ftp
telnet
snmp
...
TCP
UDP
IP
x
IP−Adresse
Netzwerkkarte
*
ARP
Hardware−Adresse
Computer
Netz (z. B. Ethernet)
Abbildung 1.14: Ablauf der Kommunikation bei TCP/IP
Anwendungsprogramme (wie telnet, ftp oder andere), die den Bedarf haben, mit
einem anderen Computer Daten auszutauschen. Diese Programme rufen dazu
Funktionen aus der Transmission-Control-Protocol-Schicht (TCP-Schicht) bzw. TCP
der User-Data-Protocol-Schicht (UDP-Schicht) auf. Das Anwendungsprogramm UDP
übergibt eine Anwendungsnachricht.
Die Funktionen der TCP-Schicht zerlegen diese Nachricht und leiten TCPSegmente an die darunterliegende Internet-Protocol-Schicht (IP-Schicht) weiter. IP
In der IP-Schicht muss auch die IP-Adresse des Computers selbst bekannt sein.
Die IP-Schicht gibt ein IP-Paket (versehen mit einer IP-Zieladresse) an die
Netzwerkkarte weiter. Mit Hilfe des Address-Resolution-Protocol (ARP) und ARP
der auf dem Computer gespeicherten Tabelle wird die Hardware-Adresse des
Zielcomputers ermittelt. Damit versehen geht dann beispielsweise ein EthernetFrame auf den Weg vom Computer an das Netz.
Adressierung: Jede Netzwerkkarte hat eine eigene eindeutige Adresse. Diese
hängt von der verwendeten Netztechnologie ab und ist bei Ethernet beispielsweise 6 Bytes lang. Für das Internet abstrahiert man von den Hardwareadressen
und benutzt ein eigenes Adressschema, die sogenannten IP-Adressen. Heute
(Version 4; 2014)
IP-Adressen
24
Kapitel 1
Sicherheit in der Informationstechnik
werden zwei Versionen von IP-Adressen verwendet, (1) IPv4-Adressen und
(2) IPv6-Adressen.
Eine IPv4-Adresse ist eine eindeutige 4 Byte lange Binärzahl. Sie besteht aus
zwei Teilen. Das Präfix identifiziert das Netz, an das der Computer angeschlossen
ist. Das Suffix identifiziert den Computer innerhalb des Netzes. Da lokale Netze
aus unterschiedlich vielen Computern bestehen können, ist die Länge des
Suffixes nicht fest vorgegeben. IPv4-Adressen notiert man, indem jedes Byte als
Dezimalzahl geschrieben wird. Zwischen die Zahlen wird ein Punkt geschrieben.
Es gibt somit maximal 232 viele IPv4-Adressen, das sind ca. vier Milliarden.
Da heute aber nicht nur Computer, sondern auch Smartphones, Fernseher,
Tablet-Computer und viele weitere Geräte an das Internet angeschlossen werden
sollen, reichen die IPv4-Adressen nicht mehr aus.
Eine IPv6-Adresse ist 128 Bit lang, also 16 Bytes. Auch sie besteht aus zwei
Teilen, einer Netzadresse (auch Präfix genannt) und einer Adresse innerhalb
des Netzes (genannt Interface Identifier). Damit sind genügend Netze und
genügend Geräte adressierbar. Man schreibt IPv6-Adressen als 32 hexadezimale
Zahlen, gruppiert in acht durch Doppelpunkt getrennte Zifferngruppen. Eine
IPv6-Beispieladresse sieht also so aus:
fe80:0000:0000:0000:3e07:54ff:fe4e:0e37
Privacy Extensions
Während der Präfix der IPv6-Adresse i. d. R. vom Internet Service Provider
vergeben wird, können Geräte in einem lokalen Netz den Interface Identifier
auch automatisch selbst erzeugen. Dabei geht die Hardware-Adresse des Geräts
in die IPv6-Adresse ein.
Das hat zur Folge, dass ein mobiles Gerät möglicherweise weltweit identifiziert werden kann. Auch wenn sich das Gerät in verschiedenen Netzen befindet
und somit der Präfix der IPv6-Adresse variiert, kann der Interface-Identifier-Teil
der IPv6-Adresse gleich bleiben. In der Spezifikation von IPv6 hat man daher
gleich die sogenannten Privacy Extensions spezifiziert. Damit unterscheidet
sich dann der Interface-Identifier-Teil der IPv6-Adresse derart, dass man ein
Gerät nicht anhand der IPv6-Adresse wiedererkennen kann.
Die IP-Adresse eines Computers wird bei der Konfiguration eingegeben und
lokal gespeichert.7 Zur ARP-Schicht gehört eine Tabelle der folgenden Form:
IPv4-Adresse
10.71.144.1
10.71.144.2
10.71.144.3
...
Hardware-Adresse
08-00-28-00-38-A9
08-00-39-00-2F-C3
...
Der Inhalt dieser Tabelle wird jedoch nicht vom Administrator gepflegt, sondern
sie füllt sich automatisch. Möchte der Computer ein Paket an eine IP-Adresse
schicken, deren Hardware-Adresse nicht in der Tabelle steht, so wird das
Paket zunächst zurückgestellt. Der Computer schickt eine Anfrage an alle
angeschlossenen Computer (engl. broadcast) und fragt nach der HardwareAdresse zu dieser IP-Adresse. Einer der angeschlossenen Computer erkennt nun
seine IP-Adresse und antwortet mit seiner Hardware-Adresse. Anschließend
7
Um diese aufwendige Arbeit zu sparen, benutzen viele Administratoren eine Technik
mit der IP-Adressen automatisch an Rechner vergeben werden. Sie heißt Dynamic-HostConfiguration-Protocol (DHCP). Es gibt DHCP für IPv4 und für IPv6.
(Version 4; 2014)
1.3
25
Netze
kann das IP-Paket mit der richtigen Hardware-Adresse versehen in ein Netzpaket
verwandelt und abgeschickt werden.
IPv4-Adressen sind für Benutzer nicht einfach zu merken, IPv6-Adressen
noch sehr viel schwieriger. Daher benutzt man lieber Namen. Um Namen für Computer vergeben zu können, gibt es das Domain-NameSystem (DNS). Hierin werden symbolische Namen für Computer und Domain-Namederen zugehörige IP-Adressen verwaltet. Beispiele für DNS-Namen sind: System
gremlin.fernuni-hagen.de oder www.deutsche-bank.de. DNS-Namen sind (DNS)
hierarchisch aufgebaut. Ausgehend von einer leeren Wurzel (siehe Abbildung 1.15) setzt sich ein Name aus den Knoten eines Pfads durch den Baum
zusammen. Dieser Baum gibt nicht die Netzstruktur wieder, sondern kann vom
de
fernuni−hagen
gremlin bonsai
mil
edu
deutsche−bank
mail ...
www ...
mit
rtfm
...
...
cmu
...
Abbildung 1.15: Beispiel für einen DNS-Namensraum
Verantwortlichen für einen Knoten beliebig unterhalb des Knotens gestaltet
werden.
Früher wurde diese Zuordnung lokal auf jedem Computer gespeichert. Eine
zentrale Stelle registrierte alle Veränderungen und verteilte die neue Zuordnungstabelle. Bei der derzeitigen Anzahl von Computern im Internet und der hohen
Änderungsgeschwindigkeit ist dieser Mechanismus nicht mehr praktikabel.
Heute wird die Zuordnung von IP-Adresse zu Computername von einem
DNS-Server erledigt. Dieser arbeitet in einem Verbund mit anderen DNS- DNS-Server
Servern zusammen. Falls zu jedem inneren Knoten des Baums aus Abbildung 1.15 ein DNS-Server gehört, so muss dieser nur seine Kinder und seinen
Vorgänger kennen. Wenn dann vom Computer bonsai.fernuni-hagen.de auf
www.deutsche-bank.de zugegriffen werden soll, so entsteht eventuell folgende
Abfragekette: bonsai fragt den DNS-Server von fernuni-hagen, der fragt
den DNS-Server von de, der fragt den DNS-Server von deutsche-bank und
der kennt die Adresse von www. Die IP-Adresse wird dann zurückgeschickt.
Damit das Netz nicht ständig von solchen Anfragen belastet wird, merken
sich die DNS-Server angefragte Adressen. Wenn also auch der Computer
gremlin.fernuni-hagen.de die Adresse von www.deutsche-bank.de wissen
will, so kann der DNS-Server der FernUniversität diese Anfrage aus seinem
Zwischenspeicher (engl. cache) beantworten.
Dieses Schema birgt leider auch gewisse Risiken. DNS-Nachrichten können einfach gefälscht werden. Außerdem kann man in einer DNS-Antwort
neben der IP-Adresse des angefragten DNS-Namens auch weitere Informationen mitschicken. Der Empfänger dieser gefälschten Nachrichten kann diese Fälschungen nicht erkennen. Wenn Sie beispielsweise mit dem Computer
gremlin.fernuni-hagen.de kommunizieren wollen, kann Ihr DNS-Server even(Version 4; 2014)
26
Kapitel 1
DNS spoofing
DNS Security
Extensions
(DNSSEC)
ARP spoofing
port
Sicherheit in der Informationstechnik
tuell eine falsche IP-Adresse zurückgeben. Sie würden dann Daten an einen
anderen Computer schicken, der nur vorgibt gremlin.fernuni-hagen.de zu
sein. Man nennt das auch DNS spoofing.
Mit der Definition von DNS Security Extensions (DNSSEC) hat man DNS so
erweitert, dass die Authentizität und Integrität von DNS-Nachrichten sichergestellt werden kann. Dazu werden digitale Signaturen (siehe auch Abschnitt 2.6)
benutzt. DNSSEC ist in den RFCs 4033, 4034 und 4035 definiert.
Aber auch IP-Adressen sind kein sicherer Authentifizierungsmechanismus.
Wie oben schon erwähnt, wird die Tabelle zum ARP durch eine BroadcastAnfrage gefüllt. So kann auch ein anderer Computer in Ihrem lokalen Netz
vorgeben, Ihre IP-Adresse zu haben. An Sie geschickte Daten landen dann auf
einer anderen Maschine. Beachten Sie außerdem, dass der Administrator oder
auch der Benutzer die IP-Adresse seines Computers selbst konfigurieren kann.
Für die verschiedenen Dienste bzw. Anwendungsprogramme ist es nicht nur
erforderlich zu wissen, mit welchem Computer man kommunizieren möchte,
sondern man muss auch mitschicken können, welchen Dienst man benutzen
möchte. Dazu sind in TCP/IP die sogenannten ports vorgesehen. Ein Port ist
eine Nummer. Empfängt ein Computer eine Nachricht, so kann die TCP/IPSchicht bereits erkennen, welches Programm diese Nachricht erhalten muss. Der
Anwendungsprogrammierer muss sich also nicht mit Datenpaketen befassen,
die gar nicht für diese Anwendung gedacht sind. Die Portnummer wird an den
Rechnernamen angehängt und durch einen Doppelpunkt vom Namen getrennt.
Eine Rechneradresse inklusive Portnummer sieht dann beispielsweise so aus:
gremlin.fernuni-hagen.de:80
1.3.4
Die Internetdienste
In diesem Abschnitt werden einige typische Hilfsprogramme und Internetdienste
vorgestellt. Es wird insbesondere auf die sicherheitsrelevanten Aspekte der
Dienste eingegangen.
Nslookup: Mit dem Programm nslookup können sie einen DNS-Server abfragen. Sie können zu einem Rechnernamen die zugehörige IP-Adresse erfahren
oder sie können zu einer IP-Adresse die zugehörigen Rechnernamen abfragen.
Die Abbildung von Rechnernamen auf IP-Adressen ist nicht unbedingt bijektiv.
Häufig sind mehrere Namen derselben IP-Adresse zugeordnet. Ein Beispiel für
nslookup:
>nslookup -silent www.fernuni-hagen.de
Server: 141.71.30.1
Address: 141.71.30.1#53
Non-authoritative answer:
www.fernuni-hagen.de canonical name = cl-www.fernuni-hagen.de.
Name:
cl-www.fernuni-hagen.de
Address: 132.176.114.181
In diesem Beispiel kommt die Antwort vom DNS-Server mit der Adresse
141.71.30.1. Der Webserver der FernUniversität hat zwei Namen (cl-www und
(Version 4; 2014)
1.3
27
Netze
www). Der Vorteil ist, dass man den Webserver bei Bedarf auf einer anderen Maschine installieren kann und dann nur den DNS-Eintrag ändern muss. Ihre lokal
gespeicherten Verweise zeigen dann nach wie vor auf den richtigen Computer.
Unter UNIX ersetzt das Programm dig zukünftig nslookup. Die Option -silent in obigem Kommando unterdrückt die Erinnerungsmeldung von
nslookup, dass zukünftig dig benutzt werden soll. Neben den Informationen
über die IP-Adresse zu einem Namen gibt dig auch Informationen über den
DNS-Server aus. Beispielsweise kann der DNS-Server eine IP-Adresse von einem
anderen DNS-Server übermittelt bekommen haben oder er kann sie aus seinem
lokalen Cache gelesen haben. In diesem Fall (Cache) könnte die Adresse evtl.
nicht mehr gültig sein, da sie geändert wurde und sich diese Tatsache noch
nicht bis zum Cache des DNS-Servers verbreitet hat.
Ping: Nachdem sie nun die IP-Adresse bzw. den Namen eines Computers
kennen, können sie mit dem Programm ping testen, ob der Computer eingeschaltet ist und IP-Pakete empfangen und zurückschicken kann. Sie können
den Computer entweder mit seiner IP-Adresse oder seinem DNS-Namen identifizieren.
>ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64
time=0.207
time=0.043
time=0.041
time=0.098
time=0.090
ms
ms
ms
ms
ms
--- localhost ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.041/0.095/0.207/0.061 ms
In diesem Beispiel wird der lokale Rechner abgefragt. Beachten Sie, dass der
Administrator eines Rechners den Rechner auch so konfigurieren kann, dass
der Rechner niemals auf Pings antwortet.
Finger: Mit dem Programm finger können Sie herausfinden, wer an einem
entfernten Computer angemeldet ist. Weiterhin können sie damit zusätzliche Finger-Port: 79
Informationen zu einem Benutzer erlangen. Da sich diese Informationen zur
Vorbereitung von Angriffen benutzen lassen, wird der finger-Dienst i. d. R.
deaktiviert.
Traceroute: Mit dem Programm traceroute können Sie den Weg verfolgen,
den IP-Pakete von Ihrem lokalen Rechner zu einem entfernten Rechner (engl.
remote host) nehmen. Es ist in erster Linie für Administratoren gedacht. Aber
auch „normale“ Benutzer können es starten und dann etwas über die Struktur
des Internets erfahren. Beachten Sie jedoch, dass sich diese Struktur ständig
ändern kann und die Pakete beim nächsten Aufruf vielleicht einen ganz anderen
Weg nehmen könnten. Das folgende Beispiel zeigt den Weg, den IP-Pakete
aus der Abteilung Informatik der Hochschule Hannover zum Studentenrechner
bonsai der FernUniversität in Hagen zurücklegen.
(Version 4; 2014)
28
Kapitel 1
Sicherheit in der Informationstechnik
> traceroute bonsai.fernuni-hagen.de
traceroute to bonsai.fernuni-hagen.de (132.176.114.21), 30 hops max, 40 byte packets
1 inner-gw-i.inform.fh-hannover.de (141.71.30.62) 0.288 ms
0.198 ms
0.128 ms
2 outer-gw-i.inform.fh-hannover.de (141.71.31.30) 0.357 ms
0.366 ms
0.414 ms
3 rzswitch10.rz.fh-hannover.de (141.71.1.240) 1.019 ms
0.754 ms
0.805 ms
4 igwserv.rz.fh-hannover.de (141.71.7.2) 0.779 ms
0.628 ms
0.671 ms
5 141.71.8.2 1.261 ms
1.093 ms
1.222 ms
6 clustergate-907-rf.rrzn.uni-hannover.de (130.75.9.9) 2.752 ms
2.571 ms
2.703 ms
7 gwingate-cgc.rrzn.uni-hannover.de (130.75.9.245) 3.675 ms
3.404 ms
3.629 ms
8 ar-hannover1.g-win.dfn.de (188.1.46.1) 4.031 ms
3.962 ms
3.914 ms
9 cr-hannover1-ge5-1.g-win.dfn.de (188.1.88.1) 4.452 ms
4.201 ms
4.061 ms
10 cr-essen1-po0-0.g-win.dfn.de (188.1.18.49) 9.775 ms
9.198 ms
9.005 ms
11 ar-essen1-ge0-0-0.g-win.dfn.de (188.1.86.2) 9.659 ms
8.775 ms
9.736 ms
12 C65-GWIN.fernuni-hagen.de (132.176.100.1) 11.467 ms
11.357 ms
11.261 ms
13 bonsai.fernuni-hagen.de (132.176.114.21) 11.465 ms
11.339 ms
11.520 ms
Man erkennt an den ersten beiden Zeilen (inner gateway und outer gateway),
dass die Abteilung Informatik der Hochschule Hannover eine Firewall mit DMZ
betreibt. Das Thema Firewall wird in Kurseinheit 4, Abschnitt 4.3 besprochen.
Einige Netzbetreiber konfigurieren ihre Router so, dass man auch mit traceroute keine Informationen darüber erhält, welchen Weg die Pakete nehmen.
Alle an das Internet angeschlossene Firmennetze leiten die für traceroute erforderlichen Pakete nicht ins Internet. Man erhält somit keine Informationen über
die interne Netzstruktur einer Firma.
Telnet-Port: 23
ftp-Port: 21
Telnet: Das Programm telnet ist ein Terminal-Programm, mit dem Sie sich
mit einem beliebigen anderen Computer im Internet verbinden können. Dabei
verhält sich Telnet so, als säßen Sie an einem Terminal, das direkt an den
anderen Computer angeschlossen ist. Die Benutzerkennung und das Passwort
werden über das Internet übertragen. Auch während der Sitzung werden die
Benutzereingaben und die Antworten des Computers unverschlüsselt übertragen.
Je nachdem welchen Weg die Pakete nehmen, können alle Computer auf diesem
Weg die Daten mitschreiben. Statt telnet wird heute überwiegend SSH benutzt.
Es wird in Abschnitt 3.4.1 vorgestellt.
Man kann Telnet aber einsetzen um Netzprotokolle zu testen. Dazu sagt
man Telnet, mit welchem Port man verbunden werden will, indem man hinter dem Rechnernamen die Portnummer eingibt. Das Kommando telnet
www.fernuni-hagen.de 80 verbindet Sie direkt mit dem Webserver. Sie können dann die unten gezeigten HTTP-Nachrichten eintippen und die Antworten
des Servers als Text angezeigt bekommen. Dasselbe macht Ihr Webbrowser im
Prinzip auch, aus einem Klick wird eine Anfragenachricht und die Antwortnachricht wird im Fenster schön formatiert angezeigt.
Dateitransfer: Mit dem Programm ftp können Sie Dateien zwischen einem
lokalen Computer und einem entfernten Computer hin und her kopieren. Das
Programm erwartet beim Aufbau der Verbindung die Eingabe einer Benutzerkennung und eines Passworts. Diese werden, wie bei telnet, unverschlüsselt
verschickt. Damit Sie nicht auf jedem ftp-Server eine Benutzerkennung einrichten müssen, gibt es die anonymen Kennungen ftp und anonymous. Diese
brauchen kein Passwort (man bittet Sie i. d. R., Ihre eigene E-Mail-Adresse als
Passwort anzugeben) und erlauben eingeschränkten Zugriff auf den Server.
Übungsaufgabe 1.2 Welche Sicherheitsrisiken können bei ftp auftreten?
(Version 4; 2014)
1.3
Netze
World Wide Web: Waren die bisher vorgestellten Anwendungen und Dienste textbasiert und terminalorientiert, so ist das World Wide Web (WWW) WWW
multimediabasiert und an grafischen Benutzeroberflächen orientiert. Zusätzlich bietet das WWW Möglichkeiten des Information Retrieval. Als Benutzer
brauchen sie ein Client-Programm, das auch als Webbrowser bezeichnet wird,
um auf die Inhalte von Webservern zugreifen zu können. Die Kommunikation
zwischen Webclient und Webserver ist durch das Hypertext-Transfer-Protocol
(HTTP) definiert. Darin ist festgelegt, welche Form die Anfragen eines Webcli- HTTP-Port: 80
ents haben und wie ein Webserver darauf antwortet. Dokumente auf Webservern
sind in der Hypertext-Markup-Language (HTML) geschrieben. HTML ist eine HTML
SGML-Anwendung, d. h. es gibt eine Document-Type-Definition (DTD) vom
World-Wide-Web-Consortium (W3C) in der die zulässigen Dokumentbestandteile und ihre Organisation festgelegt sind. Für die Zukunft ist es geplant, nicht nur
HTML-Dokumente, sondern allgemeine Dokumente in der eXtensible-MarkupLanguage (XML) zu erlauben. XML ist eine Weiterentwicklung von SGML, bei XML
der man aus den Problemen mit SGML gelernt und die Anforderungen des
WWW berücksichtigt hat. Weitere Informationen zu den Dateiformaten finden
Sie auch im Kurs (01873) Daten- und Dokumentformate.
Webserver und die Dokumente auf ihnen werden durch Uniform-ResourceLocators (URL) adressiert. Eine URL besteht i. d. R. aus drei Teilen:
URL
1. dem Dienst, der benutzt werden soll,
2. dem Webserver, der kontaktiert werden soll und
3. dem Dokument, das angesprochen werden soll.
Die folgende Tabelle zeigt einige Beispiele von URLs.
Dienst Webserver
Dokument
http ://www.fernuni-hagen.de /FeU/Fachbereiche/fachbereiche_f.html
http ://www.deutsche-bank.de
ftp
://ftp.fernuni-hagen.de /
Die Kommunikation zwischen Client und Server basiert auf dem Frage-AntwortPrinzip (engl. request response). Anfragen bestehen aus einem Anfragekopf
und einem Anfragerumpf. Diese sind durch eine Leerzeile getrennt. Die erste
Zeile eines Anfragekopfs enthält die Methode, das Objekt, auf das diese Methode
angewendet werden soll, und die Versionsnummer des HTTP-Protokolls. Die
weiteren Kopfzeilen enthalten Informationen wie beispielsweise das Datum, die
Codierung der Zeichen usw. Ein Beispiel sieht wie folgt aus:
GET /index.html HTTP/1.1
Host: 10.71.144.4
In diesem Beispiel ist der Anfragerumpf leer. Hinter der Zeile Host: kommt
also noch eine Leerzeile.
Die Antwort des Servers besteht aus einem Antwortkopf und einem Antwortrumpf, die wiederum durch eine Leerzeile getrennt sind. Die erste Zeile
der Antwort ist eine Statuszeile. Die weiteren Kopfzeilen sind teilweise wie im
Anfragekopf. Der Antwortrumpf enthält meistens die angeforderte HTML-Seite.
Ein Beispiel:
(Version 4; 2014)
29
30
Kapitel 1
Sicherheit in der Informationstechnik
HTTP/1.1 200 OK
Date: Fri, 06 Aug 1999 14:57:16 GMT
Server: mod_perl/1.18 Apache/1.3.4 (Unix) (SuSE/Linux) ...
Last-Modified: Fri, 06 Aug 1999 14:27:12 GMT
Accept-Ranges: bytes
Content-Length: 4464
Content-Type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2//EN" "strict.dtd">
<HTML>
<HEAD>
...
</HEAD>
<BODY>
...
</BODY>
</HTML>
Die gesamte Kommunikation findet unverschlüsselt statt. Weiterhin kann weder
der Client sicher sein, dass er tatsächlich mit dem Server kommuniziert, mit
dem er kommunizieren möchte, noch kann der Server sicher sein, dass der Client
derjenige ist, der er vorgibt zu sein (Authentizität).
SMTP port: 25
Versand
Electronic Mail: Die Möglichkeit, schnell und einfach elektronische Nachrichten (engl. email) auszutauschen, hat sicherlich stark zur Popularität des
Internets beigetragen. Die Art und Weise, wie eine E-Mail verschickt wird, ist
im Simple-Mail-Transfer-Protocol (SMTP) festgehalten. Der Benutzer benötigt
ein Client-Programm, in dem er seine E-Mail schreibt, verwaltet, empfängt und
verschickt. Das Client-Programm kommuniziert dazu mit einem Mailserver, der
E-Mails entgegen nimmt und entweder direkt zustellt oder an einen weiteren
Mailserver weiterleitet. Die Übertragung einer E-Mail vom Mailclient zum
Mailserver, bzw. von Mailserver zu Mailserver läuft wie folgt ab:
1. Der Mailclient öffnet eine Verbindung zum Mailserver. Konkret bedeutet
dies, dass an den Port 25 des Mailservers eine Nachricht geschickt wird.
S: HELO gremlin.fernuni-hagen.de
Das vorangestellte „S: “ kennzeichnet Nachrichten vom Mailclient an den
Server. Antworten des Servers werden durch ein „R: “ gekennzeichnet.
Diese Zeichen werden nicht übertragen, sondern sind zum besseren Verständnis der Beispiele von mir eingefügt worden. In der oben genannten
Nachricht identifiziert sich der E-Mail verschickende Computer gegenüber
dem Mailserver.
2. Als nächstes führt der Mailclient die eigentliche Übertragungstransaktion
aus. Diese besteht aus drei Schritten:
(a) Zunächst wird ein einleitendes Kommando geschickt.
S: MAIL FROM: <[email protected]>
(Version 4; 2014)
1.3
31
Netze
Der Mailserver beginnt eine neue Transaktion und initialisiert seinen
Zustand und seine internen Puffer.
(b) Anschließend schickt der Mailclient ein oder mehrere „Empfänger“Kommandos:
S:
R:
S:
R:
S:
R:
RCPT TO: <[email protected]>
250 OK
RCPT TO: <[email protected]>
550 no such user here
RCPT TO: <[email protected]>
250 OK
Der Mailserver überprüft und speichert die Empfängeradressen. Das
Beispiel zeigt, dass ein Mailserver bestimmte Empfängeradressen,
wie asdfg, u. U. sofort verwerfen kann. Der Server speichert diese
Adressen, um die anschließend vom Client übergebene Nachricht an
diese Adressen zu schicken.
(c) Zuletzt wird die eigentliche Nachricht übertragen. Diese Übertragung wird durch das DATA-Kommando eingeleitet. Das Ende der
Nachricht wird durch eine Zeile gekennzeichnet, die nur einen Punkt
enthält.
S:
R:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
S:
R:
DATA
354 start mail input; end with <CRLF>.<CRLF>
From [email protected] Fri ...
Return-Path: <[email protected]>
Date: Fri, 11 Jun 1999 15:05:26 +0200 (MEST)
From: Stefan Wohlfeil <[email protected]>
To: [email protected]
Cc: [email protected]
Subject: Mail Uebertragung mit SMTP
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Hallo Herr Klein,
...
MfG
Stefan Wohlfeil
.
250 message accepted for delivery
3. Der zweite Schritt kann nun mehrmals wiederholt werden. Hat der Mailclient alle E-Mails abgeliefert, so beendet er die Verbindung zum Mailserver.
S: QUIT
R: mail.fernuni-hagen.de closing connection
Die oben dargestellten Beispiele zeigen das Prinzip der Mailübermittlung, nicht
unbedingt den Wortlaut der Antworten eines Mailservers. Vom Sicherheitsstandpunkt gibt es einige Anmerkungen.
(Version 4; 2014)
Sicherheit
32
Kapitel 1
Sicherheit in der Informationstechnik
Zunächst wird bei E-Mails im Internet zwischen einem Umschlag (engl.
envelope) und der eigentlichen Nachricht unterschieden. Der Umschlag wird
durch die Schritte 2.(a) und 2.(b) erstellt. Für den Mailserver ist nur der
Umschlag für die Zustellung der E-Mail von Bedeutung.
Die Nachricht selbst besteht auch aus zwei Teilen. Alle Zeilen vor der
ersten Leerzeile sind der Nachrichtenkopf (engl. message header), die Zeilen
dahinter der Nachrichtenrumpf (engl. message body). Im Nachrichtenkopf
werden Absender- und Empfängerangaben wiederholt. Diese sollten mit den
Angaben auf dem Umschlag übereinstimmen, müssen es aber nicht. Unverlangt
zugeschickte Werbe-E-Mails (engl. spam) haben im Nachrichtenkopf häufig
gefälschte Einträge.
Weiterhin findet die komplette Kommunikation zwischen Mailclient und
Mailserver unverschlüsselt statt. Jedermann auf dem Weg der Nachricht kann
mitlesen und dadurch erfahren, mit wem und worüber Sie kommunizieren.
Bei der Weiterleitung einer E-Mail trägt jeder der beteiligten Mailserver in
den Nachrichtenkopf eine Zeile Received: ein. Darin wird festgehalten, dass
und wann diese E-Mail den Server erreicht hat. Damit kann bei Zustellungsproblemen der Weg einer E-Mail nachvollzogen werden. In den Nachrichtenkopf
kann aber auch der Absender Informationen eintragen, beispielsweise auch eine
Zeile Received. Damit kann der Weg der E-Mail verschleiert werden.
Empfang
POP3
IMAP4
Das gesamte E-Mail-System ist auch darauf eingerichtet, dass ein Empfänger
nicht permanent online ist. In diesem Fall wird eine E-Mail auf dem letzten am
Weg liegenden Mailserver gespeichert. Sie können mit Ihrem Mailclient dann
direkt diesen Server kontaktieren, um angekommene E-Mails auf den eigenen
Computer zu laden und neue E-Mails vom Computer an den Mailserver zu
übertragen.
Diese Kommunikation ist im Post-Office-Protocol Version 3 (POP3 Protokoll) bzw. auch im neuen IMAP4 -Protokoll geregelt. Die Idee dieser
Protokolle ist, dass der Client eine Verbindung zum Mailserver aufbaut. Im
POP3-Protokoll schickt der Client dann einen Benutzernamen und ein Passwort an den Mailserver. Beides wird im Klartext über das Netz übertragen.
Anschließend kann der Client die angekommenen E-Mails auf seinen Computer
übertragen, auf dem Server dann löschen und neue E-Mails vom Computer
zum Server schicken.
Da E-Mails sehr häufig mit POP3 abgeholt werden, unterstützen moderne E-Mail-Server auch durch SSL verschlüsselte Verbindungen. SSL wird in
Abschnitt 3.3.1 genauer behandelt.
1.4
Konkrete Gefahren
In diesem Abschnitt lernen Sie einige der konkreten Bedrohungen kennen,
denen Ihr Computer heutzutage ausgesetzt ist. Dazu gehören die auch in den
Nachrichten immer öfter vorkommenden Viren, die sogenannten Trojanischen
Pferde und der Missbrauch von Passwörtern. Sie werden in den folgenden
Unterabschnitten vorgestellt.
Insgesamt ist dies allerdings nur ein erster Einblick. Vertiefende Informationen zu weiteren Angriffsmöglichkeiten auf Computer werden in Kurs (01867)
Sicherheit im Internet 2 behandelt.
(Version 4; 2014)
1.4
33
Konkrete Gefahren
1.4.1
Viren
Prinzip: Viren sind Computerprogramme, die sich selbst kopieren (vervielfältigen) können und sich auf diesem Weg vermehren. Neben dieser Grundfunktion
enthalten Viren auch andere Funktionen. Diese anderen Funktionen können
unterschiedlichen Zwecken dienen:
• Sie können Schäden aller Art auf Ihrem Computer anrichten, indem sie
Dateien löschen oder deren Inhalt verändern.
• Viren können versuchen, sich selbst zu tarnen und zu verstecken.
• Die zusätzlichen Funktionen können aber auch „nur“ den Benutzer durch
seltsame Ausgaben (Bildschirmmeldungen oder akustische Signale) verunsichern und erschrecken.
Schäden: Ein Virus ist für denjenigen, der ihn auf dem Computer hat,
immer eine unangenehme Sache. Man kann eigentlich nie genau wissen, was
ein Virus letztlich machen wird. Um das herauszufinden, müssen menschliche
Experten das Virus genau analysieren. Aus der Theoretischen Informatik ist
bekannt, dass Computerprogramme im Allgemeinen nicht einmal herausfinden
können, ob ein gegebenes Programm bei einer gegebenen Eingabe terminiert
(Unentscheidbarkeit des Halte-Problems). Es besteht also wenig Hoffnung, dass
Virenscanner jemals genau herausfinden können, welchen Schaden ein Virus
möglicherweise anrichten kann. Ein Benutzer hat also keine andere Wahl, als
das Virus aus seinem System zu entfernen. Dies kostet auf jeden Fall Zeit und
Mühe.
Von Viren verursachte Schäden können unterschiedlich groß sein. Im einfachsten Fall löst das Virus ein akustisches Signal bei jedem Tastendruck aus,
falls gerade der 18. eines Monats ist. Ein größerer Schaden entsteht, wenn das
Virus versucht Programmdateien zu löschen, die Sie ausführen möchten. Da
diese Schadensfunktion für den Benutzer offensichtlich ist, kann man das Virus
entfernen und die gelöschten Programme wieder installieren. Natürlich sind
hierzu die originalen Datenträger oder die hoffentlich regelmäßig angelegten
Sicherungskopien (engl. backup) erforderlich.
Zu den schlimmsten Schäden gehört es, wenn ein Virus unbemerkt Daten
von Ihrem Computer liest und diese dann per E-Mail oder verpackt in HTTPRequests verschickt. Sollte das Virus Ihre Benutzerkennung (engl. account)
oder Ihr Passwort (engl. password) ausspioniert haben, kann sich ein Dritter
auf Ihrem Computer anmelden und dann beliebigen Schaden anrichten.
Schadensumfang
Virentypen: Zu den ersten Viren überhaupt gehörten die sogenannten
Bootsektor-Viren (BSV). Wenn ein Computer eingeschaltet wird, dann Bootsektor-Viren
muss als erstes das Betriebssystem geladen werden. Damit man nun auf einem (BSV)
Computer mehrere Betriebssysteme benutzen und ein Betriebssystem einfach
aktualisieren (engl. to update) kann, ist das Betriebssystem i. d. R. nicht im
ROM (Read Only Memory) vorhanden. Stattdessen enthält das ROM ein kleines
Programm (Urlader), das die Aufgabe hat das Betriebssystem zu laden. Der
Urlader sucht auf fest vorgegebenen Speichermedien nach dem eigentlichen Ladeprogramm (engl. loader). Welche Speichermedien das genau sind (Diskette,
DVD, USB-Gerät, Festplatte) kann man im sogenannten Basic Input Output
(Version 4; 2014)
34
Unified Extensible
Firmware Interface
(UEFI)
Master-Boot-Record
(MBR)
Kapitel 1
Sicherheit in der Informationstechnik
System (BIOS) des Computers einstellen. Eine moderne Variante des BIOS
heißt Unified Extensible Firmware Interface (UEFI).
Auf allen o. g. Speichermedien gibt es eine fest vorgegebene Stelle, an der
ein Betriebssystem-Ladeprogramm stehen kann. Auf einer Festplatte nennt
man diese Stelle Master-Boot-Record (MBR). Bei Disketten (engl. floppy
disk) ist das der erste Sektor auf der Diskette, bei Festplatten (engl. hard
disk) ist es Sektor 1 auf Zylinder 0, Kopf 0.
Der Master-Boot-Record einer Festplatte enthält weiterhin Informationen
über die Aufteilung der Festplatte (engl. partition table). Das Ladeprogramm
aus dem MBR startet nun das Betriebssystem, das auf einer der Partitionen
gespeichert ist (siehe Abbildung 1.16). Falls mehrere Betriebssysteme auf der
Festplatte installiert sind, bietet das Ladeprogramm eine Auswahl an und
der Benutzer kann entscheiden, welches Betriebssystem gestartet werden soll.
Zu Linux gehört das Ladeprogramm GRUB (GRand Unified Bootloader), es
erlaubt das Laden unterschiedlicher Betriebssysteme.
MBR
Lader
MBR
Partition 1
Urlader
Partition 2
ROM
Festplatte
Festplatte
Abbildung 1.16: Bootvorgang bei einem Computer
Abbildung 1.16 zeigt den prinzipiellen Ablauf beim Starten eines Computers.
In einem PC ist der Urlader so implementiert, dass er zunächst auf dem
Diskettenlaufwerk nach einem Lader im Bootsektor sucht, anschließend auf der
Festplatte und evtl. anschließend auch noch auf dem CD-ROM-Laufwerk. Im
BIOS des PC kann man diese Reihenfolge evtl. auch ändern.
Wie kann nun ein PC mit einem Bootsektor-Virus infiziert werden? Am
Anfang steht i. d. R. eine infizierte Diskette, eine infizierte CD/DVD oder
ein infizierter USB-Stick, die irgendwelche Daten enthalten. Sie legen die
Diskette/CD/DVD ein (schließen den USB-Stick an), kopieren die Daten,
arbeiten mit dem Computer, vergessen die Diskette/CD/DVD bzw. den USBStick und schalten am Ende den Computer wieder aus. Bis jetzt ist noch nichts
passiert. Beim nächsten Einschalten startet der Urlader nicht den Lader aus
dem MBR der Festplatte, sondern den infizierten Lader aus dem Bootsektor der
Diskette/CD/DVD bzw. dem USB-Stick. Das Virus führt dann die folgenden
Schritte aus:
1. Es lädt sich in den Hauptspeicher und trägt sich in den Interrupt 13h
(disk read/write) ein.
2. Es kopiert den Original-MBR der Festplatte an einen anderen freien Platz
auf der Platte.
3. Es kopiert sich selbst in den MBR der Festplatte.
4. Es startet den Lader aus dem „Original“-MBR der Festplatte.
(Version 4; 2014)
1.4
35
Konkrete Gefahren
Für den Benutzer sieht es so aus, als starte der Computer wie immer. Schließt
man nun einen neuen USB-Stick an und versucht den Inhalt zu lesen oder zu
schreiben, so kommt das Virus ins Spiel. Zum Lesen oder Schreiben ruft das
Programm das Betriebssystem auf (siehe auch Kurs (01801) Betriebssysteme
und Rechnernetze) und das Betriebssystem löst den Interrupt aus, womit das
Virus aktiviert ist. Das Virus überprüft, ob der USB-Stick bereits infiziert
ist. Ist er es noch nicht, dann kopiert sich das Virus in den Bootsektor des
USB-Sticks. Auf diese Art verbreitet sich das Virus.
Da das Virus gestartet wird bevor das Betriebssystem geladen ist, können
die Schutzfunktionen des Betriebssystems nicht wirksam werden. Ein VirentestProgramm kann das Virus auch nachträglich nicht mehr erkennen. Dazu müsste
es den Master-Boot-Record der Festplatte lesen. Dieser Lesezugriff läuft aber
letztlich wieder über den Interrupt, in den sich das Virus „eingeklinkt“ hat.
Das Virus liefert bei einer Leseanfrage also einfach den kopierten „Original“MBR zurück. Viren, die sich auf diese oder eine andere Art tarnen, nennt man
auch Stealth-Virus. Bei der Übertragung auf einen anderen Rechner schützt Stealth-Virus
sich das Beagle-Virus beispielsweise dadurch, dass es sich nur verschlüsselt
überträgt. Virenscanner auf dem Übertragungsweg können die Nachricht dann
nicht entschlüsseln und das Virus erkennen. Erst der Empfänger entschlüsselt
die Nachricht und startet möglicherweise das Virus.
Ein PC wird also nur durch das Starten von einem infizierten Bootmedium mit einem Bootsektor-Virus infiziert. Um das Virus zu entdecken und zu
entfernen, brauchen Sie eine garantiert virenfreie Bootdiskette. Diese enthält
die entsprechenden Hilfsprogramme, die einen virenfreien MBR rekonstruieren
und auf die Festplatte schreiben können. Von Klaus Knopper gibt es eine
Linux-Distribution, genannt Knoppix, die man direkt von CD/DVD booten Knoppix
kann. Darauf basiert eine CD/DVD des Heise Zeitschriften Verlags, die Antivirenprogramme enthält. Bootet man dieses System und ist der Rechner ans
Internet angeschlossen, dann bestehen gute Chancen mit Hilfe der aktuellen
Virensignaturen die Schädlinge wieder zu entfernen.
Der sicherste Weg ein kompromittiertes System wieder in einen sauberen
Zustand zu versetzen ist allerdings die komplette Neuinstallation mit einem
„sauberen“ Installationsmedium. Nur mit aktuellen Sicherungskopien gelingt
die Wiederherstellung ohne Datenverlust.
Den zweiten Virustyp bilden die sogenannten Dateiviren. Ein Dateivirus
infiziert einzelne Dateien, vorzugsweise Programmdateien (also .exe- und .comDateien unter DOS). Startet ein Benutzer ein infiziertes Programm, so lädt
sich das Virus in den Hauptspeicher und versucht dort sesshaft (resident) zu
werden. Das heißt, dass auch nach der Beendigung des Wirtprogramms das
Virus weiterhin im Speicher bleibt und weiter läuft. Startet der Benutzer weitere
Programme, so versucht das Virus auch diese Programme zu infizieren. Dazu
verändert das Virus die Programmdatei, beispielsweise indem der Viruscode an
das Ende der Datei angehängt wird. An den Anfang der Programmdatei fügt
das Virus dann auch einen Aufruf des Viruscodes am Ende der Datei ein. Siehe
dazu auch Abbildung 1.17.
Dabei verändert sich die Dateigröße des Programms und man kann daran
die Infektion erkennen. Ein cleveres Virus versucht diese Veränderung zu
verbergen. Dazu kann es beispielsweise in der Programmdatei einen Block
zusammenhängender Nullen suchen und sich dort hinein kopieren. Beachten
Sie, dass Abbildung 1.17 nicht maßstabsgetreu ist. Der Viruscode ist deutlich
(Version 4; 2014)
Dateiviren
36
Kapitel 1
Sicherheit in der Informationstechnik
Programmdatei
eingefügter Aufruf
Programmdatei
Viruscode
Abbildung 1.17: Infektion einer Programmdatei
kleiner als der Programmcode. Eine passende Folge von Nullen zu finden, ist
also gar nicht so unwahrscheinlich. Beim Start des Programms wird dieses in
den Hauptspeicher geladen und der Viruscode gestartet. Neben den oben bereits
genannten Schritten überschreibt sich der Viruscode im geladenen Programm
wieder mit Nullen, damit das Programm wie üblich funktioniert. Ein Dateivirus
könnte nicht nur andere Programmdateien infizieren, sondern es könnte auch
versuchen, sich selbst in den Bootsektor zu kopieren.
Wenn ein Dateivirus gestartet wird, dann ist das Betriebssystem bereits
geladen und das Virus muss die Schutzmechanismen des Betriebssystems überwinden. Das Virus läuft mit den Berechtigungen des Benutzers, der das Virus
(unabsichtlich oder absichtlich) gestartet hat. Normale Benutzer dürfen i. d. R.
aber keine Änderungen am System, bzw. den Systemdateien vornehmen. Normale Benutzer haben nur das Ausführungsrecht (engl. execute permission)
an diesen Dateien, aber kein Schreibrecht.
Da aber auch normale Benutzer häufig Sicherheitsaktualisierungen (engl.
security updates) ihres Betriebssystems installieren müssen, können sie hierzu
Administratorrechte anfordern. Dazu müssen die Benutzer in einem speziellen
Dialog noch einmal ein Administrator-Passwort eingeben. Ein Virus kann auch
diesen Dialog anzeigen und den Benutzer dazu verleiten, das AdministratorPasswort einzugeben. Dazu kann das Virus z. B. anzeigen „Programm XY
möchte ein wichtiges Security Update installieren. Bitte Administrator-Passwort
eingeben“. Viele Benutzer machen das dann auch und schon hat das Virus
entsprechende Berechtigungen erlangt.
Vorhandene Dateiviren werden entfernt, indem man den Computer von einem garantiert virenfreien Medium startet und dann alle infizierten Programme
wieder neu installiert. Im Zweifelsfall müssen alle Programme neu installiert
werden.
Ein Dateivirus kann man durch den Start eines infizierten Programms auf
dem eigenen Computer bekommen. Das infizierte Programm kann über ein
USB-Gerät oder auch über das Netz (per E-Mail oder auch durch einfaches
Surfen im Internet) auf den eigenen Computer kommen. Computer, die als
Server für Programmdateien in einem Netz arbeiten, sind besonders gefährdet.
Makroviren
Den dritten Virentyp bilden die sogenannten Makroviren. Sie sind im Prinzip auch Dateiviren, denn sie befallen Dateien. Während „klassische“ Dateiviren
i. d. R. Programmdateien infizieren, stecken Makroviren in Dokumentdateien,
wie beispielsweise Textverarbeitungsdokumenten, Tabellenkalkulationsdokumenten oder Präsentationsdokumenten. Die zugehörigen Programme enthalten
(Version 4; 2014)
1.4
37
Konkrete Gefahren
Funktionen zum Erstellen von Makros. Makros sind kleine Programme, die dem
Anwender die Arbeit erleichtern sollen. Zuerst bestand die Funktion von Makros Definition: Makro
darin, die vom Benutzer gedrückten Tasten zu speichern und diese Folge später
wiederholt und automatisch abzuspielen. Moderne Anwendungsprogramme bieten spezielle Makrosprachen, die auf Programmiersprachen wie C oder BASIC
basieren. Die Office-Programme der Firma Microsoft bieten beispielsweise die
Sprache VBA (Visual Basic for Applications) zur Entwicklung von Makros an.
Diese Makrosprachen erlauben nicht nur das Aufzeichnen von Tastendrücken,
sondern auch komplexe Kontrollstrukturen (Sequenz, Auswahl, Wiederholung
und Prozeduraufrufe) und den Zugriff auf Dateien.
Makros werden zusammen mit dem Dokumentinhalt in einer Datei gespeichert. Öffnet ein Benutzer diese Datei, so werden der Inhalt und der Makrocode
geladen.
Inzwischen verwenden alle Office-Programme von Microsoft dieselbe Makrosprache. Makroviren können daher nicht nur in Textdokumenten, sondern
auch in Tabellenkalkulationsdokumenten oder auch Präsentationen stecken. Im
Gegensatz zu Bootsektor- oder „klassischen“ Dateiviren, die i. d. R. in Assembler
oder einer anderen Low-Level-Programmiersprache geschrieben werden, werden
Makroviren in einer einfacher zu lernenden höheren Programmiersprache geschrieben. Jedes Dokument, das Sie heute aus dem Internet laden, per E-Mail
zugeschickt bekommen oder von einer Diskette/CD-ROM kopieren, könnte
ein Makrovirus enthalten. Zum Schutz vor Makroviren bieten sich folgende
Möglichkeiten:
Schutz vor
Makroviren
1. Installation eines Virenscanners, der auch Makroviren erkennen und entfernen kann. Da immer wieder neue Makroviren auftauchen, reicht es nicht, Virenscanner
den Scanner einmal zu installieren. Man muss den Virenscanner auch einsetzen
regelmäßig aktualisieren. Weitere Hinweise hierzu folgen in Abschnitt 3.5.
2. Von Microsoft sind inzwischen auch Versionen ihrer Office-Programme
verfügbar, die ausschließlich Dokumente anzeigen können. Sie können die
Dokumente damit nicht bearbeiten. Weiterhin können diese Programme
auch keine Makros ausführen. Ein Makrovirus kann in diesen Programmen
also nicht aktiv werden.
3. Wenn das Dokument von Ihnen nicht weiter bearbeitet werden soll, dann
ist ein Dokumentformat, wie das Portable-Document-Format (PDF) von
Adobe, die bessere Wahl.
4. Seit etwa 2003 können Makros auch digital signiert sein (vergleiche Abschnitt 2.6.2). Durch Prüfen der Signatur kann der Benutzer verifizieren,
von wem das Makro stammt und dass es nicht verändert wurde. So kann
man Makros von vertrauenswürdigen Personen zulassen, während Makros
von anderen Autoren nicht ausgeführt werden. Konfigurieren Sie Ihre
Office-Installation entsprechend.
Makroviren sind recht einfach zu schreiben und haben vielfältige Ausbreitungsmöglichkeiten. Sie sind unabhängig vom Betriebssystem und brauchen nur
ihre zugehörige „Wirtsanwendung“. Vernünftigen Schutz vor Makroviren bieten
derzeit Virenscanner, die a) regelmäßig aktualisiert werden und b) alle Dateien
auf Viren überprüfen, sowie die sichere Konfiguration der Office-Programme,
so dass unbekannte Makros nicht ausgeführt werden.
(Version 4; 2014)
Reader-Programm
benutzen
38
Kapitel 1
1.4.2
Wirtsprogramme
Sicherheit in der Informationstechnik
Würmer
Während Viren sich mit Hilfe anderer Programme, sog. Wirtsprogramme,
verbreiten, verbreiten sich Würmer eigenständig. Sie müssen also vom Benutzer
mindestens einmal explizit gestartet werden. Dann führen sie ihre Schadensfunktion aus und verbreiten sich weiter. Die Schadensfunktion kann nun auch darin
bestehen, dass der Wurm dafür sorgt, dass er später automatisch immer wieder
gestartet wird. Unter Microsoft Windows kann er sich in den Autostart-Ordner
kopieren oder die Registry verändern.
Typische Verbreitungswege für Würmer sind E-Mails oder HTTP. Dazu
enthält der Wurm beispielsweise seinen eigenen SMTP- oder HTTP-Server.
Aber auch andere Verbreitungswege sind denkbar. In einem Microsoft WindowsNetz kann ein Wurm auch nach freigegebenen Laufwerken suchen und sich
dort unter einem Tarnnamen installieren. Die Tarnnamen sind so gewählt, dass
ein Benutzer dazu verleitet wird, einen Doppelklick auf die Datei auszuführen.
Obwohl eigentlich ein Programm, gibt sich der Wurm dann auch einmal den
Namen eines Bildes. Bei bestimmten Schwachstellen kann sich ein Wurm auch
ganz ohne Unterstützung des Benutzers verbreiten. Der Conficker-Wurm ist so
ein Beispiel, da er eine Schwachstelle im RPC-Dienst ausnutzte.
1.4.3
Trojanische Pferde
Ein Programm, das neben seiner eigentlichen Funktion auch weitere Funktionen ausführt, nennt man Trojanisches Pferd, falls die weiteren Funktionen
dem Benutzer nicht bekannt sind und er deren Ausführung auch nicht bemerkt. Normalerweise stellt diese weitere Funktion für den Benutzer eine
Gefahr dar. Ein Trojanisches Pferd kann in jedem Programm stecken, in einem
Textverarbeitungssystem, einem Editor, einem Bildschirmschoner oder kleinen
Hilfsprogrammen zur Datei- oder Netzwerkverwaltung. Aber auch im Betriebssystem oder der Systemsoftware können unbekannte und nicht dokumentierte
Funktionen stecken.
Im Internet werden sehr viele Programme von den unterschiedlichsten
Autoren für die unterschiedlichsten Zwecke angeboten. Seien Sie vorsichtig,
wenn sie unbekannte Programme aus dem Netz laden und bei sich installieren
wollen. Gerade wenn diese Programme nur in Binärform, also für Menschen
unleserlich, verteilt werden, können sie über die Funktionen des Programms nur
spekulieren. Anfang 2009 wurde beispielsweise über das BitTorrent-Netz eine
trojanisierte Version der Bürosoftware iWork2009 der Firma Apple verbreitet.
Das Installationsprogramm hat neben der Bürosoftware auch einen Trojaner
installiert.
Ein weiteres beliebtes Gebiet für Trojaner sind Multimedia-CODECs. Ein
CODEC ist eine Software, die Multimediadaten wie Sound oder Filme in ein
digitales Format wie MP3 für Musik oder MPEG für Filme COdiert oder
DECodiert. Neben den beiden genannten Formaten gibt es auch viele andere
Formate. Multimediasoftware ist daher modular programmiert, d. h. sie kann
einfach durch Installation zusätzlicher CODECs erweitert werden und dann auch
neue Formate abspielen. Auf einigen Internetseiten werden nun Multimediadaten
angeboten, für die der Benutzer einen zusätzlichen CODEC aus dem Netz laden
und installieren soll. Hier besteht die Gefahr, dass man neben einem CODEC
auch weitere unerwünschte Funktionen installiert.
Dieses modulare Konzept findet sich auch bei den Webbrowsern wieder.
(Version 4; 2014)
1.4
Konkrete Gefahren
Sie können durch sogenannte Plug-Ins in ihren Funktionen erweitern werden.
Ob ein Plug-In aber neben der offensichtlichen Funktion nicht auch die Benutzereingaben beim Internetbanking irgendwohin weiterleitet kann ein normaler
Benutzer kaum und selbst Experten nur schwierig herausfinden.
Da man einem Programm nicht per se ansehen kann, was es letztlich machen
wird8 , kann man nicht auf die automatische Entdeckung von trojanischen
Pferden hoffen. Man kann als Benutzer nur versuchen, Veränderungen im
System zu erkennen. Dazu erstellt man sich eine Datenbank, die zu allen
installierten Programmen Informationen wie
• das Datum der letzten Änderung,
• die Größe der Programmdatei und
• spezielle Prüfsummen (Hash-Codes) der Programmdatei
enthält. Diese Daten werden dann regelmäßig geprüft. Stellt man Veränderungen
fest9 , so müssen die veränderten Programme überprüft und gegebenenfalls neu
installiert werden.
Trojanische Pferde finden sich nicht nur in Programmdateien, sondern unter
Umständen auch in Dokumentdateien. Diese enthalten neben dem eigentlichen
Dokumentinhalt weitere Informationen, die man als Anwender dort nicht vermutet. Dateien von Microsoft Office beispielsweise sind in einem codierten
Format abgespeichert, das nur Microsoft selbst kennt. Neben dem jeweiligen
Dokumentinhalt enthalten sie auch Informationen wie die Programmversion,
mit der das Dokument erstellt wurde, den Pfadnamen, unter dem das Dokument auf der Festplatte gespeichert ist, Namen der Ersteller und Bearbeiter
usw. Als Benutzer kann man nicht ausschließen, dass nicht auch Informationen
über andere installierte Programme oder sonstige vertrauliche Daten in einem
unverfänglichen Textdokument stecken. Verschickt man solche Dateien per
E-Mail, so gibt man u. U. auch Informationen preis, die man eigentlich nicht
preisgeben möchte.
Ab der Version Microsoft Office 2007 gibt es auch das Werkzeug Document
Inspector. Es ist dazu gedacht, vertrauliche und versteckte Informationen aus
einem Dokument zu entfernen. Zu diesen Informationen gehören (1) persönliche
Daten (z. B. Autor) und allgemeine Dokumenteigenschaften, (2) Kommentare und Informationen zur Versionsgeschichte, (3) Kopf- und Fußzeilen oder
sog. Watermarks, (4) versteckter Text, versteckte Zeilen/Spalten in Tabellen,
(5) unsichtbare Inhalte oder (6) Präsentationsnotizen.
Fazit: Viren, Würmer und Trojanische Pferde sind Beispiele für Schadsoftware (engl. malware). Aktuelle Schadsoftware kombiniert die Techniken der
Viren, Würmer und Trojaner und ergänzt diese Techniken um automatische Aktualisierungsfunktionen. Dadurch kann die Schadsoftware weitere Komponenten
nachladen und dadurch auch mutieren. Die Häufigkeit der unterschiedlichen
Schadprogrammtypen zu zählen ist daher nicht mehr sinnvoll. Man kann jedoch
davon ausgehen, dass die Zahl der Schadprogramme kontinuierlich steigen wird.
8
Sie erinnern sich: Das Halte-Problem ist nicht entscheidbar!
Ein Angreifer kann zwar das Datum der letzten Änderung oder die Dateigröße manipulieren, bei guten Prüfsummen kann der Angreifer die Veränderungen aber nicht mehr so
einfach tarnen.
9
(Version 4; 2014)
39
40
Kapitel 1
1.4.4
Sicherheit in der Informationstechnik
Passwortmissbrauch
Authentifikation: Passwörter (auch Kennwörter genannt) werden zur Authentifikation von Benutzern eingesetzt. Bei der Authentifikation geht es um
die Prüfung, ob der Benutzer tatsächlich derjenige ist, der er vorgibt zu sein.
Im Prinzip gibt es für diese Prüfung mehrere Möglichkeiten:
Biometrie
1. Überprüfen eines unverwechselbaren und schwer zu fälschenden biometrischen Merkmals, wie beispielsweise eines Fingerabdrucks. Dieses Thema
wird in Kurs (01868) Sicherheit im Internet 1 – Ergänzungen vertieft.
Besitz
2. Kontrolle eines schwer zu fälschenden Gegenstandes, wie beispielsweise
eines Personalausweises. Auf den neuen Personalausweis wird in Abschnitt 2.7.4 eingegangen.
Wissen
3. Überprüfung, ob die Person eine bestimmte Information, wie beispielsweise
eine Geheimnummer, kennt.
Bei der Benutzer-Authentifikation an einem Geldautomaten werden die Merkmale Besitz und Wissen geprüft. Der Benutzer muss eine gültige EC-Karte
besitzen und eine Geheimzahl (genannt PIN) kennen. Nur wenn beide Merkmale
erfolgreich geprüft wurden, ist die Authentifikation gelungen.
Bei der Authentifikation gegenüber einem Computer greift man heute i. d. R.
nur auf die Kontrolle des Merkmals Wissen zurück. Als Benutzer kann bzw.
Sicherheits- muss man ein Passwort auswählen. Das Problem mit Passwörtern ist, dass
problem jeder, der das Passwort von Benutzer xy kennt, sich selbst als Benutzer xy
ausgeben kann. Von einem fremden Passwort kann man auf verschiedenen
Wegen erfahren:
Raten: Man kann beispielsweise prüfen, ob der Benutzer seinen Benutzernamen auch als Passwort eingetragen hat. Vielleicht hat ein Benutzer auch
seine Telefonnummer, den Namen des Partners, der Kinder, der Eltern,
sein Autokennzeichen oder eine andere öffentlich bekannte Information
über sich selbst als Passwort verwendet.
Ausprobieren: Man kann Computer auch so programmieren, dass sie nacheinander alle Wörter eines Wörterbuchs, systematisch ausprobieren. Heute
gibt es nicht nur typische Wörterbücher im Netz, sondern auch Listen
mit bisher ausgespähten Passwörtern. Die Programme prüfen dann alle Wörter (klassische Wörter ebenso wie bereits bekannte Passwörter)
und spezielle Modifikationen davon. Solche Modifikationen können das
Anhängen von Ziffern(folgen) oder das Ersetzen einzelner Zeichen des
Wortes (z. B. den Buchstaben l durch die Ziffer 1 ersetzen) sein.
Noch allgemeiner kann man hergehen und alle Zeichenketten über dem
Alphabet der zulässigen Passwortzeichen generieren und als Passwort ausprobieren. Für ein Passwort der Länge n, bei dem jedes Zeichen aus einem
Vorrat von x Zeichen stammen darf, gibt es jedoch xn Möglichkeiten.
Ausspähen/Abhören: Bei der Eingabe des Passworts kann man beobachtet
werden. Insbesondere bei Passwörtern, die man selbst nicht ändern kann
oder darf, ist es besonders wichtig, bei der Eingabe nicht beobachtet zu
werden. Falls ein unbeobachtet eingegebenes Passwort erst im Klartext
(Version 4; 2014)
1.4
41
Konkrete Gefahren
über ein Netz an einen entfernten Computer zur Prüfung geschickt wird,
kann das Passwort auf diesem Weg ausgespäht und kopiert werden.
In diese Kategorie fallen auch alle Versuche von Hackern, mittels gefälschter Nachrichten jemanden zur Preisgabe eines Passwortes zu verleiten. Im
Internet wird das häufig auch Phishing genannt. Die Nachrichten können
Telefonanrufe oder aktuell auch E-Mails sein. Ein Angreifer gibt darin
vor, ein Administrator von einer dem Benutzer bekannten Institution zu
sein. Der Benutzer soll am Telefon sein Passwort dann direkt nennen.
Phishing
Alternativ wird in einer E-Mail behauptet, dass technische Probleme bei
einem Dienstanbieter im Internet aufgetreten seien und der Benutzer seine
Daten zur Aktualisierung bzw. Überprüfung erneut eingeben müsse. Dazu
steht dann häufig eine lange URL in der Nachricht, die der Benutzer anklicken soll. Der Anbieter könnte dabei die eigene Bank, eBay, Amazon usw.
sein. Jeder Anbieter, bei dem man eine Benutzerkennung mit Passwort
besitzt, kann betroffen sein. Klickt man nun die URL an, dann erscheint
eine Seite, die so aussieht als wäre sie vom Anbieter. In Wirklichkeit
stammt sie vom Angreifer und dient nur dem Zweck, Geheimnisse des
Benutzers (Passwörter, Kreditkartennummern, etc.) zu erlangen.
Man sollte sich also immer wirklich sicher sein, mit welchem Rechner
man verbunden ist, wenn man im Internet surft. Hinweise, wie man das
macht, werden in Abschnitt 3.3 vorgestellt.
Passwörter „knacken“: Beim Thema „Ausprobieren“ ist zu beachten, dass
ein Hacker sich heute gar nicht mehr die Arbeit machen muss, ein eigenes
Programm zum Passwörtersuchen oder -ausprobieren zu schreiben. Solche
Programme kann man direkt aus dem Internet laden. Im Folgenden soll auf
die prinzipielle Arbeitsweise solcher Programme etwas genauer eingegangen
werden.
Dazu zunächst einige Hintergrundinformationen, wie Passwörter sinnvoll
behandelt werden. Zunächst sollten Passwörter niemals im Klartext gespeichert
werden. Es besteht immer die Gefahr, dass eine Liste mit Benutzerkennungen Nie im Klartext
und den zugehörigen Passwörtern gestohlen wird oder anders abhanden kommt. speichern
Statt dessen wendet man eine nicht umkehrbare Funktion f auf das Passwort x
an speichert nur den Funktionswert f (x) als Passwort des Benutzers. Da f
nicht umkehrbar ist, kann man aus f (x) nicht zurück auf x schließen. Daneben
sollte f weitere Eigenschaften besitzen:
Möglichst keine Kollisionen: Die Funktion f soll für zwei unterschiedli x auch unterschiedliche Funktionswerte berechnen,
che Eingaben x =
also f (x) = f (x ). In Abschnitt 2.5.1 wird diese Eigenschaft genauer
besprochen.
Großer Wertebereich: Als Funktionswerte sollen sehr viele verschiedene
Werte (z. B. mehr als 2256 ) möglich sein.
Nicht zu schnell berechenbar: Da Angreifer versuchen werden, vorab Tabellen mit allen möglichen Paaren (x, f (x)) zu berechnen, sollte f nicht
zu schnell berechenbar sein. Bei der Überprüfung eines eingegebenen
Passworts darf die Berechnung eine halbe Sekunde dauern, ohne dass das
den Benutzer merklich stört. Ein Angreifer kann dann aber auch nur zwei
Passwörter pro Sekunde testen und nicht zwei Millionen.
(Version 4; 2014)
42
Kapitel 1
Passwort-Hashes
Nachteile
Sicherheit in der Informationstechnik
Die in Abschnitt 2.5 vorgestellten Hash-Funktionen sind potentielle Kandidaten
für f . Zusammengefasst kann man also sagen: Systeme speichern nicht die
Passwörter selbst, sondern sogenannte Passwort-Hashes.
Bei der Überprüfung eines eingegebenen Passworts x wird f (x ) berechnet
und mit dem gespeicherten f (x) verglichen. Sind die Funktionswerte gleich,
dann war x = x. Schafft es ein Angreifer, an die Liste mit Benutzerkennungen
und den Funktionswerten der Passwörter zu kommen, so kann er die Passwörter
der Benutzer trotzdem nicht rekonstruieren. Dieses Verfahren hat allerdings
Nachteile:
• Wählen zwei Benutzer zufällig dasselbe Passwort, so steht bei beiden
Benutzern derselbe Funktionswert in der Liste.
• Ein Angreifer kennt normalerweise die Funktion f . Er kann sich vorab
(also offline) eine Liste mit Passwörtern und den zugehörigen Funktionswerten berechnen. Nun muss er eine „besorgte“ Liste mit (Kennung,
Funktionswert) Paaren „nur“ noch mit seiner Liste vergleichen.
Die vom Angreifer zu erstellende Liste wird natürlich sehr groß. Sie enthält
so viele Einträge wie es Passwörter, bzw. wie es Funktionswerte gibt. Gehen
wir davon aus, dass es 2n viele Funktionswerte gibt. Ohne Tabelle braucht ein
Angreifer dann O(2n ) Zeit für das „knacken“ des Funktionswerts. Er probiert
einfach jedes mögliche Passwort aus. Man nennt das auch den Brute Force
Ansatz.
Hat er diesen Aufwand vorab schon getrieben und ein sortierte Tabelle der
Größe O(2n ) berechnet, so braucht er O(2n ) viel Speicherplatz für die Tabelle
(und O(2n ) viel Zeit für die Erstellung), kann aber anschließend einfach in O(n)
Zeit den passenden Wert finden. Dazu benutzt man binäre Suche. Folgende
Tabelle zeigt den Platz- und Zeitbedarf dieser beiden Angriffsvarianten:
Variante
Zeitbedarf
Platzbedarf
Vorbereitung
Brute Force
O(1)
O(1)
n
O(2 )
O(2n )
Komplette Tabelle
n
Hellman (s. u.)
O(2 )
O(2n/2 )
time-memory
trade-off
Zeitbedarf
„Knacken“
O(2n )
O(n)
O(2n/2 )
Eine komplette Tabelle vorab zu berechnen erfordert zwar sehr viel Aufwand,
ist aber machbar. Allerdings ist die erforderliche Menge an Speicherplatz noch
zu groß für die Praxis.
Hellman [Hel80] hat ein Verfahren vorgestellt, mit dem man einen Mittelweg
gehen kann. Die Idee dabei ist, Platzbedarf gegen Zeitbedarf zu tauschen. Hat
man mehr Speicherplatz, so braucht man weniger Rechenzeit. Hellmans Idee
besteht in der Vorabberechnung einer Tabelle der Größe O(2n/2 ) mit einem
Zeitaufwand der Größe O(2n )10 . Der anschließende Zeitbedarf für die Prüfung
beträgt dann auch O(2n/2 ). „Spendiert man also zusätzlichen Speicherplatz, so
reduziert man den erforderlichen Rechenaufwand.“
Die Idee dieses Prinzips ist wie folgt: Man wählt eine Liste von Startpasswörtern S1 , S2 bis Sk . Für jedes Si iteriert man nun t mal die Funktion f , d. h.
10
Das kann in der Praxis durch parallele Nutzung von Rechenzeit auf sehr vielen PCs, die
ansonsten kaum ausgelastet wären, erreicht werden. Oder man benutzt die vielen Recheneinheiten die auf modernen Grafikkarten vorhanden sind für diese Berechnungen.
(Version 4; 2014)
1.4
43
Konkrete Gefahren
man berechnet Si,j = f j (Si ). Dabei ist f j (x) mit j ≤ t so definiert:
j
f (x) =
f (x)
f (f j−1 (x))
falls j = 1
falls j > 1
Wenn t = k = 2n gilt, dann kann man eine Tabelle mit 2n/2 vielen Einträgen
der Art (Si , f t (Si )) erstellen. Man speichert also nur das Startpasswort und
den zugehörigen Endwert der Berechnungskette von f .
Abbildung 1.18 zeigt die Berechnungsketten. Tatsächlich gespeichert werden
also nur die erste Spalte und die letzte Spalte der Tabelle. Die Größe der
gespeicherten Daten ist also O(k). Würde man die komplette Matrix speichern
wäre der Platzbedarf O(k · t) und bei k = t = 2n/2 hätten wir exponentiellen
Platzbedarf O(2n ). Hat man nun einen Funktionswert y = f (x) gegeben und
S1
S2
Sk
f
f
f
S1,1
S2,1
Sk,1
f
f
f
S1,2
S2,2
...
Sk,2
f
...
f
f
...
f
f
...
f
S1,j
S2,j
Sk,j
Abbildung 1.18: Prinzip des time-memory trade-off
sucht das zugehörige x dann gehen wir davon aus, dass dieses y irgendwo in
der Matrix aus Abbildung 1.18 vorkommt. Das erste Ziel ist es dann, die Zeile
in der y vorkommt zu finden. Entweder steht y schon ganz rechts, dann findet
man es durch vergleichen mit den gespeicherten Werten. Falls man y nicht
gefunden hat, berechnet man f (y) und sucht das. Somit „bewegt man sich eine
Spalte nach rechts“. Das macht man höchstens so oft, wie die Ketten lang sind.
Hat man dann die Zeile i gefunden, so startet man mit dem Startpasswort Si
dieser Zeile und wendet f so oft darauf an, bis man bei f (x) = y angekommen
ist und hat somit das Passwort x gefunden, das zu y gehört. Etwas formaler
sieht der Algorithmus also so aus:
1. Suche y in der Tabelle, also ein f t (Si ) = y.
2. Wenn y = f j (Si ) für alle i, dann berechne y = f (y) und benutze y als
neues y in 1.
3. Wenn ein Si mit y = f t (Si ) gefunden wurde, dann muss das gesuchte x
in der Berechnungskette die bei Si beginnt stehen. Suche in der Kette.
Die Suche nach dem Urbild u von y in der Kette beginnend bei Si erfolgt dann
so:
1. Berechne z = f (Si ) und setze u = Si .
2. Falls z = y dann gib u aus und beende die Suche, sonst setze u = z und
z = f (z).
3. Falls noch nicht über das Kettenende hinaus gegangen, dann weiter bei 2.
(Version 4; 2014)
44
Kapitel 1
Sicherheit in der Informationstechnik
Bei diesem Verfahren braucht man etwa O(2n/2 ) Schritte. Das gilt allerdings nur,
wenn tatsächlich alle möglichen Funktionswerte in einer der O(2n/2 ) Ketten mit
Länge O(2n/2 ) vielen Einträgen auch tatsächlich vorkommen und alle Ketten
disjunkt sind.
Regenbogentabellen
Oechslin [Oec03] hat dieses Prinzip erweitert und auf konkrete Passwörter und ihre Speicherung in aktuellen (Betriebs-)Systemen angewendet. Zur
Vermeidung von Kollisionen zwischen den Ketten wird in einer Kette nicht
die Funktion f benutzt, sondern eine andere Funktion F = R ◦ f . Sie besteht
aus f und einer anschließend ausgeführten Reduktionsfunktion R. Oechslin
hat auch gezeigt, dass man nicht alle Ketten exakt gleich lang machen muss
und dass die Zahl der erforderlichen Ketten nicht O(2n/2 ) ist sondern etwas
größer. Außerdem hat er ein Verfahren gefunden, wie man bei Kollisionen ein
Verschmelzen der Ketten verhindern kann. Eine Kollision tritt auf, wenn es in
zwei verschiedenen Ketten Werte Si,k und Sj,l gibt mit f (Si,k ) = f (Sj,l ). Dazu
benutzt er eine Reduktionsfunktion, die auch von der Position in der Kette
(also k bzw. l) abhängt. Oechslin nannte seine Datenstruktur Regenbogenketten (engl. rainbow chains). Die kompletten Tabellen, die dabei entstehen
(wie in Abbildung 1.18), nennt man daher auch Regenbogentabellen, (engl.
rainbow tables).
Um den Einsatz von vorab berechneten Regenbogentabellen signifikant
aufwändiger zu machen, ändert man das Speicherschema für Passwörter wie
folgt: Zu jedem Benutzer wird neben der Benutzerkennung B noch ein weiterer
Zufallswert Bs erzeugt und gespeichert. Dieser Zufallswert wird Salz (engl.
salt) genannt. Wählt der Benutzer nun ein Passwort Bp, so speichert das
System nicht mehr f (Bp), sondern f (Bs, Bp). Das Salz geht damit in die
Berechnung des Funktionswertes ein. Damit eine Passwortprüfung später noch
möglich ist muss der salt value zusammen mit der Benutzerkennung und dem
Funktionswert im System gespeichert werden.
Der Sinn des salt value liegt darin, dass nun zwei Benutzer dasselbe Passwort
wählen können, ohne dass auch die Funktionswerte in der Benutzerliste gleich
sind. Dazu müsste das System bei beiden Benutzern denselben Zufallswert
erzeugt haben. Je nachdem wie viele verschiedenen Zufallswerte hier möglich
sind, vergrößert sich der Platzbedarf für einen Angreifer, der vorab eine Liste
mit Passwörtern und ihrem Funktionswert berechnen will. Für jedes Passwort
müssen auch alle möglichen salt values betrachtet werden. Statt einer Regenbogentabelle braucht man für jeden salt value nun eine Regenbogentabelle.
crack
john
Die im Internet verfügbaren Programme crack und john probieren nach diesem Verfahren einfach eine große Menge von möglichen geheimen Passworten
(mit jedem möglichen salt value) aus. john kann auch Microsoft WindowsPasswörter suchen. Dazu gibt es große Wörterbücher im Internet, die gerne gewählte Passwörter11 , Wörter aus unterschiedlichen Sprachen, Filmtitel, Namen
usw. enthalten. Weiterhin prüft crack auch bestimmte Modifikationen der Wörter aus dem Wörterbuch. Beliebte Ersetzungen wie „i“ durch „1“ oder „o“ durch
„0“ werden genauso geprüft wie unterschiedliche Groß-/Kleinschreibungen. Die
Erfolgsquote solcher Angriffe kann bis zu 25% betragen!
11
Viele Systemadministratoren sind auch Science-Fiction-Fans und kennen die einschlägige
Literatur. Passwörter aus solchen Büchern sind also selbst als Passwort eines Administrators
gar nicht so selten.
(Version 4; 2014)
1.4
45
Konkrete Gefahren
Eine weitere Methode zur Erzeugung potentieller Passwörter nutzt aus,
dass Menschen keine echten Zufallszeichenketten als Passwörter wählen. Solche
zufälligen Zeichenketten kann man sich nur schwer merken. Daher nehmen
viele Benutzer bekannte Wörter und modifizieren sie. Diese Modifikationen
folgen bestimmten Schemata und können mit statistischen Methoden bestimmt
werden.
In einer echt zufälligen Zeichenkette ist die Wahrscheinlichkeit, dass das
i-te Zeichen z. B. ein „a“ ist gleich 1/n, wobei n die Zahl der möglichen Zeichen
ist. Wörter in natürlicher Sprache und auch die von Menschen erfundenen
Passwörter haben diese Eigenschaft nicht. Je nachdem welches Zeichen als (i-1)tes in einer Zeichenkette steht, sind die Wahrscheinlichkeiten für das i-te Zeichen
unterschiedlich. Das liegt daran, dass bestimmte Zeichenfolgen wie z. B. „ch“,
„ck“ wesentlich wahrscheinlicher sind als z. B. „cq“ oder „ct“. Weiterhin kann
man aus Listen bekannter Passwörter die Modifikationsalgorithmen bestimmen
mit denen Benutzer ihre Passwörter schwerer zu knacken machen wollen. Eine
gerne benutzte Methode ist beispielsweise das Anhängen einer Jahreszahl an
ein Wort.
Während Regenbogentabellen davon ausgehen, dass alle Passwörter (und
somit alle Funktionswerte) gleich wahrscheinlich sind gehen Angreifer heute
nach einer anderen Methode vor. Sie erzeugen Listen von wahrscheinlicheren
Passwörtern und berechnen die Funktionswerte dieser Passwörter. Im schlimmsten Fall dauert die Suche nach einem Passwort dann immer noch sehr lang
(O(nl ) wenn n die Zahl der möglichen Zeichen und l die Länge des Passworts
ist), aber alle echten Passwörter die in der Liste der wahrscheinlichen Passwörter
vorne stehen, können damit deutlich schneller gefunden werden.
Gute Passwörter finden: Auch wenn heutige Betriebssysteme selbst das
„gehashte“ Passwort dem Zugriff der Benutzer entziehen12 , so sind PasswortCrack-Programme nach wie vor eine ernste Bedrohung der Sicherheit. Bei der
Auswahl eines Passwortes sollten Sie sich daher an die folgenden Regeln halten:
• Das Passwort steht nicht in einem erkennbaren Zusammenhang mit
Ihnen. Also keine Telefonnummern; keine Namen von Familienmitgliedern,
Freunden, Kollegen; keine Autokennzeichen; keine Hobbys usw.
• Es gibt keine Einschränkungen bei den möglichen Zeichen im Passwort
(wie z. B. nur lateinische Kleinbuchstaben). Es kommen Klein- und Großbuchstaben, Ziffern und Sonderzeichen im Passwort vor.
• Das Passwort ist ausreichend lang (mindestens 8 Zeichen, besser sogar
10), damit systematisches Ausprobieren zu lange dauert.
• Das Passwort stammt nicht aus einem Wörterbuch. Fügen Sie beispielsweise Sonderzeichen (Ziffern, Satzzeichen, o. ä.) mitten in ein Wort ein,
so haben Sie ein längeres, nicht im Wörterbuch stehendes und trotzdem
nicht zu schwer zu merkendes Passwort gefunden.
• Vom Hersteller voreingestellte Passwörter werden unbedingt geändert.
12
Unter UNIX gibt es die sogenannten Shadow-Passwords. Die verschlüsselten Passwörter
sind dann nicht mehr in der Datei /etc/passwd abgelegt, sondern in einer Datei, die nicht
für jedermann lesbar ist.
(Version 4; 2014)
Gute Passwörter
finden
46
Kapitel 1
Sicherheit in der Informationstechnik
• Passwörter sind nicht zu lange gültig. Irgendwann hat ein Angreifer beim
Ausprobieren aller Möglichkeiten vielleicht doch Erfolg. Sie sollten Ihre
Passwörter daher regelmäßig ändern. Auch wenn Sie das Gefühl haben,
dass jemand Ihr Passwort geknackt hat, sollten Sie unbedingt sofort das
Passwort ändern.
• Passwörter sollten nicht notiert werden. Falls es doch erforderlich sein
sollte, dann nur in einem verschlossenen versiegelten Umschlag, der an
einem sicheren Ort deponiert wird.
Regel
Leider gilt für Passwörter aber auch folgende Regel:
Gut zu merkende Passwörter lassen sich i. d. R. einfach „knacken“.
Schwer zu „knackende“ Passwörter können sich Benutzer nicht
einfach merken.
Eine einfache Möglichkeit diese Regel zu brechen besteht darin, sich einen
Satz an Stelle des Passwortes zu merken. Aus diesem Satz kann man dann das
Passwort ableiten, beispielsweise indem das Passwort aus den Anfangsbuchstaben der Wörter und den Satzzeichen besteht. Aus dem Satz: „Das einfachste
Passwort auf der Welt.“ würde dann die Gedankenstütze für das Passwort
„DePadW.“ entstehen.
Ergänzend können Sie sich dann noch ein oder zwei Sonderzeichen überlegen
und in das oben entstandene Passwort einbauen. Dann haben Sie ein sicheres
und hoffentlich schwer zu knackendes Passwort gefunden, das Sie sich vermutlich
auch gut merken können.
Ein weiteres Problem für viele Benutzer ist, dass man sich nicht nur ein
Passwort merken muss sondern sehr viele. Am PC im Büro, am PC zu Hause,
beim E-Mail-Anbieter, bei den sozialen Netzen in denen man aktiv ist, fürs
Internet-Banking bei der Bank, beim Fonds-Anbieter, am privaten Smartphone,
am Dienst-Smartphone, für die EC-Karte, für die Kreditkarte, bei eBay, Amazon
und all den anderen E-Commerce-Anbietern, in allen Diskussionsforen, im
WLAN zu Hause, unterwegs oder im Büro, usw. soll man sich ein geheimes
Passwort (oder eine PIN) merken. Natürlich ist es einfach und bequem, überall
dasselbe Passwort zu benutzen. Leider ist das auch sehr gefährlich. Bringt
ein Angreifer dann dieses Passwort in Erfahrung, kann er sich komplett als
Identitätsdiebstahl der Angegriffene ausgeben, man nennt das auch Identitätsdiebstahl. Also
braucht man unterschiedliche Passwörter für die einzelnen Gelegenheiten. Um
diese Passwörter zu erstellen bieten sich zwei Wege an:
Tipp!
1. Anwendungs-Klassen bilden und jede Klasse bekommt ein Passwort. Man
kann sich hierzu beispielsweise an den eigenen Sicherheitsanforderungen
orientieren. Überall wo man eine Benutzerkennung und ein Passwort angeben muss, Ihnen ein möglicher Identitätsdiebstahl aber als unbedrohlich
erscheint (z. B. Registrierung in Diskussionsforen aller Art) wählen Sie
ein einfaches Standard-Passwort. Errät jemand dieses Passwort, kann er
in Ihrem Namen höchstens an der „Star Trek“-Diskussion teilnehmen
oder andere unbedrohliche Dinge tun.
Klassifizieren Sie die weiteren Anwendungen nach mittel-wichtig, wichtig
und sehr wichtig. Überlegen Sie sich für jede Klasse dann ein Passwort
und benutzen es für alle Anwendungen dieser Klasse.
(Version 4; 2014)
1.5
Zusammenfassung
Diese Verfahren hat den Vorteil, dass Sie sich nur noch eine „Handvoll“
Passwörter merken müssen (und die Zuordnung zu den Klassen natürlich).
Der Nachteil, dass ein Angreifer ein ausgespähtes Passwort mehrfach
verwenden kann bleibt allerdings.
2. Überlegen Sie sich ein möglichst zufälliges Basis-Passwort und lernen
Sie es auswendig. Für die einzelnen Anwendungen überlegen Sie sich
eine Ergänzung, die eine Art „Abkürzung des Anwendungsnamens“ ist.
Beispielsweise WLH für das WLAN zu Hause, AMA für den bekannten
Internet Buchhändler, usw.
Kombinieren Sie dann das Basis-Passwort und die Ergänzung zum Passwort für die Anwendung. Im einfachsten Fall nehmen sie die Ergänzung
als Präfix oder als Suffix. Sicherer wird es, wenn Sie sich ein komplexeres
Schema überlegen, wie beispielsweise 1. Buchstabe der Ergänzung an den
Anfang, dann das Basis-Passwort, dann den Rest der Ergänzung. Oder
sie fügen zwischen die Bestandteile noch Sonderzeichen ein.
Ihre Tabelle mit den Ergänzungen müssen Sie nun nicht unbedingt geheim halten, sollten sie aber auch nicht veröffentlichen. Wichtig ist, dass
das Basis-Passwort lang genug ist, nicht erraten werden kann und dass
Ihr Kombinationsschema geheim bleibt. Ihr Passwort bei den einzelnen
Anwendungen wird dadurch länger und schwieriger zu knacken.
1.5
Zusammenfassung
Nach dem Durcharbeiten dieser Kurseinheit sollten Sie Folgendes gelernt haben:
• Warum man sich mit dem Thema Computer und Sicherheit befassen
sollte.
• Welche Bedeutung das Wort Sicherheit im Zusammenhang mit Computern eigentlich hat.
• Welche Systematik in den Bedrohungen steckt und welche Eigenschaften
man von sicheren Systemen erwartet.
• Wie Rechnernetze im Prinzip funktionieren und welche Protokolle und
Dienste im Internet benutzt bzw. angeboten werden.
• Wie Viren, Würmer und trojanische Pferde die Sicherheit ihres Rechners
bedrohen.
• Wie Angriffe auf Passwörter durchgeführt werden und wie Sie sich ein
sichereres Passwort überlegen können.
(Version 4; 2014)
47
Lösungen der Übungsaufgaben
Lösungen der Übungsaufgaben
Übungsaufgabe 1.1 Die zu schützenden Eigenschaften in Systemen sind:
Vertraulichkeit: Dieses Schutzziel dient der Sicherung der Privatsphäre. Es
bedeutet, dass der Inhalt bei einer Kommunikation nur dem Absender
und dem beabsichtigten Empfänger bekannt sein darf. Man wird hier
evtl. sogar fordern, dass auch die Tatsache, dass eine Kommunikation
stattgefunden hat, nur den Beteiligten bekannt werden darf.
Integrität: Dieses Schutzziel dient der Sicherung des Vertrauens in den Inhalt
der Kommunikation. Absender und Empfänger sollen sich sicher sein,
dass die Nachricht auf dem Transportweg nicht verändert wurde.
Authentizität: Dieses Schutzziel dient der Sicherung des Vertrauens in die
Identität der an einer Kommunikation Beteiligten. Konkret soll sich der
Kommunikationspartner sicher sein, dass der andere Partner tatsächlich
derjenige ist, der er vorgibt zu sein.
Verfügbarkeit: Dieses Schutzziel dient der Sicherung des Vertrauens in die
„Technik“. Konkret erwartet man, dass die Dienste zur Verfügung stehen,
wenn man sie benutzen möchte.
Übungsaufgabe 1.2 Bei ftp treten mindestens die folgenden Sicherheitsrisiken
auf:
• Die Übertragung des Passwortes kann abgefangen werden, und ein Dritter
kann dann mit diesem Passwort evtl. vertrauliche Daten vom ftp-Server
laden.
• Der Dritte kann auch Daten, die durch Urheberrecht geschützt sind, auf
den ftp-Server kopieren. Dadurch macht sich der Betreiber des ftp-Servers
evtl. strafbar (Raubkopien).
• Der Account und das Passwort können nicht nur für ftp gelten, sondern
auch ganz normale Benutzerkennungen sein. Dann kann sich ein Angreifer
per Telnet auf dem ftp-Server anmelden und dort beliebige Kommandos
ausführen.
(Version 4; 2014)
49
50
Lösungen der Übungsaufgaben
(Version 4; 2014)
LITERATUR
Literatur
[AKS02]
Manindra Agrawal, Neeraj Kayal und Nitin Saxena. „PRIMES is
in P“. In: Ann. of Math 2 (2002), S. 781–793.
[And08]
Ross J. Anderson. Security Engineering. 2. Aufl. Wiley und Sons,
2008.
[Ano03]
Anonymous. Hacker’s Guide. Übersetzung von Maximum Security,
4th ed. München, Germany: Markt+Technik Verlag, 2003.
[Ano98]
Anonymous. Maximum Security. 2. Aufl. Indianapolis, Indiana:
SAMS, 1998.
[Bau97]
Friedrich L. Bauer. Entzifferte Geheimnisse. Methoden und Maximen der Kryptologie. Heidelberg, Germany: Springer-Verlag, 1997.
[Ben+08]
Jens Bender, Dennis Kügler, Marian Margraf und Ingo Naumann.
„Sicherheitsmechanismen für kontaktlose Chips im deutschen elektronischen Personalausweis - Ein Überblick über Sicherheitsmerkmale, Risiken und Gegenmaßnahmen“. In: Datenschutz und Datensicherheit 32.3 (2008), S. 173–177.
[Ber+07]
G. Bertoni, J. Daemen, M. Peeters und G. Van Assche. Sponge
functions. Ecrypt Hash Workshop 2007. Mai 2007.
[Ber+11a]
G. Bertoni, J. Daemen, M. Peeters und G. Van Assche. The Keccak reference. http://keccak.noekeon.org/. Jan. 2011.
[Ber+11b] G. Bertoni, J. Daemen, M. Peeters und G. Van Assche. The Keccak SHA-3 submission. http : / / keccak . noekeon . org/. Jan.
2011.
[BF01]
Dan Boneh und Matthew K. Franklin. „Identity-Based Encryption from the Weil Pairing“. In: CRYPTO. Hrsg. von Joe Kilian.
Bd. 2139. Lecture Notes in Computer Science. Springer, 2001,
S. 213–229. isbn: 3-540-42456-3.
[BPH02]
L. Bassham, W. Polk und R. Housley. „Algorithms and Identifiers
for the Internet X.509 Public Key Infrastructure Certificate and
Certificate Revocation Lists (CRL) Profile“. ftp : / / ftp . rfc editor.org/in-notes/rfc3280.txt. Apr. 2002.
[Bra99]
John R. T. Brazier. „Possible NSA Decryption Capabilities“. In:
DuD Datenschutz und Datensicherheit 23.10 (Okt. 1999), S. 576–
581.
[BSB05]
Daniel J. Barrett, Richard Silverman und Robert G. Byrnes. SSH
The Secure Shell — The Definitive Guide. 2. Aufl. O’Reilly, 2005.
[BSI08a]
BSI. IT-Grundschutz-Vorgehensweise. BSI-Standard 100-2, Version
2.0. Mai 2008.
(Version 4; 2014)
51
52
LITERATUR
[BSI08b]
BSI. Managementsysteme für Informationssicherheit (ISMS). BSIStandard 100-1, Version 1.5. Mai 2008.
[BSI08c]
BSI. Risikoanalyse auf der Basis von IT-Grundschutz. BSIStandard 100-3, Version 2.5. Mai 2008.
[BSI12a]
BSI. Advanced Security Mechanisms for Machine Readable Travel
Documents – Part 1 - eMRTDs with BAC/PACEv2 and EACv1.
Techn. Ber. TR-03110-1. Bundesamt für Sicherheit in der Informationstechnik, 2012.
[BSI12b]
BSI. Advanced Security Mechanisms for Machine Readable Travel
Documents – Part 2 - Extended Access Conrol Version 2 (EACv2),
Password Authenticated Connection Establishment (PACE) and
Restricted Indetification (RI). Techn. Ber. TR-03110-2. Bundesamt
für Sicherheit in der Informationstechnik, 2012.
[BSI12c]
BSI. Advanced Security Mechanisms for Machine Readable Travel
Documents – Part 3 - Common Specifications. Techn. Ber. TR03110-3. Bundesamt für Sicherheit in der Informationstechnik,
2012.
[Coc01]
Clifford Cocks. „An Identity Based Encryption Scheme Based
on Quadratic Residues“. In: IMA Int. Conf. Hrsg. von Bahram
Honary. Bd. 2260. Lecture Notes in Computer Science. Springer,
2001, S. 360–363. isbn: 3-540-43026-1.
[CZ02]
D. Brent Chapman und Elizabeth D. Zwicky. Einrichten von
Internet Firewalls. Sebastopol, CA: O’Reilly, 2002.
[Dem00]
W. Edwards Deming. Out of the Crisis. 2. Aufl. MIT Press, Oktober
2000.
[DH76]
W. Diffie und M. Hellman. „New directions in cryptography“.
In: IEEE Transactions on Information Theory 22.6 (Sep. 1976),
S. 644–654. issn: 0018-9448. doi: 10.1109/TIT.1976.1055638.
url: http://dx.doi.org/10.1109/TIT.1976.1055638.
[DR02]
Joan Daemen und Vincent Rijmen. The Design of Rijndael. Berlin
Heidelberg: Springer Verlag, 2002.
[DR99]
Joan Daemen und Vincent Rijmen. AES Proposal: Rijndael.
http : / / www . esat . kuleuven . ac . be / ~rijmen / rijndael /
rijndaeldocV2.zip. 1999.
[Eck13]
Claudia Eckert. IT-Sicherheit. 8. Aufl. München: Oldenbourg Wissenschaftsverlag GmbH, 2013.
[El 85]
Taher El Gamal. „A public key cryptosystem and a signature
scheme based on discrete logarithms“. In: Proceedings of CRYPTO
84 on Advances in Cryptology. Santa Barbara, California, USA:
Springer-Verlag New York, Inc., 1985, S. 10–18. isbn: 0-387-156585. url: http://dl.acm.org/citation.cfm?id=19478.19480.
[Ele98]
Electronic Frontier Foundation. Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design. Sebastopol, CA:
O’Reilly & Associates Inc., 1998.
[Ert03]
Wolfgang Ertel. Angewandte Kryptographie. München: Fachbuchverlag Leipzig im Carl Hanser Verlag, 2003.
(Version 4; 2014)
53
LITERATUR
[Ger+04]
Helmar Gerloni, Barbara Oberhaitzinger, Helmut Reiser und Jürgen Plate. Praxisbuch Sicherheit für Linux-Server und -Netze.
München: Hanser Verlag, 2004.
[Ges04]
Alexander Geschonneck.
dpunkt.verlag, 2004.
[Gon99]
Marcus Goncalves. Firewalls: A Complete Guide. McGraw-Hill,
Okt. 1999.
[Gut98]
Peter Gutmann. „Software Generation of Practically Strong Random Numbers“. In: Proc. Usenix Security Symposium. Eine wesentlich erweiterte Version des Artikels ist verfügbar unter http:
//www.cypherpunks.to/~peter/06_random.pdf. 1998.
[Hel80]
Martin E. Hellman. „A cryptanalytic time-memory trade-off“. In:
IEEE Transactions on Information Theory 26.4 (1980), S. 401–406.
[Hou+02]
R. Housley, W. Polk, W. Ford und D. Solo. „Internet X.509 Public
Key Infrastructure“. ftp://ftp.rfc- editor.org/in- notes/
rfc3280.txt. Apr. 2002.
[KN07]
Dennis Kügler und Ingo Naumann. „Sicherheitsmechanismen für
kontaktlose Chips im deutschen Reisepass - Ein Überblick über
Sicherheitsmerkmale, Risiken und Gegenmaßnahmen“. In: Datenschutz und Datensicherheit 31.3 (2007), S. 176–180.
[Knu97]
Donald E. Knuth. The Art of Computer Programming Vol. 2:
Seminumerical Algorithms. Addison-Wesley, 1997.
[LS07]
P. L’Ecuyer und R. Simard. „TestU01: A C Library for Empirical
Testing of Random Number Generators“. In: ACM Transactions
on Mathematical Software 33.4, Article 22 (Aug. 2007). http :
//www.iro.umontreal.ca/~simardr/testu01/tu01.html.
[Mar]
G. Marsaglia. The Marsaglia Random Number CDROM including
the Diehard Battery of Tests of Randomness. http://www.stat.
fsu.edu/pub/diehard/.
[MOV96]
A. Menezes, P. van Oorschot und S. Vanstone. Handbook of Applied
Cryptography. http://www.cacr.math.uwaterloo.ca/hac. CRC
Press, 1996.
[MR99]
Günter Müller und Kai Rannenberg, Hrsg. Multilateral Security
in Communications. München: Addison Wesley Longman GmbH,
1999.
[Oec03]
Philippe Oechslin. „Making a Faster Cryptanalytic Time-Memory
Trade-Off“. In: CRYPTO. Hrsg. von Dan Boneh. Bd. 2729. Lecture
Notes in Computer Science. Springer, 2003, S. 617–630. isbn: 3540-40674-3.
[Ris05]
Ivan Ristic. Apache Security — The Complete Guide to Securing
Your Apache Web Server. O’Reilly, 2005.
[Ris10]
Ivan Ristic. ModSecurity Handbook: The Complete Guide to the
Popular Open Source Web Application Firewall. FeistyDuck, 2010.
[Roß99]
Stephan Roßbach. Der Apache Webserver. Bonn, Germany:
Addison-Wesley, 1999.
(Version 4; 2014)
Computer
Forensik.
Heidelberg:
54
LITERATUR
[Ruk01]
A. Rukhin et al. NIST Special Publication 800-22: A Statistical
Test Suite for Random And Pseudorandom Number Generators for
Cryptographic Applications. http://csrc.nist.gov/rng/SP80022b.pdf. Mai 2001.
[Sch+99]
Bruce Schneier, John Kelsey, David Wagner, Chris Hall, Niels
Ferguson und Doug Whiting. Twofish Encryption Algorithm : A
128-Bit Block Cipher. John Wiley and Sons, 1999.
[Sch00]
Bruce Schneier. Secrets & Lies. IT-Sicherheit in einer vernetzten
Welt. Heidelberg, Weinheim, Germany: dpunkt.Verlag / WileyVCH, 2000.
[Sch96]
Bruce Schneier. Angewandte Kryptographie. Protokolle, Algorithmen und Sourcecode in C. Bonn, Germany: Addison-Wesley, 1996.
[SGG08]
Abraham Silberschatz, Peter Galvin und Greg Gagne. Applied
Operating System Concepts. 8. Aufl. New York, NY, USA: John
Wiley, Inc., 2008.
[Sha84]
Adi Shamir. „Identity-Based Cryptosystems and Signature Schemes“. In: CRYPTO. Hrsg. von G. R. Blakley und David Chaum.
Bd. 196. Lecture Notes in Computer Science. Springer, 1984, S. 47–
53. isbn: 3-540-15658-5.
[Sot+08]
Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra,
David Molnar, Dag Arne Osvik und Benne de Weger. MD5 considered harmful today. http://www.win.tue.nl/hashclash/rogueca/. Dez. 2008.
[Spe11]
Ralf Spenneberg. Linux Firewalls – Sicherheit für Linux-Server
und -Netzwerke mit IPv4 und IPv6. 2. Aufl. München, Deutschland:
Addison-Wesley, 2011.
[Sta00]
William Stallings. Network Security Essentials. Uppser Saddle
River, New Jersey: Prentice Hall, 2000.
[Sta06]
William Stallings. Cryptography and Network Security. 4. Aufl.
Upper Saddle River, New Jersey: Prentice Hall, 2006.
[Tan02]
Andrew S. Tanenbaum. Moderne Betriebssysteme. Pearson Studium, 2002.
[Vie09]
John Viega. the myths of security. Sebastopol, CA: O’Reilly, 2009.
[Wol07]
Sebastian Wolfgarten. Apache Webserver 2. Installation, Konfiguration, Programmierung. Addison-Wesley, 2007.
[WWS02]
Tobias Weltner, Kai Wilke und Björn Schneider. WindowsSicherheit, Das Praxisbuch. Konrad-Zuse-Str. 1, D-85716 Unterschleißheim: Microsoft Press, 2002.
[WY05]
Xiaoyun Wang und Hongbo Yu. „How to Break MD5 and Other
Hash Functions“. In: Advances in Cryptology - EUROCRYPT 2005.
Hrsg. von Ronald Cramer. Lecture Notes in Computer Science
3494. Berlin: Springer-Verlag, 2005, S. 19–35.
(Version 4; 2014)
Herunterladen