Problemseminar im Sommersemester 1999
zum Thema
Datenbankeinsatz im Internet

Sicherheit im Internet

Bearbeitet von:
Stefan Burkhardt
burkhardt@informatik.uni-leipzig.de

Betreuer: Dr. Sosna

Leipzig, den 22. Juni 1999


Inhaltsverzeichnis

1 Einleitung

2 Anforderungen für eine kommerzielle Nutzung

3 Das Internet und seine Sicherheitslücken

3.1 Das OSI- und TCP/IP-Referenzmodell
3.2 Die Protokollfamilie TCP/IP und ihre Schwachstellen
3.2.1 Das Internet Protokoll (IP)
3.2.2 Die Protokolle TCP und UDP
3.2.3 Protokolle auf der Verarbeitungsschicht

4 Bemerkungen zum kryptographischen Hintergrund
4.1 Symmetrische und asymmetrische Kryptosysteme
4.2 Digitale Signaturen mit asymmetrischen Kryptosystemen

5 Maßnahmen zur Erhöhung der Sicherheit
5.1 Zertifikate und die Rolle von Trust Centern
5.2 Vertrauensmodelle
5.3 Absicherungen im Internet
5.3.1 Absicherung auf der Internetschicht
5.3.2 Absicherung auf der Transportschicht
5.3.3 Absicherung auf der Verarbeitungsschicht

6 Aktuelle Lage in Deutschland
6.1 Verordnung zur digitalen Signatur
6.2 Vorschläge für Key Escrowing

7 Zusammenfassung

8 Literatur

A Verordnung zur digitalen Signatur


1 Einleitung

Mit der aufkommenden kommerziellen Nutzung des Internets haben sich die Anforderungen an das Netz grundlegend gewandelt. Wurde früher ausschließlich Wert auf Ausfallsicherheit des Gesamtnetzes gelegt, so liegt heute der Schwerpunkt auf der sicheren Übertragung. Man möchte sicher sein, daß die gesendeten Daten unverfälscht ankommen, keine dritte Person sie mitlesen kann. Außderdem will man Sende- und Empfangsvorgänge nachweisen können.

Um dies zu erfüllen, gibt es verschiedene Lösungsansätze, von denen einige im folgenden nach einer Beschreibung der potentiellen Schwachstellen vorgestellt werden.

Die Anforderungen an eine kommerzielle Nutzung sind in Kapitel 2 beschrieben. Kapitel 3 zeigt potentielle Schwachstellen im Internet. In Kapitel 4 werden ein paar kryptographische Grundlagen vorgestellt. Heutige Konzepte für eine sichere Datenübertragung sind Bestandteil von Kapitel 5. Im 6. Kapitel wird schließlich auf den heutigen Stand in Deutschland eingegangen.


2 Anforderung für eine kommerzielle Nutzung

Durch den Ursprung des Internet im militärischen und auch im wissenschaftlichen Bereich wurde bei der Entwicklung sehr großer Wert auf Ausfallsicherheit gelegt. Die sich seit den neunziger Jahren entwickelnde kommerzielle Nutzung erfordert zusätzlich noch die folgenden vier Eigenschaften [BK91]:

Die Authentifizierung untergliedert sich in die Benutzer- und Datenauthetifizierung. Bei der Benutzerauthentifizierung wird die Identität des Nutzers geprüft, bei der Datenauthetifizierung, von wem die gesendeten Daten stammen.

Datenintegrität soll die Daten vor Manipulation schützen.

Die Vertraulichkeit soll das Abhören von Nachrichten verhindern.

Schließlich fordert man noch Nachweisbarkeit. Es soll für Dritte nachweisbar sein, wer die Daten gesendet bzw. empfangen hat.


3 Das Internet und seine Sicherheitslücken

3.1 Das OSI- und TCP/IP-Referenzmodell

Dieses Modell entstand 1983, basierend auf einem Vorschlag der International Standard Organisation. Das OSI-Modell hat sieben Schichten. Folgende Gründe haben zur Siebenschichtigkeit geführt ([TA98]):

Aufbau OSI-Modell

Dabei sollen nach [SK95] die einzelnen Schichten folgende Funktionen erfüllen:

Im Internet wird eine etwas andere Schichteneinteilung verwendet. Hier sind nur vier Schichten vorhanden (siehe Abbildung).

TCP/IP-Modell

Die Schichten sollen die folgenden Aufgaben erfüllen:

Im TCP/IP-Modell gibt es keine Sitzungs- und Darstellungsschicht. Beim Entwurf des Modells sah man keine Notwendigkeit für diese Schichten. Spätere Erfahrungen mit dem OSI-Modell bestätigten dies auch.

3.2 Die Protokollfamilie TCP/IP und ihre Schwachstellen

TCP/IP ist eine Protokollfamilie, zu der neben dem Internet Protokoll (IP) und dem Transmission Control Protokol alle Protokolle des Internet gehören. Mit den Protokollen von TCP/IP werden die Funktionen des Internets realisiert. Die Protokolle von TCP/IP haben die folgenden Eigenschaften [NU98]:

Allerdings waren bei der Entwicklung der Protokolle die Ansprüche des kommeziellen Einsatzes kein vorrangiger Aspekt. Das Hauptaugenmerk lag auf der Ausfallsicherheit und nicht auf verschlüsselter Übertragung und gegenseitiger Identifizierung.

3.2.1 Das Internet Protokoll (IP)

Das Internet Protokoll (IP) ist die unterste einheitliche Schicht jeder Kommunikation über das Internet. Der Standard RFC-791 beschäftigt sich mit IP. Darin werden folgende Eigenschaften festgelegt:

In diesem Standard fehlen jegliche Spezifikationen zum Verbindungsaufbau und zur Fehlerkontrolle. Aus dem Blickwinkel der Sicherheit von IP sind zwei Dinge relevant, zum einen das IP-Datagramm und zum anderen die Routenwahl.

Die Sicherheitsprobleme bei IP-Datagrammen sind die folgenden [NU98]:

Weiterhin sind bei der Routenwahl folgende Angriffe möglich [NU98]:

Die Unzulänglichkeiten von IP können auf mehrere Arten überwunden werden. Einerseits kann man auf den darüberliegenden Schichten eine zuverlässige Verbindung aufbauen, indem man Mechanismen wie zum Beispiel Flußkontrollen und Bestätigungsmechanismen für angekommene Pakete vorsieht. Auch ist es in den Anwendungen beispielsweise grundsätzlich möglich, Daten zu verschlüsseln und zu signieren. Andererseits kann man aber auch auf der IP-Schicht ansetzen. In der Nachfolgerversion IPv6 des heute verwendeten IP-Protokolls IPv4 sind Funktionen vorgesehen, mit denen alle Daten verschlüsselt und signiert werden können, bevor sie auf den Weg zum Zielrechner geschickt werden. Eine derartige Erweiterung ist auch für IPv4 erhältlich.

3.2.2 Die Protokolle TCP und UDP

Die TCP-Schicht ist eigentlich die geeignetste Schicht, um Sicherheitsmaßnahmen zu implementieren. In der Tat werden durch TCP einige Schwachstellen von IP beseitigt. Sequenzieren, Fehlerkorrektur und Flußkontrolle sorgen für eine verläßliche Übertragung. Jedoch erfüllt dies nicht die Ansprüche des kommerziellen Interneteinsatzes. [NU98].

Mit der Secure-Socket-Layer (SSL) ist es aber auch möglich, auf der TCP-Schicht bestimmte Sicherheitsvorkehrungen zu treffen.

3.2.3 Protokolle auf der Verarbeitungsschicht

Die Protokolle der Verarbeitungsschicht dienen der Implementierung der verschiedenen Internetdienste. Die ursprünglichen Protokolle und ihre Aufgabe sind in der nachfolgenden Tabelle dargestellt. [TA98]

Protokoll Aufgabe
TELNET Implementierung eines virtuellen Terminals
FTP Dateiübertragung
SMTP E-Mail Zustellung
POP3 E-Mail Abholung durch den Mailboxinhaber, Gegenteil zu SMTP
DNS Name Service
NNTP Austausch von Nachrichten
HTTP Holen von Seiten aus dem WWW

Der gemeinsame Schwachpunkt dieser Protokolle ist, daß sie allesamt sogenannte Klartextprotokolle sind. Das heißt, alle Daten werden unverschlüsselt über das Netz übertragen. Da mag bei DNS, NNTP und bei früheren Versionen von HTTP nicht unbedingt kritisch sein, da es ohnehin der Sinn der Name-Informationen, News-Artikel und Web-Seiten ist, der ganzen Welt zugänglich zu sein. Schwieriger wird es da bei TELNET, FTP, POP3. Bei allen diesen Protokollen werden Passwörter im Klartext übertragen. Sie können also von jedem Host, über den der Kommunikationsweg läuft, abgefangen und verwendet werden.

Die eigentliche Schwachstelle bei DNS ist aber an einem anderen Punkt zu suchen. Die Aufgabe von DNS ist es, weltweit die Zuordnung von Rechnernamen zu IP-Adressen vorzunehmen. Bei der Vielzahl der Rechner im Netz kann aber nicht jeder alle Zuordnungen kennen, aus welchem Grund auch die Idee für DNS entstand. Deshalb ist DNS als verteilte Datenbank aufgebaut. Die Information, die ein Name-Server nicht auflösen kann, leitet er an den höchsten Server weiter. Von dort wird schrittweise an den Nameserver, der für die entsprechende Domain zuständig ist, weitergeleitet. Man muß also bei so einer Adreßanfrage allen bei der Auflösung beteiligten Servern vertrauen. Andererseits ist es möglich, etwa durch RIP-Angriffe die Funktion eines Nameservers zu übernehmen und gezielt eine falsche IP-Adresse zurückzuliefern. Zwar gibt es zur Kontrolle der Korrektheit noch die Möglichkeit der Rückwärtsauflösung der Adresse, also das Suchen des Rechnernamens zur gegebenen IP-Adresse. Allerdings basiert das auf demselben Mechanismus, so daß auch dort Angriffe möglich sind.

Um diese Unsicherheiten zu beseitigen, muß im Laufe der Zeit dazu übergegangen werden, die Daten vor der Übertragung zu verschlüsseln. Es gibt Versionen der Protokolle (S-HTTP, SSH), die vor der eigentlichen Übertragung eine gegenseitige Identifizierung und das Bilden eines Schlüssels für die jeweilige Sitzung ermöglichen. Bei DNS ist der Aufbau eines gesicherten DNS-Dienstes angestrebt, bei dem die Server ihre Antwort digital signieren, so daß der Nutzer nachvollziehen kann, ob die Antwort wirklich von dem erwarteten Rechner kommt.


4 Bemerkungen zum kryptographischen Hintergrund

4.1 Symmetrische und asymmetrische Kryptosysteme

Theoretisch betrachtet ist ein Kryptosystem ein Tripel (M, K, C), wobei M die Menge aller möglichen Klartextnachrichten, K die Menge aller Schlüssel und C die Menge aller Chiffren sind, zusammen mit zwei Funktionen d:M x K -> C und e:C x K -> M. Die Funktion d heisst Verschlüsslungs-, die Funktion e Entschlüsslungsfunktion.

Im Falle eines symmetrischen Kryptosystems erfolgen Ver- und Entschlüsslung jeweils mit demselben Schlüssel. Das heisst, für ein beliebiges k aus K, m aus M gilt:

  1. d( e(m, k), k) = m
  2. Im Allgemeinen gilt: e( d(m,k), k)<>m.
  3. Sei k2 aus K mit k2<>k. Dann gilt im Allgemeinen: d( e(m, k), k2)<>m und d( e(m, k2), k)<>m.
Weiterhin sollte natürlich e(m,k) <> m gelten. Symmetrische Kryptosysteme haben den Nachteil, daß die kommunizierenden Parteien zunächst auf einem sicheren Weg einen gemeinsamen Schlüssel austauschen müssen.

Im Gegensetz zu den symmetrischen Systemen sind in den letzten zwei bis drei Jahrzehnten asymmetrische Kryptosysteme entwickelt worden. Die Idee dabei ist es, daß Ver- und Entschlüsslung mit zwei verschiedenen Schlüsseln erfolgen. Daher ist es möglich, den Schlüssel zum Verschlüsseln öffentlich bekanntzugeben. Bei den heute verfügbaren asymmetrischen Kryptosystemen werden über mathematische Verfahren zwei Schlüssel gebildet, die eine entgegengesetzte Wirkung haben, d.h. wenn einer zum Verschlüsseln verwendet wird, dann kann der andere zum Entschlüsseln verwendet werden. Das Verfahren, mit dem man aus einem Schlüssel ohne weitere Kenntnisse den anderen berechnen kann, sollte mindestens genauso komplex sein wie das knacken des Chiffretextes.

Asymmetrische Kryptosysteme haben die folgenden Eigenschaften:

Für ein Schlüsselpaar (k1, k2) mit k1, k2 aus K und alle m aus M gilt:

  1. d( e(m, k1), k2) = m und auch d( e(m, k2), k1) = m
  2. e( d(m, k1), k2) = m
  3. Für alle k aus K, k<>k1, k<>k2 sollte gelten: d( e(m,k), k1)<>m, d( e(m,k), k2)<>m,
    d( e(m,k_1), k)<>m
    und d( e(m,k_2), k)<>m
Das heute am bekanntesten und am weitesten verbreitete asymmetrische Verfahren ist RSA, benannt nach seinen Entwicklern Rivest, Shamir und Adleman.

Um ein RSA-Schlüsselpaar zu bilden ermittelt der Nutzer zunächst zwei große Primzahlen p und q. Er berechnet das Produkt n= p g und wählt zufällig eine zu (p-1)(q-1) teilerfremde Zahl d aus dem Bereich 1<= d<=p-1)(q-1). Anschließend berechnet er mittels des erweiterten Euklidischen Algorithmus die eindeutig bestimmte Zahl e, 1<=e<=(p-1)(q-1) mit der Eigenschaft d e = 1 mod (p-1)(q-1). Das Paar (e, n) wird als öffentlicher Schlüssel bekanntgegeben, das Paar (d, n) bildet den privaten Schlüssel. Da es ziemlich einfach möglich ist, d aus e, p, q zu berechnen, sollten p und q vernichtet werden.

Das Versenden einer verschlüsselten Nachricht M erfolgt auf die folgende Weise:

  1. Man zerlegt M in Blöcke Mi und stellt jeden Block durch eine Zahl aus dem Bereich 0..(n-1) dar.
  2. Die Verschlüsslung erfolgt durch die Berechnung C = (Mi)^e mod n.
  3. Der Empfaenger berechnet D = C^d mod n, wobei D = M ist.

4.2 Digitale Signaturen mit asymmetrischen Kryptosystemen

Asymmetrische Kryptosysteme können außer zur verschlüsselten Übertragung auch zum digitalen Signieren von Nachrichten verwendet werden. Dabei nutzt man die Eigenschaft aus, daß für jedes Schlüsselpaar (pub, priv) mit öffentlichem Schlüssel pub und privatem Schlüssel priv nicht nur d( e(m,pub), priv) = m gilt, sondern auch e( d(m,priv), pub) = m.

Mit diesem Mechanismus lassen sich digitale Signaturen auf folgende Art erzeugen:

  1. Alice möchte an Bob eine signierte Nachricht schicken. Sie hat das Schlüsselpaar (pub, priv). Also bildet sie für ihre Nachricht m: s = d(m, priv) und schickt (m, s) an Bob.
  2. Bob empfängt (m, s) und bildet v = e(s, pub), wobei pub Alices öffentlicher Schlüssel ist. Gehört die Signatur zu der Nachricht und ist sie korrekt, so gilt: m = v und Bob wird m akzeptieren. In allen anderen Fälle wurde entweder die Nachricht geändert oder die Signatur gehört nicht zur Nachricht. In diesen Fällen wird Bob m ignorieren.
Es ist möglich, zum Verschlüsseln und Signieren von Nachrichten dasselbe Schlüsselpaar zu verwenden. Aus zwei Gründen sollte man dies nicht tun:

  1. Man kann durch die Vorschriften in einem Land dazu gezwungen werden, seinen privaten Schlüssel zur Entschlüsslung herauszugeben. So ist es nach der Herausgabe der Schlüssels trotzdem nicht möglich, Signaturen zu fälschen.
  2. Unter bestimmten Umständen ist es auch möglich, Signaturen zu fälschen, wenn zum Verschlüsseln und Signieren dasselbe Schlüsselpaar verwendet wird.
Angriffe gegen digitale Signaturen sind in [SC98] ausführlich beschrieben.


5 Maßnahmen zur Erhöhung der Sicherheit

5.1 Zertifikate und die Rolle von Trust Centern

Mittels asymmetrischen Kryptosystemen ist ein bequemes Verschicken und Signieren von Nachrichten möglich. Der Vorteil dabei ist, daß Verschlüsseln bzw. Signieren und Entschlüsseln bzw. Überprüfen der Signatur mit verschiedenen Schlüsseln erfolgt, so daß die kommunizierenden Parteien vorher keinen Schlüssel über einen anderen Weg austauschen müssen. Jeder Nutzer legt lediglich seinen öffentlichen Schlüssel auf einem Schlüsselverteilungserver (z.B. www.keystroke.nl) ab oder sendet ihm direkt am Beginn der Kommunikation an den Partner. Und genau dort liegt auch der Schwachpunkt des gesamten Systemes. Man kann nicht überprüfen, ob der öffentliche Schlüssel, den man von einem Nutzer bekommt, auch wirklich dessen Schlüssel ist. In der folgenden Abbildung ist ein mögliches Angriffsszenarium dargestellt [SM97].

Man-in-Middle-Attack

Dabei sind Alice und Bob die kommunizierenden Parteien, die zu Beginn der Sitzung sich gegenseitig ihre öffentlichen Schlüssel senden. Mallot sei in der Route zwischen Alice und Bob plaziert. Alice sendet nun ihren Schlüssel. Der Weg läuft über Mallot. Mallot fängt den Schlüssel ab und sendet statt dessen ihren öffentlichen Schlüssel an Bob. Ebenso verläuft das in der Gegenrichtung. Mallot fängt auch Bobs Schlüssel ab und sendet auch Alice ihren öffentlichen Schlüssel. Alice und Bob haben keine Ahnung davon, daß sie gar nicht den Schlüssel ihres Gegenübers besitzen. Sendet nun Alice etwas an Bob, so läuft der Weg auch über Mallot. Alice verschlüsselt die Nachricht mit Mallotīs Schlüssel und sendet sie an Bob. Mallot entschlüsselt die Nachricht mit ihrem privaten Schlüssel, verschlüsselt sie mit Bobīs Schlüssel und sendet sie an Bob. Da Bob nun eine Nachricht erhält, die mit seinem öffentlichen Schlüssel verschlüsselt ist, kann er sie entschlüsseln ohne im geringsten einen Verdacht zu schöpfen. Genauso läuft die Kommunikation von Bob nach Alice. Da Alice und Bob den Schlüssel von Mallot benutzen, kann Mallot jede Nachricht zwischen Alice und Bob im Klartext lesen.

Um die Überprüfbarkeit der Schlüssel für alle zu gewähleisten, ist das Konzept von Zertifikaten eingeführt worden. Ein Zertifikat enthält Daten über den Inhaber und ist von einer Zertifizierungsstelle (Trust Center) signiert. Damit der Nutzer die Gültigkeit der Signatur auch Überprüfen kann, wird der öffentliche Schlüssel der Zertifizierungsstelle auf einem sicheren Weg (z.B. persönlich) dem Nutzer übergeben.

Der Aufbau solch eines Zertifikats ist in der Norm X.509 geregelt. In der ersten Version (X.509v1) ging es dabei vorrangig um die Zuordnung zwischen Namen und öffentlichen Schlüssel des Inhabers (s. Abbildung).

Aufbau X.509v1-Zertifikat

So können Alice und Bob zu Beginn der Kommunikation sich gegenseitig ihre Zertifikate schicken. Die Echtheit der Zertifikate kann mit dem öffentlichen Schlüssel der Zertifizierungsstelle überprüft werden. Dadurch ist die Verbindung zwischen Namen und öffentlichem Schlüssel hergestellt, so daß in diesem Fall Mallot keine Chance haben wird.

Für kommerzielle Nutzung ist die Kopplung zwischen Namen und öffentlichem Schlüssel oft nicht ausreichend ist. So möchte man auch noch andere Daten des Inhabers haben und manchmal auch verhindern, daß der Inhaber andere Nutzer zertifizieren kann (s. Abschnitt Vertauensmodelle). Zu diesem Zweck wurde der Aufbau erweitert. Dies geschah allerdings unter dem Gesichtspunkt, daß man kompatibel zur Version v1 bleiben möchte. Der Aufbau eines Zertifikats nach X.509v3 ist im folgenden dargestellt.

Aufbau X.509v3-Zertifikat

Aufbauend auf Zertifikaten ist dann auch eine zuverlässige gegenseitige Identifizierung der kommunizierenden Parteien möglich. Alice und Bob wollen zum Beispiel miteinander kommunizieren und sich dabei sicher sein, daß sie wirklich miteinander reden. Also müssen sie sich gegenseitig identifizieren. Zuerst will sich Alice davon überzeugen, daß wirklich Bob am anderen Ende sitzt. Zuerst sendet Bob ihr eine Nachricht der Art "Hallo, ich bin Bob und hier ist mein Zertifikat" senden. Alice nimmt das Zertifikat in Empfang und überprüft mit Hilfe des öffentlichen Schlüssels der Zertifizierungsstelle die Echtheit des Zertifikats. Anschliessend sendet sie Bob irgendeinen beliebigen Text. Die Aufgabe von Bob ist es, diesen Text zu signieren und den signierten Text wieder an Alice zurückzusenden. Nun kann Alice die Signatur mit Hilfe des öffentlichen Schlüssels aus dem Zertifikat überprüfen. Stimmt die Signatur, so kann sie sicher sein, daß sie mit Bob kommuniziert. Auf dieselbe Art kann sich Bob davon überzeugen, daß er wirklich mit Alice redet.

Haben sich beide Seiten identifiziert, so besteht trotzdem noch die Gefahr, daß ein Angreifer eine Nachricht als Bob an Alice schickt. Um auch dies noch zu verhindern, sollten Alice und Bob auch alle ihre Nachrichten signieren.

Es kann notwendig sein, Zertifikate vor Ablauf ihrer Gültigkeit zu sperren. Dies ist beispielsweise dann der Fall, wenn der Inhaber seinen privaten Schlüssel verliert. Um Zertifikate zu sperren, werden in regelmäßigen Abständen Sperrlisten veröffentlicht. Dort werden die Nummer der gesperrten Zertifikate veröffentlicht. Mit dem Standard X.509v3 wurde gleichzeitig ein genormter Aufbau der Sperrliste festgelegt.

Aufbau X.509-Sperrliste

Sperrlisten werden in regelmäßigen Abständen von den Zertifizierungsstellen veröffentlicht. Je nach Sicherheitsanforderung kann sich der Abstand zwischen zwei Veröffentlichungen im Zeitraum von wenigen Minuten bis zu einem Tag bewegen.

5.2 Vertrauensmodelle

Durch Zertifizierungsstellen können sich Benutzer Zertifikate ausstellen lassen. Wegen des großen Nachfragebedarfes entstanden eine Vielzahl von Zertifizierungsstellen, die alle ihren eigenen Nutzerkreis haben. Um eine Interoperabilität zwischen den Zertifikaten der Zertifizierungsstellen zu haben, ist es möglich, daß eine Stelle das Zertifikat und damit den öffentlichen Schlüssel einer anderen Zertifizierungsstelle unterschreibt. In der Folge werden durch den Nutzer der unterschreibenden Stelle auch die Zertifikate der zertifizierten Stelle anerkannt. Dies führt zur Bildung von Vertrauensketten, man spricht von einem Vertrauensmodell.

Ein Vertauensmodell ist durch die folgenden Definitionen und Eigenschaften gekennzeichnet [NU98]:

Es gibt vier typische Vertrauensmodelle (s. Abbildung, Spitzenzertifizierungsstellen sind dick umrandet).

Vertrauensmodelle

Das flache Vertrauensmodell entspricht dem Fall einer unabhängig operierenden Zertifizierungsstelle.

Beim PGP-Vertrauensmodell stellt jeder Nutzer eine unabhängige Zertifizierungsstelle dar und entscheidet selbst durch seine digitale Unterschrift wem vertraut wird. Es bleibt auch jedem Nutzer selbst überlassen, im jedem Einzelfall eine Vertrauenskette zu finden und zu entscheiden, ob er die Unterschrift eines anderen Nutzers als ausreichend anerkennt.

Beim verteiltem Vertrauensmodell wird von mehreren, dezentral operierenden Zertifizierungsstellen ausgegangen. Für jeden Nutzer stellt seine Zertifizierungsstelle die vertrauensmaximale Instanz dar. Zusätzliche Stellen sind für Kreuzzertifizierungen vorgesehen, um für den Nutzer einer Zertifizierungsstelle die Zertifikate der anderen Stellen akzeptabel zu machen.

Das zentrale Vertauensmodell geht von einer straffen, streng hierarchischen Struktur aus. Es gibt genau eine oberste Zertifizierungsstelle, die auch für alle Nutzer die vertrauensmaximale Instanz darstellt.

5.3 Absicherungen im Internet

Eine Absicherung im Internet kann prinzipiell auf den drei obersten Schichten des TCP/IP-Modells erfolgen. Die folgende Abbildung stellt die verschiedenen Möglichkeiten dar:

Absicherung der Internetdienste

5.3.1 Absicherung auf der Internetschicht

Bei der Absicherung auf der Vermittlungsschicht (IP-Schicht) werden die Protokollelemente der darüberliegenden Schicht (TCP-Segmente oder UDP-Datagramme) in verschlüsselter Form in IP-Datagramme eingebettet. Beim Empfänger werden die Elemente wieder entschlüsselt und so an die Verarbeitungsschicht weitergereicht [NU98].

Eine solche Absicherung wird im IPv6 vorgesehen, der Weiterentwicklung des heute verwendeten Internet Protokol IPv4. Momentan wird noch versucht, ein Protokoll für die Schlüsselverteilung zu standardisieren.

5.3.2 Absicherung auf der Transportschicht

Eine Absicherung auf der Transportschicht hat den Vorteil, daß hier bereits einzelne Internet-Dienste unterschieden werden. Es wird also nicht die gesamte verbindung mit einem Rechner abgesichert, sondern nur einzelne Dienste (wie z.B. HTTP).

Von Netscape wurde im Zuge der Entwicklung der kommerziellen Nutzung das Protokoll SSL (von Secure Sockets Layer) entwickelt. Von diesem existieren heute schon eine Reihe frei verfügbarer Implementierungen.

Unmittelbar nach dem Aufbau der TCP/IP-Verbindung findet die Initialisierungsphase von SSL, der sogenannte SSL-Handshake, statt. Dazu gehören die folgenden Vorgänge [NU98]:

  1. Der Client baut eine Verbindung zum Server auf, beginnt den Initialisierungsvorgang und schlägt dabei eine Reihe der von ihm unterstützten kryptographischen Verfahren vor.
  2. Der Server antwortet mit einer Auswahl der geeigneten und von beiden Seiten unterstützten Verfahren und überträgt sein X.509-Zertifikat. In diesem Schritt kann der Server auch optional ein Zertifikat von Clienten verlangen. Es wird ebenfalls der Beitrag vom Server zum Sitzungsschlüssel gesendet, abhängig von gewählten Schlüsselaustauschprotokoll.
  3. Nach erfolgreicher Überprüfung des Zertifikats vom Server durch den Clienten überträgt er, falls er dazu aufgefordert wurde, sein Zertifikat an den Server und bedient sich dabei ebenso wie der Server einer digitalen Unterschrift zur Sicherstellung seiner Identität. Außerdem werden vom Clienten auch die zur Erzeugung des Sitzungsschlüssels notwendigen Informationen an den Server übertragen. Hier ist die Initialisierungsphase von der Seite des Clienten aus beendet.
  4. Server und Client bilden den gemeinsamen Sizungsschlüssel aus ihrem eigenen und dem dazu empfangenen Beitrag. Gegebenenfalls überprüft der Server das Zertifikat des Benutzers und bestätigt den erfolgreichen Abschluß der Initialisierungsphase. Diese Nachricht wird mit dem ausgehandelten Verfahren symmetrisch verschlüsselt und digital signiert. Anschließend steht der Anwendung die sichere Verbindung zur Verfügung.
Zu bemerken ist, daß die Authetifizierung des Clienten nur optional stattfindet. Hauptaugenmerk bei der Entwicklung des Protokolls war die Authetifizierung des Servers, um die Schwächen des DNS-Dienstes zu umgehen.

5.3.3 Absicherung auf der Verarbeitungsschicht

Secure-HTTP

Secure-HTTP (S-HTTP) ist eine Erweiterung von HTTP, welche die Übertragung von verschlüsselten und bzw. oder signierten Daten in beide Richtungen ermöglicht.

Bei S-HTTP handeln Client und Server für jede Verbindung die Absicherung erneut aus. Dabei ist es möglich, Mindestanforderungen für die Absicherung der Verbindung zu stellen. Dabei sind drei Stufen vorgesehen [NU98]:

Der wesentliche Vorteil ist, daß durch die digitalen Signaturen die Nicht-Abstreitbarkeit des Absendevorgangs erreicht werden kann. Ein weiterer Vorteil ist, daß durch S-HTTP die Sicherheitsbedürfnisse der Anwendung reflektiert werden.

Secure-DNS

Secure-DNS ist eine Erweitung des DNS, die in erster Linie die Authentifizierung der an der Auflösung des Names beiligten DNS-Server durch digitale Unterschriften zum Ziel hat [NU98].

Der DNS-Dienst wird dabei in zwei Richtungen erweitert [NU98]:

Zum Erreichen dieser Ziele ist es allerdings notwendig, daß jeder Rechner, der sich im Namensbereich eines DNS-Servers befindet, eine verläßliche Kopie des öffentlichen Schlüssels des Server besitzt. Dementsprechend müssen auch zwischen den Servern der einzelnen Namensbereiche innerhalb der Hierarchie Zertifikate für die Vorwärts- und Rückwärtsauflösung ausgestellt werden, um eine sichere Auflösung außerhalb des eigenen Bereiches gewährleisten zu können.

Die Spitzen der Zertifizierungshierarchie sind im Optimalfall einer weltweiten Umstellung auf Secure-DNS die DNS-Server der obersten Namensbereiche (z.B. de oder com). Um eine schrittweise Umstellung von DNS auf Secure-DNS zu erreichen, bedient man sich keines zentralen Vertrauensmodells, sondern verläßt sich auf Kreuzzertifizierungsmechanismen. Dadurch besteht eine Interoperabilität zwischen beide Systemen. Kann ein sicherer Server keinen Vertrauenspfad herstellen, so wird auch dieser nur eine unsichere IP-Adresse zurückliefern. Zur Inbetriebnahme von Secure-DNS ist deshalb nicht die sofortige Entstehung einer weltweiten Spitzenorganisation eine Voraussetzung [NU98].


6 Aktuelle Lage in Deutschland

6.1 Verordnung zur digitalen Signatur

Seit dem 1.1.1997 gilt in Deutschland die Signaturverordnung (SigV). Darin werden die Anforderungen an Zertifizierungsstellen und das Verfahren für das Erteilen und öffentliche Ablegen von Zertifikaten geregelt. Es gibt zur Zeit einige, wenige Zertifizierungsstellen (z.B. Trust Center Hamburg). In wieweit digitale Signaturen als Rechtsgrundlage anerkannt werden, kann leider nicht gesagt werden.

Im Anhang A befindet sich das Inhaltsverzeichnis der Signaturverordnung.

6.2 Vorschläge für Key Escrowing

Zur Zeit ist es in der Bundesrepublik Deutschland möglich, verschlüsselte Daten ohne Einschänkung über Datennetze zu versenden. Allerdings wird seit längerer Zeit eine Änderung dahingehend angestrebt, daß ähnlich wie z.B. in Frankreich der Versand verschlüsselter Daten verboten wird oder der Schlüssel einer Behörde hinterlegt werden muß. Zu diesem Zweck gibt die dafür zuständige Behörde einen öffentlichen Schlüssel heraus. Beim verschlüsselten Versand von Daten sind die Angabe des kryptographischen Verfahren zusammen mit dem Schlüssel für die Entschlüsslung den Daten beizufügen. Damit Unbefugte nicht in der Lage sind, die Daten zu entschlüsseln, sind die Angaben mit dem öffentlichen Schlüssel der Behörde zu verschlüsseln.


7 Zusammenfassung

Das Ziel aller vorgestellten Verbesserungsansätze ist es, eine Nutzung des Internet zu ermöglichen, die den kommenziellen Anforderungen in vollem Umfang gerecht wird. Mögliche Ansätze werden seit längerem von grossen Computerfirmen entwickelt und sind größtenteils auch frei verfügbar. Momentan wird versucht, durch Signaturverordnungen die scheinbar letzten Hemmnisse zu beseitigen.

Allerdings ist die so entstehende Sicherheit nicht absolut zu betrachten. Die Sicherheit der zugrundeliegenden kryptographischen Verfahren beruht meistens darauf, daß es noch niemandem gelungen ist, eine Schwachstelle darin zu finden. Eine Auflistung heute bekannter Pannen ist beim Bundesamt für Sicherheit in der Informationstechnik zu finden.


8 Literatur

[BK91]
Beutelspacher, A., Kertsen, A., Pfau, A.: Chipkarten als Sicherheitswerkzeuge,
Springer Verlag Berlin, Heidelberg, 1991.
[NU98]
Nusser, Stefan: Sicherheitskonzepte im WWW,
Springer Verlag Berlin, Heidelberg, 1998.
[SC98]
Schneyer, Bruce: Angewandte Kryptographie,
Addison-Wesley, Bonn, 1998.
[SK95]
Schönleber, Claus, Keck, Cornelius: Internet Handbuch,
Franzisī, Poing, 1995.
[SM97]
Smith, Richard E.: Internet Cryptographie,
Addison-Wesley, Reading, 1997.
[ST94]
Studer, Bruno: Sicherheit im Netzmanagement,
Dissertation an der Universität Zürich, 1994.
[TA98]
Tanenbaum, Andrew S.: Computernetzwerke,
Prentice Hall, 1998.
[BSI99]
Bundesamt für Sicherheit in der Informationstechnik,
http://www.bsi.bund.de
[KA99]
Aktuelle juristische Informationen zu EDV-Fragen,
http://www.kanzlei.de/edvr.htm

A Verordnung zur digitalen Signatur

In der Verordnung zur digitalen Signaturen werden das Verfahren und die technischen Voraussetzungen für eine digitale Signatur geregelt. In insgesamt 19 Paragraphen werden Vorschriften für die Vergabe von Zertifikaten, die Gültigkeit von Zertifikaten und die Kontrolle gegeben. Dies sind im folgenden:

§ 1
Verfahren bei Erteilung, Rücknahme und Widerruf von Genehmigungen
§ 2
Kosten
§ 3
Antragsverfahren bei Vergabe von Zertifikaten
§ 4
Unterrichtung des Antragsstellers
§ 5
Erzeugung und Speicherung von Signaturschüsseln und Identifikationsdaten
§ 6
Übergabe von Signaturschlüsseln und Identifikationsdaten
§ 7
Gültigkeitsdauer von Zertifikaten
§ 8
Öffentliche Verzeichnisse von Zertifikaten
§ 9
Verfahren zur Sperrung von Zertifikaten
§ 10
Zuverlässigkeit des Personals
§ 11
Schutz der technischen Komponenten
§ 12
Sicherheitskonzept
§ 13
Dokumentation
§ 14
Einstellung der Tätigkeit
§ 15
Kontrolle der Zertifizierungsstellen
§ 16
Anforderungen an die technischen Komponenten
§ 17
Prüfung der technischen Komponenten
§ 18
Erneute digitale Signatur
§ 19
Inkrafttreten