 |
Sicherheit in Netzen
Prof. Jürgen Plate Dipl.-Ing. Jörg Holzmann |
5 Kryptologie
Kryptologie ist die Lehre vom Verschlüsseln
(Kryptographie) und Entschlüsseln (Kryptoanalyse). Sie ist
wesentliche technische Grundlage für die Sicherheit und den
Datenschutz in offenen Informations- und Kommunikationssystemen.
Andererseits ist sie ein Gebiet, in dem viele Teile der Mathematik
plötzlich im Zentrum außermathematischer Anwendungen
stehen.
Verschlüsselung ist ein wesentlicher Bestandteil
moderner Informationssicherheit. Chiffrierung, Kryptierung,
Codierung, Kryptografie. Es gibt viele Worte für
Verschlüsselung. Kryptografie kommt vom griechischen Kryptos
und Logos und meint "verstecktes Wort". Man unterscheidet
Kryptografie und Kryptoanalyse. Der Kryptologe entwickelt
Verfahren, um die Sicherheit von Informationen zu
gewährleisten. Der Kyptoanalyst versucht,
Verschlüsselungssysteme zu brechen. Dieses Kapitel
beschäftigt sich mit einigen Grundlagen der Kryprologie mit
Blick auf die Anwendung bei der Netzwerkadministration.
5.1 Kryptologie-Grundlagen
Verschlüsselungsmechanismen sind historisch gesehen immer
wieder Angriffen ausgesetzt gewesen und mußten deshalb mit
fortschreitender Technologie laufend verbessert werden. Das war und
ist ein nie endender Kreislauf. Man weiß, daß heute als
sicher anzusehende Verschlüsselungsverfahren irgendwann einmal
unsicher sind.Verschlüsselungsmechanismen bestehen heute aus
einem mathematischen Algorithmus und einem (manchmal auch zwei)
Schlüssel. Hinzu kommt, daß der Anwender von
Verschlüsselung dem Verfahren vertrauen können muß.
Im allgemeinen kann der Nachweis über die Sicherheit eines
Kryptoverfahrens niemals vollständig geführt werden, und
zwar in dem Sinne, daß es ohne Kenntnis des
Dechiffrierschlüssels, auch mit stärkstem
Computereinsatz, in der realen Welt nicht möglich ist, den
Ursprungstext innerhalb einer bestimmten Zeit zu rekonstruieren. In
der Theorie gibt es nur ein Kryptosystem, das unter dem Namen
"One-Time-Pad" bekannt ist, und das als absolut sicher gilt. Aber
in der Praxis ist es eher schwerfällig, da der Schlüssel
nur einmal verwendet werden kann, ohne die Sicherheit des Systems
zu verletzen. In einigen Fällen ist es möglich, den
Nachweis darüber zu bringen, daß die Auflösung des
Kryptosystems gleichwertig mit dem Lösen eines besonderen
mathematischen Problems ist, wie z. B. das Problem der
Faktorisierung von großen Zahlen. ("groß" bedeutet
hier, daß es sich um Zahlen von mehreren hundert Stellen
handelt). Wenn viele Mathematiker über viele Jahre hinweg
erfolglos an der Lösung dieses Problems gearbeitet haben, dann
gibt es Anlaß zu der Vermutung, daß ein Kryptosystem, das auf
diesem Problem basiert, als sicher angesehen werden kann. Man hat
deshalb vor etwa 30 Jahren begonnen, Algorithmen zu
veröffentlichen, weil man wollte, daß sie analysiert und
gegebenenfalls angegriffen werden. Natürlich ist die
Veröffentlichung von Algorithmen ein Risiko, weil ein
Geheimnis preisgegeben wird. Nachdem ein Algorithmus publiziert
war, erhielt der Schlüssel als einzige geheime Information die
wichtige Funktion, die Sicherheit zu gewährleisten. Angreifer
kennen den Algorithmus. Die einfachste Art der Kryptoanalyse ist
es, einem unachtsamen Anwender den Schlüssel zu entlocken.
"Brute Force"-Attacken (also der Versuch, alle mögliche
Schlüssel so lange zu testen, um irgend einen Chiffriertext zu
entziffern, bis der Schlüssel gefunden ist) können zum
Vergleich von Kryptosystemen herangezogen werden, da sich die
durchschnittliche Zeit, die für eine erfolgreiche
Brute-Force-Attacke aufgewendet werden muß, aus dem Produkt
der Hälfte der Anzahl aller möglichen Schlüssel mit
der Zeit ergibt, die für den Test eines einzigen
Schlüssels nötig ist. Es leuchtet ein, daß ein
Kryptosystem gegenüber einer Brute-Force-Attacke anfällig
ist, wenn die Größe des mit dem Kryptosystem
assoziierten Schlüsselraumes (d.h. die Menge aller
möglichen Schlüssel) klein ist. Besitzt das Kryptosystem
hingegen einen großen Schlüsselraum, ist eine
Brute-Force-Attacke nicht mehr sinnvoll. Im allgemeinen kann die
Sicherheit eines Kryptosystems nur durch seinen Widerstand gemessen
wenn, den es den aktuellen Versuchen in der Praxis entgegenstellt,
die das System aufbrechen wollen. Diejenigen, die geknackt worden
sind, haben offensichtlich keine Sicherheit. Diejenigen Systeme,
die der Aufmerksamkeit von vielen Kryptoanalytikern über viele
Jahre Widerstand geleistet haben, sind zur Sicherheit verurteilt,
zumindest solange, bis bessere Methoden der Krypotanalyse erfunden
werden. Um ein Kryptosystem als stark einzuschätzen, sollte es
die folgenden Eigenschaften besitzen:
- Die Sicherheit der verschlüsselten Daten besteht mehr in
der Geheimhaltung des Schlüssels, als in irgend einer
Geheimhaltung des Algorithmus. In anderen Worten, selbst wenn ein
Angreifer die vollen Einzelheiten der Methode kennt, die sowohl zur
Verschlüsselung als auch zur Entschlüsselung verwendet
wird, sollte ihm das nicht erlauben, den Chiffriertext zu
entziffern, sofern er nichts über den Schlüssel weiß,
der bei der Verschlüsselung benutzt wurde (es ist außerdem
ziemlich offensichtlich, daß seine Aufgabe noch schwieriger wird,
wenn er keine Kenntnis von der Methode hat.
- Ein starkes Kryptosystem hat einen großen Schlüsselraum,
d.h. daß es sehr viele mögliche Schlüssel gibt. DES
scheint in dieser Hinsicht von vielen als unzureichend angesehen zu
werden, da es nur 256 (ungefähr 1017)
mögliche Schlüssel umfaßt. Der Schlüsselraum
größer als 10100 sein, was in einem System
möglich ist, das 60 Zeichen als Schlüssellänge
erlaubt (vorausgesetzt, daß es nicht zwei Schlüssel gibt, die
gleiche Wirkung auf die Verschlüsselung haben)
- Ein starkes Kryptosystem wird Chiffriertext erzeugen, der
für alle statistische Standardtests zufällig erscheint.
Eine volle Diskussion dieser Testverfahren übersteigt den
Rahmen dieser Einführung über die Verwendung von
Verschlüsselungssoftware.
Es gibt viele legitime Gründe, Information zu schützen,
z.B.:
- Firmen besitzen oft Datenbanken über ihre Angestellten,
die vertraulichen Schutz geniessen, wie etwa medizinische
Aufzeichnungen, Gehaltslisten usw. Angestellte würden sich
sicherer fühlen, wenn sie wissen, daß diese Dateien
verschlüsselt und für eine beiläufige Inspektion
durch Büroangestellte, die mit der Aufgabe der Dateneingabe
betraut sind nicht zugängig sind.
- Personen teilen möglicherweise den Arbeitsplatz mit
anderen, über deren Vertrauenswürdigkeit sie sich nicht
im Klaren sind, und sie könnten eine Absicherung haben wollen,
daß im Fall ihrer Abwesenheit niemand etwas herausfinden kann,
indem er in ihrer Festplatte herumschnüffelt.
- Eine Firma möchte sensible Geschäftsdaten zwischen
zwei Orten, etwa den Zweigstellen, übertragen. Oder sie
könnte die Absicht haben, vertrauliche Informationen (z.B.
Verhandlungspositionen, Verfahrensweisen oder Eigentumsnachweise)
an einen Bereichsagenten (unter Umständen ins Ausland) zu
senden. Wenn die Information vor der Versendung verschlüsselt
wird, dann braucht sich niemand darüber Sorgen machen, ob
diese Sendung abgefangen werden kann, denn die verschlüsselten
Daten sind unverständlich (ohne den
Dechiffrierschlüssel).
- Ein Mitbewerber hat Interesse an Informationen aus der eigenen
Firma, z. B. Forschungsresultate, Kunden, Formeln und Rezepturen
oder Details über Herstellungsprozesse, zukünftige
Fusions- und Expansionspläne oder Pläne für die
Entwicklung neuer Produkte.
- Eine Person oder eine Firma beabsichtigen, einen Computer, der
sensible Informationen enthält, an einen entfernten Ort zu
transportieren, ohne sich Gedanken darüber machen zu
müssen, ob der Computer während seiner Reise untersucht
wird.
- Außendienstmitarbeiter sollen ans Firmennetz angebunden
werden, verwenden aber unsichere Übertragungswege
(Telefonnetz, Internet).
- Zwei Personen haben vielleicht die Absicht, über private
Dinge per E-Mail zu korrespondieren.
Verschlüsselung ist somit der zentrale und vielseitige
Schutzmechanismus. Verschlüsselung ist bei den folgenden
Sicherheitsfunktionen beteiligt:
- Authentizität
Sicherstellung, daß eine Information auch wirklich von dem Absender stammt, der
ausgibt, der Absender zu sein.
- Vertraulichkeit
Sicherstellung, daß eine Information nur von demjenigen gelesen werden kann,
für den sie bestimmt ist.
- Integrität
Sicherstellung, daß eine Information auf ihrem Transportweg nicht verändert wird.
- Verbindlichkeit
Sicherstellung, daß eine Information vertrauenswürdig ist.
Diese vier Kriterien müssen erfüllt sein, wenn eine optimale Datensicherheit
gewährleistet sein soll. Für jedes Kriterium gibt es eigene
Lösungsmöglichkeiten, die Kunst liegt aber darin, mit einem
Verschlüsselungssystem möglichst alle vier Kriterien gleichzeitig
zu erfüllen.
Benutzerauthentisierung
Benutzer von Computern zur lokalen oder entfernten Bearbeitung
und Speicherung von Informationen müssen sich als berechtigte
Personen ausweisen, um Zugang zu erhalten. Das Thema wurde bereits
in Kapitel 3 ausführlich besprochen, deshalb erfolgt hier nur
eine kurze Zusammenfassung. Die Zugriffskontrolle wird heute
überwiegend mittels Benutzerkennung und Paßwort
durchgeführt.Neben dem bekannten Paßwort wierden
zunehmend PIN-Codes, Smart-Cards oder biometrische Merkmale
eingesetzt.
Datenauthentisierung
Man unterscheidet die beiden Authentisierungsarten
- Datenauthentisierung und
- Authentisierung des Absenders.
Daten können in Computersystem und auf Kommunikationswegen
von Unberechtigten Personen verändert werden. Ein großes
Problemm stellt die Tatsache dar, daß man eine Manipulation
oft nicht erkennen kann. Durch auf Verschlüsselung basierende
Integritätsprüfungen von Daten kann man Manipulationen
zwar nicht verhindern, aber erkennen. Für den Empfänger
einer Information ist es wichtig zu wissen, wer sie abgesandt hat
denn jeder könnte sich als ein anderer ausgeben und dessen
Rolle übernehmen. Das ist nicht nur bei Nachrichten wichtig.
Besonders, wenn es um kaufmännische Vorgänge wie z. B.
Bestellungen oder Zahlungen geht, ist eine eindeutige
Authentisierung des Datenabsenders notwendig.
Integritätsprüfung der Daten
Die Integritätsprüfung ist immer im Zusammenhang mit
der Prüfung des Datenabsenders zu sehen. Das ausforschen von
Daten, beispielsweise durch "Abhören" der Leitung ist
ausschließlich eine Frage der Kosten. Das Lesen und
Ändern von Nachrichten ist schwieriger als nur Lesen. Bei
jeder Form von Kommunikation sollte die Frage der Erhaltung der
Datenintegrität selbstverständlich sein. Denken Sie
daran, daß Personen existieren könnten, denen jeder
Geldaufwand recht ist, um dem Wettbewerber Schaden zuzufügen
oder an sein Wissen heranzukommen. Und vergessen Sie nicht:
Information ist mittlerweile zu einem der wichtigsten
Produktionsfaktoren avanciert.
Authentisierung des Absenders einer Nachricht
Man muß sicherstellen, daß die Person, die
behauptet, Urheber einer Nachricht zu sein, sie auch wirklich ist.
Dazu ein Beispiel: Ein unbekannter Dritter (Bad Boy) sendet eine
Information an B und gibt vor, sie kommt von A oder A sendet eine
Information an B. Der unbekannte Dritte fängt sie ab,
ändert sie und sendet sie weiter an B.
Obwohl die Datenauthentisierung aus zwei Komponenten besteht
wird sie mit einem Mechanismus durchgeführt. Aus der Menge der
Bits einer Information wird eine Prüfsumme (Hash) errechnet
die mit dem geheimen Schlüssel
(Public-Key-Verschlüsselung, siehe später) des Absenders
verschlüsselt wird. Sie wird mitgesandt. Der Empfänger
ermittelt dieselbe Prüfsumme und verschlüsselt sie mit
dem öffentlichen Schlüssel des Absenders. Stimmen beide
Prüfsummen überein, sind die Integrität der
Information und ihr Ursprung bewiesen. Das ist das Prinzip der
digitalen Signatur, die später näher erläutert
wird.
Verbindlichkeit von Daten
Sie soll sicherstellen, daß der Urheber einer Information
(z.B. einer Bestellung) diese nicht leugnen kann. In der Welt von
Kugelschreiber und Papier übemimmt diese Funktion die
handgeschriebene Unterschrift. Ein Sicherheitssystem muß
durchgängig die Beweisbarkeit des Ursprungs einer Information
sicherstellen. Dazu gehört neben der oben beschriebenen
Datenauthentisierung auch die sorgfältige
Schlüsselgenerierung, die gewährleistet, daß kein
anderer persönliche geheime Schlüssel kennen kann.
Deshalb werden Schlüssel möglichst vom Benutzer selbst
generiert. Hinzu kommen Zertifikate, die eine
vertrauenswürdige Stelle (Trust Center) ausgestellt hat und
die untrennbar mit der Identität des Besitzers verbunden sind.
Zertifikate enthalten unter anderem die Benutzerkennung, den
öffentlichen Schlüssel ihres Besitzers und ein
Gültigkeitsdatum. Sie sind mit dem geheimen Schlüssel des
Trust Centers signiert und können von jedem Empfänger auf
ihre Echtheit überprüft werden. Sie dienen der
Verbindlichkeit signierter Nachrichten.
Vertraulichkeit von Daten
Die Wahrung der Vertraulichkeit ist die älteste und
bekannteste Funktion der Verschlüsselung. Heute spielt diese
Form der Verschlüsselung neben der Benutzerauthentisierung
eine große Rolle, vor allem in der Wirtschaft.
Vertraulichkeit wird auch vom Datenschutzgesetz gefordert.
Maßnahmen zum Schutz der Vertraulichkeit können
Wirtschafts- oder Konkurrenzspionage wirksam verhindern. Mit einem
Verschlüsselungsmechanismus wird ein Text (Klartext) in einen
unverständlichen Schlüsseltext umgewandelt. Der
Empfänger eines Schlüsseltextes wandelt diesen mit
demselben Verschlüsselungsmechanismus in Klartext zurück.
Der Schlüssel ist alles, was ein Teilnehmer in einer
verschlüsselten Kommunikation benötigt. Er ist unbedingt
geheimzuhalten. Die verwendeten Verfahren und Programme sollten
- ausreichend sicher sein und
- keine absichtlichen Hintertüren (Trap Doors) enthalten,
die eine unberechtigte Entschlüsselung der Daten
ermöglichen würden.
Moderne Verschlüsselungssysteme basieren auf einem
Schlüssel, d.h. es wird ein einheitliches Programm zur Ver-
und Entschlüsselung verwendet, das zum Ver- und
Entschlüsseln einen Schlüssel benötigt. Dieser
Schlüssel beeinflußt aktiv den
Verschlüsselungsalgorithmus des Programms und erzeugt eine
verschlüsselte Datei. Ein Schlüssel besteht aus einer
Abfolge von Bits. Während die ersten Generationen von
Verschlüsselungsmechanismen mit Schlüsselgrössen von
40 bis 56 Bits arbeiteten, arbeiten heutige Mechanismen in der
Regel mit 128 Bits, PGP beispielsweise sogar mit Schlüssel von
bis zu 2.048 Bits. Zum Vergleich: In Frankreich benötigten
1997 120 zusammengeschaltete Computer einen Monat, um einen
Schlüssel zu knacken, der eine Länge von lediglich 40 Bit
aufwies.
Es gibt bei der Verschlüsselung zwei grundsätzlich
unterschiedliche Ansätze:
- symmetrische Verschlüsselung (Secret Key Encryption) und
- asymmetrische Verschlüsselung (Public Key Encryption).
5.2 Symmetrische Verschlüsselung
In symmetrischen Verschlüsselungsverfahren existiert ein
Schlüssel, der gleichzeitig beim Absender zum Ver- und beim
Empfänger zum Entschlüsseln einer Nachricht verwendet
wird. Symmetrische Verschlüsselungsalgorithmen sind sehr
schnell und auch sehr sicher, wenn z. B. ein Schlüssel nur
für den Datenaustausch zwischen zwei Personen verwendet wird
und er über einen sicheren Weg weitergegeben wird (z. B.
direkte Schlüsselübergabe vom Hand zu Hand). Die
Schwierigkeiten beginnen, wenn der Schlüssel nicht so ohne
weiteres persönlich an den Empfänger übergeben
werden kann. Kommt ein Unbefugter in den Besitz des
Schlüssels, kann er alle Nachrichten entschlüsseln, die
mit diesem Schlüssel codiert wurden und auch eigene
Nachrichten mit diesem Schlüssel codieren und sich selbst als
Absender ausgeben. Das bekannteste symmetrische
Verschlüsselungsverfahren ist der DES ("Data Encryption
Standard"), der in den 70er Jahren von IBM entwickelt wurde und mit
einer Schlüssellänge von 56 Bit arbeitet. Zur
Verschlüsselung gibt es u. A. folgende, teilweise Jahrhunderte
alte, Verfahren:
- Verschiebung von Alphabeten
- Ersatz von Zeichen (Substitution)
- Vertauschen von Bits (Permutation)
- Algebraische Methoden
Ein klassisches Verfahren ist ROT13, eine Verschiebechiffre auf
dem Alphabet {A, ..., Z}, die bei E-Mail und
Usenet-News-Nachrichten verwendet wird. Es wird jeder Buchstabe
durch denjenigen ersetzt wird, der im Alphabet 13 Stellen weiter
steht. Als Hilfe dient die Tabelle
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
Als Verschlüsselung ist das trivial; der Zweck ist, bestimmte
Textteile, etwa anstößigen Inhalts, vor der direkten
Lesbarkeit zu schützen - das Lesen ist dann ein bewusster Akt.
Da 13 + 13 = 26, stellt die doppelte Verschlüsselung den
Klartext wieder her, anders ausgedrückt: Verschlüsselung
= Entschlüsselung.
Eines der bekanntesten moderenen
Verfahren ist der DES Algorithmus (Data Encryption Standard), der
bei der ISO als DEA-1 bezeichnet wird. Hier wird ein Text in
Blöcke von 64-Bit-Binärworten eingeteilt und blockweise
mit einem 56-Byte Schlüssel verschlüsselt. Dazu wird auf
den Klartext 16mal eine Kombination von Substitution und
Permutation angewandt. Der Algorithmus wurde später
weiterentwickelt zum 3-fach DES (Triple DES), hier wird mit zwei
Schlüsseln gearbeitet. Der Test wird mit Schlüssel 1
verschlüsselt, mit Schlüssel 2 entschlüsselt und
wieder mit Schlüssel 1 verschlüsselt. RC2 und RC4 sind
Verschlüsselungsalgorithmen mit variabler
Schlüssellänge. Die Algorithmen sind in einer Reihe
kommerzieller Produkte verfügbar (Netscape, Novell Netware,
Lotus Oracle ...). Die Verschlüsselungsgeschwindigkeit
hängt nicht von der Schlüssellänge ab.
Üblicherweise wird eine Schlüssellänge von 128 Bit
verwendet, für den Export wird die Schlüssellänge
auf 40 Bit beschränkt. Ein weiteres bekanntes Verfahren ist
der 1990 entwickelte IDEA-Algorithmus. Mit einer
Schlüssellänge von 128 Bit werden Blocks von 64 Bit
Länge verschlüsselt. Hierbei wird durch bitweises
Exclusiv-Oder, durch Addition mod 216 (65536) sowie Multiplikation
modulo 216+1 (65537) ein verschlüsselter Text erzeugt. IDEA
gilt als sicherer als DES oder sogar Triple DES.
5.3 Asymmetrische Verschlüsselung
In asymmetrischen Verschlüsselungsverfahren existieren zwei verschiedene,
gleichlange Schlüssel, die mathematisch miteinander
zusammenhängen, der "Private Key" und der "Public Key":
- Der Private Key verbleibt
grundsätzlich beim Eigentümer des Schlüssels und
wird ausschließlich zum Entschlüsseln von
verschlüsselten Nachrichten verwendet, die mit dem
zusammengehörenden Public-Key verschlüsselt
wurden.
- Der Public Key ist der
öffentliche Schlüssel des Schlüsselpaares, den der
Eigentümer des Schlüssels zunächst an einen Absender
übergeben muß, damit dieser seine Nachrichten an den
Eigentümer mit ihm verschlüsseln kann. Dabei kann der
Public Key jedermann bekannt sein.
Beide Schlüssel stehen in einem
komplexen mathematischen Zusammenhang. Asymmetrische
Verschlüsselungsverfahren arbeiten deutlich langsamer als
symmetrische, sind jedoch auch in Mehrnutzerumgebungen (z. B.
Netzwerke oder das Internet) sicher, da der Schlüssel zur
Entschlüsselung immer beim Eigentümer verbleiben kann und
er niemandem bekannt sein muß.
Den interessantesten Ansatz, der auch
schon rege benutzt wird, stellt ein mathematisches Verfahren dar,
das auf Verwendung von Methoden der Restklassenalgebra (auf
Primzahlen) basiert. Entwickelt wurde dieses Verfahren von den
Amerikanern Rivest, Shamir und Adleman, die auch ein Patent auf
einen entsprechenden Algorithmus haben
(RSA-Algorithmus).
Ein anderes Verfahren ist DSA (Digital
Signature Algorithm). Während RSA universell einsetzbar ist,
ist DSA nur für digitale Signaturen einsetzbar. Es gibt zwei
wesentliche Anwendungen:
- Verschlüsselung: Hier wird eine
Nachricht mit einem public key verschlüsselt, sie kann dann
mit Hilfe eines nur dem Empfänger bekannten private keys nur
von diesem Empfänger gelesen werden.
- Elektronische Signatur (z.B. in
Mailsystemen): Hier kann eine Nachricht mit Hilfe eines nur dem
Sender bekannten private keys signieren. Jeder mögliche
Empfänger kann dann mit Hilfe des Public Keys
überprüfen, ob die Nachricht auch wirklich authentisch
ist, d.h. ob sie wirklich vom angegebenen Sender
stammt.
In einer bestehenden Verbindung
können auch beide Verfahren gleichzeitig zur Anwendung kommen,
dann benötigen Sender und Empfänger zwei entsprechende
Schlüsselpaare. Basis für die Berechnung von
Schlüsseln sind möglichst große Primzahlen (100 bis
über 200 Bits), wobei das Produkt dieser Primzahlen Teil der
Schlüssel ist. Es wird vorausgesetzt, daß es genauso
schwierig ist, einen mit einem Public Key verschlüsselten Text
mit demselben Schlüssel wieder zu entschlüsseln, wie die
Zerlegung des Produkts zweier Primzahlen zu finden. Ein
Angriffspunkt ist jedoch die Verbreitung des öffentlichen
Schlüssels. Man kann seinen öffentlichen Schlüssel
in einer Datei speichern, die man dann an seine Freunde weitergeben
oder im Internet veröffentlichen kann. Was aber, wenn ein
Fremder einen öffentlichen Schlüssel unter Ihrem Namen
veröffentlicht? Eine mit diesem Schlüssel chiffrierte
Nachricht kann dann nur von dem Fremden gelesen werden und nicht
von Ihnen.
Im folgenden wird gezeigt, wie man
prinzipiell die Schlüssel berechnen kann: Wissen Sie aus Ihrer
Schulzeit noch, was Primzahlen sind? Das sind Zahlen, die nur durch
sich selbst und durch 1 teilbar sind. Also z. B. 2, 3, 5, 7, 11,
13, 17, 19, 23, 29, aber auch 28 + 1 = 257 und 216 + 1 = 65537.
Machen Sie es sich einfach und nehmen Sie die Primzahlen p=13 und
q=19. Damit ergibt sich das Produkt
n = p*q = 247
Um den Public Key zu finden, wird noch die Funktion
s = (p-1)*(q-1)
benötigt, hier ergibt sich s zu 12 * 18 = 216.
Nun wählt man einen Public Pey (e,n) so, daß e und s
keinen anderen gemeinsamen Teiler besitzen als die Zahl 1. Hier
könnte z.B. e = 5 zufällig gewählt werden. Der
Public Key ist in diesem Beispiel damit (5,247). Ein Private Key
(d,n) wird nun so gewählt, daß der Rest der ganzzahligen
Division von d*e/s den Wert 1 ergibt. Hier
kann z.B. d = 173 gewählt werden. Damit ist der Private Key
(173,247). Sind die Schlüssel generiert, werden p und q
vernichtet Verschlüsselt wird nun die Nachricht im Klartext, z. B. ein
ASCII-Zeichen mit dem Wert 12:
- Verschlüsselung:
125/247 = 248832/247 = 1007 Rest 103,
damit ist "103" nun der verschlüsselte Text
- Entschlüsselung:
103173/247 = 1663*10349/247 = xxxx Rest 12,
damit ist der entschlüsselte Text "12"
5.4 Hybride Verschlüsselungsverfahren
Aufgrund der Langsamkeit des
asymmetrischen und die Verwundbarkeit des symmetrischen Verfahrens,
ist man dazu übergegangen, in Verschlüsselungssysteme
beide Verfahren zu kombinieren. Prinzipiell wird in hybriden
Verschlüsselungsverfahren die zu verschlüsselnde Datei
zunächst mit einem symmetrischen Verschlüsselungsverfahren
bearbeitet und der dazu verwendete Schlüssel mit einem asymmetrischen
Verschlüsselungsverfahren nachbearbeitet. Auf die Weise ist
die verschlüsselte Datei genauso sicher, wie bei einem
herkömmlichen symmetrischen oder asymmetrischen Verfahren. Die
gesicherte Kommunikation läuft dann in vier Schritten ab:
-
Zunächst wird durch eine zufällige Generierung ein Sitzungsschlüssel
(wird nur dieses eine Mal verwendet) für das symmetrische
Verschlüsselungsverfahren erzeugt.
-
Dann wird dieser Sitzungsschlüssel mit Hilfe des öffentlichen
Schlüssels des Empfängers verschlüsselt. Hierdurch
wird ein gesicherter Kanal für den Schlüsselaustausch des
asymmetrischen Verfahrens geschaffen.
-
Letztlich werden die eigentlichen "Nutzdaten" mittels des Sitzungsschlüssels mit
symmetrischen Verfahren chiffriert und das Ganze an den
Empfänger übertragen.
-
Der Empfänger entschlüsselt zunächst den Sitzungsschlüssel mit
Hilfe seines privaten Schlüssels für das asymmetrische
Verfahren und kann dann mit diesem Schlüssel die chiffrierte
Nachricht entschlüsseln und einsehen.
Diffie und Hellmann gehen beispielsweise den Weg, lediglich den Schlüsselaustausch
über ein asymmetrisches Verfahren zu realisieren, bei dem
Verfahren für die Verschlüsselung der Daten gehen sie
aber von einem symmetrischen Verfahren aus. Philip Zimmermann vom
MIT hatte das RSA-Verfahren mit anderen kryptographischen Methoden
kombiniert. Herausgekommen ist das leicht zu bedienende
Freeware-Programm "pretty good privacy" (PGP), das inzwischen
weltweit verbreitet ist und überall einen hervorragenden Ruf
genießt.
Natürlich gibt es kein absolut sicheres kryptographisches Verfahren.
Auch das von Public-Key-Verfahren hat Sicherheitsrisiken. Da wäre
zum einen die Verwaltung der Schlüssel. Selbstverständlich ist,
daß Sie keinem anderen Menschen den Zugang zu Ihrem privaten Schlüssel
erlauben. Sollte jemand nun in den Besitz Ihres Paßwortes gelangen, so
kann er alle Ihre Dateien entschlüsseln und Ihre elektronische Signatur benutzen.
Ein weiterer Angriffspunkt ist die Verbreitung des öffentlichen Schlüssels.
Sie können Ihren öffentlichen Schlüssel in einer Datei speichern,
die Sie dann an Ihre Freunde weitergeben oder im Internet veröffentlichen
können. Was aber, wenn ein Fremder einen öffentlichen Schlüssel
unter Ihrem Namen veröffentlicht? Eine mit diesem Schlüssel chiffrierte
Nachricht kann dann nur von dem Fremden gelesen werden und nicht von Ihnen.
Am besten wäre es, wenn es eine vertrauenswürdige Institution
gäbe, die eine Art Telefonbuch der öffentlichen Schlüssel
führen würde. Leider wird es diese Institution auf absehbare Zeit
nicht geben. Also müssen Sie sicherstellen, daß ein von Ihnen
benutzter öffentlicher Schlüssel auch wirklich der gewünschten
Person gehört.
Einen weiteren Angriffspunkt gibt es zumindest theoretisch. Mit enormem
Rechenaufwand ist es möglich, aus dem öffentlichen Schlüssel
den dazugehörigen privaten Schlüssel auszurechnen. In der Praxis
gibt es niemanden, der eine solche Rechenkraft zur Verfügung hat, denn
selbst auf den momentan leistungsfähigsten Rechnern der Welt würde
das Knacken eines Schlüssels der geringsten Sicherheitsstufe noch mehrere
Wochen benötigen.
Beispiel: Mail-Verschlüsselung mit PGP
Vergleich mit Ein-Schlüssel-Verfahren (z.B. DES)
Nachteil: Geheimer Schlüssel muß beiden Verbindungspartnern
bekannt sein.
Verfahren mit öffentlichem Schlüssel (z. B. PGP)
Versenden von verschlüsselter Mail:
- Geheimer Schlüssel bleibt privat und muß dem Verbindungspartner
nicht bekannt sein.
- Statt dessen gefahrloser Austausch des öffentlichen Schlüssels
(auch über einen unsicheren Kanal möglich).
- Elektronische Unterschrift möglich.
- Quellcode des Verschlüsselungsverfahrens frei verfügbar.
Zum Weiterlesen:
Manuela Jürgens: PGP - Briefumschläge für
Ihre Emails
5.5 Digitale Signaturen
Zur Verwendung für Signaturen besteht das Problem, daß ein großer
Aufwand getrieben wird, wenn die gesamte Nachricht verschlüsselt
werden muß. Abhilfe schafft die Verwendung sogenannter
Einweg-Prüfsummen (oder "Message Digests" bzw. "One Way
Hash"-Funktionen) h=H(M), wobei M die Nachricht ist (M für
Message). Ein solcher Message Digest besitzt (unabhängig vom
Umfang der zu sichernden Nachricht) eine feste Länge m (wie
z.B. 64 oder 128 bit, das National Institute of Standards and
Technology NIST empfiehlt 160 bit für Hashfunktionen). Damit
werden die Verschlüsselungs- und Entschlüsselungszeiten
gegenüber der Zeit zur Verschlüsselung der ganzen
Nachricht erheblich verkürzt. Um fälschungssichere
Nachrichten zu senden, muß ein Message Digest so generiert
werden, daß folgende Eigenschaften erfüllt
sind:
- Mit vorgegebenem M kann man h leicht berechnen
- Mit vorgegebenem h kann man M kaum berechnen
- Mit gegebenem M kann man kaum einen andere Nachricht N mit Message
Digest H(N) = H(M) finden.
Sehr oft ist auch noch eine weitere Eigenschaft, die sogenannte Kollisionsresistenz
erforderlich: Es ist schwierig, zwei
beliebige Nachrichten M und N zu finden mit H(M) = H(N) Der
entsprechende Message Digest identifiziert damit eindeutig eine
bestimmte Nachricht, er liefert sozusagen einen
eindeutigen Fingerabdruck. Das folgende Beispiel zeigt, was
geschieht, wenn die Kollisionsresistenz nicht erfüllt
ist:
- Mr. Badboy bereitet zwei Versionen eines Vertrags vor. Eine
begünstigt Mr. Braindead, die andere benachteiligt ihn.
- Mr. Badboy bringt an
jedem Dokument einige kleine Änderungen an und berechnet
für jede Version den Hashwert. Nehmen wir an, er erzeugt so
232 Dokumente.
- Er vergleicht danach die
Hashwerte aller Versionen der beiden Dokumente und sucht
übereinstimmende Paare. Er rekonstruiert die beiden Dokumente,
die denselben Hashwert liefern.
- Mr. Badboy läßt Mr. Braindead die Vertragsversion unterzeichnen,
die ihn begünstigt. Er benutzt dabei aber ein Protokoll, bei
dem nur der Hashwert unterzeichnet
wird.
- Später ersetzt Mr.Badboy den von Mr. Braindead unterschriebenen Vertrag
durch die Version mit dem gleichen Hashwert, die Mr. Braindead nicht
unterschrieben hat und das Schlamassel ist perfekt.
Es gibt verschiedene Einweg-Hashfunktionen. Die bekanntesten sind:
- Snefru (128 bzw. 256 bit)
- N-Hash (128 bit)
- MD2, MD4 und MD5 (MD steht für Message Digest, 128 bit)
- SHA (Secure Hash Algorithm, 160 bit)
Digitale Signatur und Public Key Verfahren werden häufig kombiniert und
gewährleisten damit Sicherheit und Authentizität.
Beispiel: Elektronische Unterschrift mit PGP:
- Der Absender einer Nachricht verschlüsselt mit seinem privaten
Schlüssel eine persönliche Notiz (= digitale Unterschrift).
- Der Empfänger erhält vom Absender dessen öffentlichen
Schlüssel.
- Nun kann der Absender am Ende jeder seiner Nachricht seine digitale
Unterschrift anhängen.
- Der Empfänger kann mit dem öffentlichen Schlüssel des
Absenders dessen digitale Unterschrift verifizieren.
---------BEGIN PGP SIGNATURE-------
Vesion: 2.6.2i
iQB1AwUBMALA1zhgfzaigfhdfgakgpfhbvf35iztikahffhkfdfgflgfgGRFG
hdfgfgfgf9trerzutibvie04374ggisezrfwjegrrvyaaSDE7e4378723EEaq
hdc<23adsfqe124da<dafbbbigfb££hvdfvedfvd
=8e>Asd
---------END PGP SIGNATURE---------
5.6 Zertifikate
Auch mit modernen Verschlüsselungsverfahren ist die Verbindlichkeit der
Nachricht ohne zusätzliche Massnahmen nicht kontrollierbar.
Deshalb muß ein öffentlicher Schlüssel
"vertrauenswürdig" eingestuft werden, wenn damit wirklich
sicher kommuniziert werden soll. Am sichersten ist diese
Vertrauenswürdigkeit herzustellen, indem der Empfänger
dem Absender seinen Public-Key persönlich überreicht und
gleichzeitig seinen Personalausweis vorzeigt. Dies ist jedoch z. B.
bei Online-Shops nicht realisierbar. Deshalb gibt es "Certificate
Authorities" (CA), die eine solche "Zertifizierung" vornehmen. Sie
überprüfen die Identität des Absenders und
unterschreiben als Nachweis den Public-Key des Besitzers mit ihrem
eigenen Private-Key und garantieren so die Identität. Zur
weiteren Sicherheit sind alle Zertifizierungen zeitlich befristet
und müssen regelmässig wiederholt werden. Zusätzlich
werden alle unterschriebenen Zertifikate von der CA
veröffentlicht. Die Vertrauenswürdigkeit einer CA wird
anhand von gesetzlichen Grundlagen und stichprobenartigen
Überprüfungen gesichert.
Besitzer einer Website können sich bei einer Zertifizierungsstelle ein
Site-Zertifikat ausstellen lassen, das in die Serversoftware
integriert wird und geschützte Verbindungen zu der Site
ermöglicht. Entsprechend ausgerüstete Browser können
dann diese gesicherten Seiten genauso nutzen wie normale Webseiten.
Diese Technologie namens SSL ("Secure Sockets Layer") wurde von
Netscape entwickelt (siehe Kapitel 8). Darüberhinaus gibt es
im SSL-Verfahren noch eine zusätzliche Möglichkeit der
Client-seitigen Authentifizierung, zum Beispiel anwendbar für
Server, zu denen nur bestimmte Rechner einen Zugang haben sollen:
Hier muß auch der Client ein Zertifikat besitzen und dieses
mit dem Server austauschen. Der Server hat dabei die
Möglichkeit, eine sichere Verbindung zu verweigern, wenn das
Zertifikat des Clients nicht akzeptiert wird.
Der wichtigste Standard für digtale Zertifikate ist der X.509
Standard. Ein X.509 Zertifikat, das Alice an Bob schicken kann,
muß folgende Informationen enthalten:
- Den Namen des Eigentümers des Zertifikats (Bob)
- Einen seiner öffentlichen Schlüssel (public key)
- Den Namen der CA
- Eine digitale Signatur der CA
Nachdem verschiedene Algorithmen für digitale Signaturen verwendet
werden können, muß der benutzte Algorithmus ebenfalls
angegeben werden. Zudem haben Zertifikate oft eine begrenzte
Gültigkeit. Zertifikate können bei Mißbrauch von
der austellenden CA widerrufen werden. Sie veröffentlich dazu
eine sogenannte Certificate Revocation List (CRL), die periodisch
aktualisiert wird. Jeder Teilnehmer einer Kommunikation, der ein
Zertifikat erhält kann anhand dieser Liste
überprüfen, ob es noch gültig ist. Für jedes
Schlüsselpaar (private und public key) wird ein eigenes
Zertifikat ausgestellt. Wenn genügend Personen einer
bestimmten Certificate Authority vertrauen, läßt sich so
eine ganze Hierarchie von gesicherten Verbindungen realisieren.
Wichtig zu wissen ist, daß nicht der Besitz eines Zertifikats
ausschlaggebend für den Nachweis einer Identität ist
(Zertifikate sollen ja frei verteilt werden können), sondern
der Nachweis, daß man im Besitz des private keys ist, der zum im
Zertifikat genannten public key gehört.
5.7 Schlüsseltausch
Es wurde bisher gezeigt, daß asymmetrische Verschlüsselung auf
einen sicheren Übertragungskanal zum Austausch von
Schlüsseln verzichten kann. Auf der anderen Seite aber sind
asymmetrische Verschlüsselungsverfahren wesentlich aufwendiger
als symmetrische. Daher werden gerade zur Verschlüsselung
langer Nachrichten nach wie vor gerne symmetrische
Verschlüsselungsverfahren bevorzugt. Hier stellt sich aber,
wie bereits gesagt, das Problem des Schlüsseltausches vor der
eigentlichen Nachrichtenübertragung. Der häufigste Weg,
eine gesicherte Verbindung aufzubauen, ist, daß einer der
Kommunikationspartner (z.B. Bob) einen secret key an den
anderen Kommunikationspartner (Alice) überträgt, in dem
er ihn mit dem public key von Alice verschlüsselt.
Für die eigentliche Dauer der Kommunikationsbeziehung wird nun
als Sitzungsschlüssel der secret key verwendet.
Hier ist allerdings noch zu klären:
- Wie der Sitzungsschlüssel generiert wird
Der Sitzungsschlüssel kann entweder durch Bob selbst erfolgen
und dann auf geeignetem Weg zu Alice transportiert werden (z.B.
verschlüsselt mit dem public key von Alice) oder aber durch
das Einschalten einer neutralen Stelle, mit der beide
Kommunikationspartner vorab einen Schlüssel vereinbart
haben.
- Wie Bob den public key von Alice erhält
Bob kann den public key entweder von Alice selbst oder aus einer
Datenbank für public keys eines Dritten (Trust Center oder CA)
erhalten haben Die letztere Variante hat den Vorteil, daß
eine Kommunikation auch mit einem anderen (auch bisher unbekanntem)
Gesprächspartner erfolgen kann, wenn derjenige einen public
key besitzt, der dem Trust Center bekannt ist.
- Wie Bob sicher sein kann, daß er überhaupt mit Alice kommuniziert
Hier müssen entsprechende Verfahren zur Verteilung
öffentlicher Schlüssel zum Einsatz kommen oder einen
Mechanismus geben, mit dem nachgewiesen werden kann, daß die
Verteilung richtig erfolgt ist.
Eine mögliche Variante des Schlüsseltauschs für
symmetrische Schlüssel ist das Diffie-Hellmann-Verfahren. Es
funktioniert wie folgt:
- Bob und Alice einigen sich auf zwei natürliche Zahlen s und p, wobei p
eine große Primzahl ist und s < p. s und p können auch öffentlich
bekannt sein.
- Bob wählt nun eine sehr große Zahl a < p-1, Alice
entsprechend b < p-1. Diese Zahlen werden geheimgehalten.
- Bob berechnet A = sa MOD p und Alice
berechnet B = sb MOD p. Dann schickt
jeder dem anderen sein Ergebnis.
- Bob berechnet k = Ba MOD p und Alice
berechnet k' = Ab MOD p. k bzw. k' ist
der gemeinsame Schlüssel.
Eläuterung: Es gilt
Ab MOD p = (sa)b MOD p = sab MOD p
und
Ba MOD p = (sb)a MOD p = sba MOD p
sowie
k' = sba MOD p = sab MOD p = k
Die Partner können k direkt als Schlüssel verwenden oder aus
k den Schlüssel eines symmetrischen Verfahrens errechnen.
Statt einer direkten Kommunikation gibt es die Möglichkeit für
den Generation oder aber auch nur den Austausch von Schlüsseln
eine dritte Stelle einzuschalten, der beide vertrauen. Diese Stelle
wird als Schlüsselverteilungszentrum (Key Distribution Center
KDC), Trusted Authority (TA) oder Trust Center bezeichnet.
Beispielsweise kann sich nun einer der Kommunikationspartner (Bob)
an das Trust Center wenden, um einen Sitzungsschlüssel
für die Kommunikation mit einem anderen Teilnehmer (Alice) zu
erhalten. Dieser wird vom Trust Center generiert und in zwei
Versionen (jeweils verschlüsselt mit den öffentlichen
Schlüsseln von Bob und Alice) an Bob gesandt. Bob decodiert
seinen Sitzungsschlüssel und sendet die zweite Version an
Alice, der seine Version des Sitzungsschlüssels ebenfalls
dekodiert. Damit kann der Sitzungsschlüssel für die
nachfolgende Kommunikationsbeziehung verwendet werden.
Eines der grundsätzlichen Probleme bei der Verteilung von public keys
ist das Problem, eine Vetrauenskette zu bilden. PGP geht beispielsweise davon
aus, daß jeder Benutzer seine eigenen Kriterien hat, nach denen er
anderen zertifizierten Schlüsseln vertraut und wie weit er
diesen Zertifikaten vertraut. PGP erlaubt daher eine beliebige
Verflechtung von Zertifikaten. Ein Benutzer signiert nun
zunächst seinen public key selbst und kann nun seinen
Schlüssel mit beliebigen anderen E-Mail Teilnehmern
austauschen und deren Schlüssel ebenfalls signieren. Im Lauf
der Zeit ergibt sich eine Sammlung unterschiedlichster
Schlüssel und Zertifikate die als Key Ring bzw.
Schlüsselbund bezeichnet wird. Zu jedem Schlüssel wird
gespeichert ein Zertifikat gespeichert, das festhält, mit
welchem Algorithmus der Schlüssel erzeugt wurde (RSA, DSS
etc.) und welcher Vertrauensumfang diesem Zertifikat
entgegengebracht wird. Über den Vertrauensumfang wird
sozusagen festgelegt, ob man einer estimmten Person zutraut, das
Verfahren zur Zertifizierung von Schlüsseln zu beherrschen
oder nicht. Je nach Version von pgp werden unterschiedliche
Verschlüsselungsverfahren und Algorithmen verwendet.
Beispiel: E-Mail-Verschlüsselung mit PGP (Kommadozeilenversion)
Um die Verschlüsselung mit PGP zu ermöglichen
muß natürlich zunächst ein Schlüselpaar
erzeugt werden. Dies kann mit dem Befehl "pgp -kg"
geschehen. Nach dem Kommandoaufruf muß man noch einige
Informationen angeben, welche die Erzeugung des Schlüssels
betreffen. Man muß die Schlüssellänge (sinnvoller
Wert: 1024 Bit), Namen und E-Mail-Adresse angeben. Diese
Information wird in den Schlüssel codiert, damit der
Schlüssel einer Person zugeordnet werden kann. Als
nächstes wird nach einer "Pass Phrase" gefragt. Diese Phrase
ist ein Passwort oder ein Satz (PGP erlaubt auch Leerzeichen).
Diese Pass Phrase schützt den privaten Schlüssel vor
unerlaubter Benutzung. Um den Schlüssel zu erzeugen,
benötigt PGP noch einige Zufallszahlen, die PGP aus der Zeit
zwischen den Tastaturanschlägen berechnet. Deshalb fordert PGP
jetzt zur Eingabe eines beliebigen Textes auf. Dann wird das
Schlüsselpaar erzeugt.
Das erzeugte Schlüselpaar ist bei UNIX im Verzeichnis $HOME/.pgp/
zu finden. Der geheime Schlüssel befindet sich in der Datei secring.pgp
(secret key ring) und der öffentliche Schlüssel in der Datei pubring.pgp
(public key ring). Die Datei pubring.pgp kann an alle weitergegeben werden,
die einem mit PGP verschlüsselte E-Mails schreiben wollen. Der "Schlüsselbund"
kann mit dem Befehl pgp -kvv angezeigt werden. Bei diesem Befehl wird immer
der Inhalt der Datei $HOME/.pgp/pubring.pgp angezeigt. Mit
pgp -kvv $HOME/.pgp/secring.pgp kann auch der Inhalt vom geheimen
Schlüsselbund angezeigt werden. Um den eigenen öffentlichen Schlüssel
weitergeben zu können, muß man zunächst den Schlüssel als ASCII-Text
exportieren. Dies ist mit dem Befehl pgp -kxa <userid> möglich.
Diesen ASCII-Text kann man dann per E-Mail verschicken oder auf der eigenen Homepage
zum Download anbieten.
Folgende Kommandos sind zum Verschlüsseln und Signieren notwendig:
- pgp -ea dateiname zum Verschlüsseln,
- pgp -esa dateiname zum Signieren und Verschlüsseln,
- pgp dateiname zum Entschlüsseln.
Am sinnvollsten ist es natürlich, eine E-Mail zu verschlüsseln und
gleichzeitig zu signieren. Wird beim Entschlüsseln auch eine Signatur gefunden,
wird diese automatisch überprüft.
Bei vielen Mail-Programmen wird inzwischen PGP direkt eingebunden und erlaubt so
die automatische Ver- und Entschlüsselung (unter UNIX, Linux und Windows).
Auch bei der Verwendung von Microsft-Outlook und Microsoft-Exchange-Servern
empfiehlt sich die Verwendung von PGP, denn auch wenn man bei Outlook die Option
"verschlüsselt übertragen" wählt, wird zwischen Arbeitsplatz und
Exchange-Server unverschlüsselt übertragen.
5.8 Steganographie als Verschlüsselungstechnik
Immer wieder wird von Politikern darüber debattiert, ob Kryptoverfahren
wie PGP reglementiert werden sollen, damit unser 'Großer Bruder' trotzdem
mitlesen kann. Die Reaktion der Computerleute darauf war die Wiederbelebung
der Steganographie. Damit bezeichnet man den verdeckten Gebrauch eines Verfahrens,
mit dessen Hilfe eine Botschaft in einem scheinbaren Klartext versteckt
wird. Neben den Daten selbst bleibt damit im Gegensatz zu anderen Techniken
auch die Tatsache des Verschlüsselns selbst geheim. Steganographie
(wörtlich: 'verdecktes Schreiben') ist die Wissenschaft vom Verstecken
von Daten. Ein einfaches Verschlüsselungsprinzip sieht man beispielsweise
an folgendem Postkartentext:
Liebe Bea,
ich geniesse nun den Urlaub hier auf dieser Insel im Atlantik. Das Wetter
gut, die Unterkunft toll, ebenso das exotische Essen. Super!
Gruß, Heini.
Die enthaltene Botschaft läßt sich entziffern, indem man die
Buchstaben bis zum nächsten Leerzeichen - also einschließlich
Satzzeichen - zählt und folgende Regel anwendet: 'Ist die Anzahl ungerade,
ergibt sich eine 0, sonst eine 1'. Mit dieser Vorschrift ergeben die ersten
acht Wörter 01010011, was dezimal 83 entspricht und nach der ASCII-Tabelle
den Buchstaben S ergibt. Die nächsten acht Wörter 01001111 (79,
Buchstabe O) und die letzten acht Wörter wieder 01010011 (also den
Buchstaben S). Im Gegensatz zum positiven Ton des Postkartentextes liest
man nun 'SOS' heraus. Ähnlich einfache Verfahren zum Verstecken von
Nachrichten in Texten basieren auf dem Buchstaben an einer verabredeten
Position eines jeden Wortes oder darauf, ob ein Leerzeichen vor einem Satzzeichen
steht oder nicht. Auch mathematische oder chemische Formeln eignen sich
zum Verstecken von Information. Eine andere Möglichkeit war das Anordnen
der 'wichtigen' Wörter auf den Falzkanten eines Briefs und das Auffüllen
mit unverfänglichem Text.
Steganographie hat Ihre Wurzeln im militärisch-politischen Bereich
und war einst die Domäne der Spione. Heute unterscheidet man zwei verschiedene
Zielsetzungen:
- Unsichtbarkeit: Eine Nachricht wird versteckt wie oben geschildert.
- Markieren: Eine Seriennummer wird in Dokumente hineincodiert, so daß
illegale Kopien zurückverfolgt und Copyright-Verletzungen nachgewiesen
werden können. Diese 'digitalen Fingerabdrücke' können in
Texten z. B. durch minimal veränderten Wort- oder Zeilenabständen
oder Schriftmodifikationen ergeben. Auch für Grafiken gibt es inzwischen
'elektronische Wasserzeichen'.
Bei rechnergestützten steganographischen Verfahren werden geheime Nachrichten
innerhalb anderer, harmlos wirkender Daten versteckt, ohne daß ein
Außenstehender dies nachweisen könnte. Die Informationen können
so in digitalen Bild- oder Tondateien verpackt oder auch über das Hintergrundrauschen
beim Telefonieren übertragen werden.
Die Sicherheit eines guten steganographischen Systems sollte ebenso wie
Kryptoverfahren nicht von der Kenntnis der verwendeten Methode abhängen,
sondern nur von einem geheimen Schlüssel. Die meisten existierenden
Verfahren gehen aber nur davon aus, daß ein Verstecken von Daten gar
nicht bemerkt wird. Deshalb muß das Verfahren auch statistischen Angriffen
widerstehen. Einfache Programme verstecken die Daten bitweise in Sound-
oder Grafikdateien. In jedem Datenwort wird das niederwertige Bit entsprechend
der geheimen Daten modifiziert. Im Vergleich zur Originaldatei ändert
sich die codierte Datei nur unwesentlich. Die leichten Tonveränderungen
bei einer Sounddatei oder Farbtonverfälschungen einer Grafikdatei sind
nicht wahrnehmbar. Die 'Hülldatei' muß aber eben achtmal so groß
sein, wie die zu codierende Information - oder noch größer. Im
Netz sind schon diverse Steganographie-Programme zu finden, z. B. auf
ftp.information.uni-hamburg.de
im Verzeichnis /pub/virus/crypt/stego oder auf
eris.giga.or.at im Verzeichnis
/pub/hacker/stego.
Zum Weiterlesen über Steganographie ein
Vortragsmanuskript von Alexandra Weikert.
VPN steht für 'Virtual Private Network' oder auch für 'Virtual
Protected Network'. Ein VPN ist ein gesicherter Kommunikationskanal, der über öffentliche
Netze (internet, aber auch Frame-Relay oder ATM) etabliert wird. Aus dieser sehr
allgemeinen Definition lassen sich die beiden Hauptcharakteristika eines VPN ableiten:
- Datenverschlüsselung, da die Daten über ein öffentliches Netz geleitet werden
- Sichere Authentifizierung der Benutzer, die auf Daten im Firmennetz zugreifen wollen
VPNs erlauben es Unternehmen, private WANs aufzubauen, ohne dafür die realen
Kosten zahlen zu müssen und ohne das technische Know-How einkaufen zu müssen. Am
Übergang zwischen den lokalen Netzen der einzelnen Niederlasssungen zum Internet
werden VPN-Server eingerichtet, die ausgehende Daten verschlüsseln und eingehende
Daten entschlüsseln. Per VPN lassen sich aber nicht nur zwei oder mehr Standorte
mit lokalen Netzen verbinden, sondern auch Kunden oder Zulieferer ins Unternehmensnetz
einbinden (Extranet). Eine dritte Möglichkeit bietet sich mit der Einbindung von
Aussendienst- und Telearbeitern ins Firmen-LAN (Remote-Access-VPN).
VPNs werden zwischen den beteiligten Endknoten manuell konfiguriert, zwischen den
Endknoten werden Tunnels aufgebaut. Ein Endknoten kann entweder ein Router, ein
Firewall-Rechner oder ein Arbeitsplatz-Rechner sein.
Als 'Tunnel' wird eine Netzwerkverbindung bezeichnet, die zwei Endpunkte
scheinbar direkt miteinander verbindet. Diese Verbindung läuft
normalerweise über ein anderes Netzwerk. Der Datenverkehr innerhalb
des Tunnel kann zur Erhöhung der Sicherheit verschlüsselt werden.
Im Normalfall hat jeder Standort seinen VPN-Server als Internet-Gateway, meist ein
Firewallsystem. Authentifizierung geschieht zwischen den Servern. Bei einem Extranet-VPN
finden Verschlüsselung und Authentifizierung zwischen Firewall und dem VPN-Client statt,
also auf Benutzerebene. Desgleichen bei Remote Access.
Die neueste Entwicklung stellen Intranet-VPNs dar. Darunter versteht man die Möglichkeit,
innerhalb eines Unternehmens wichtige Informationen zu schützen. Dort greifen Benutzer
auf Server zu, die ihre Daten verschlüsseln und den Benutzern Zugriff nur auf einzelne,
der Sicherheits-Policy entsprechende Server, Dienste und Daten ermöglichen.
Ein VPN auf Basis des Netzwerkprotokolls hat bei TCP/IP eigentlich zwei
Möglichkeiten: Die Verschlüsselung von TCP (beziehungsweise UDP), und der
Eingriff direkt auf IP-Ebene.
Im ersten Fall sind nur wenige Änderungen notwendig, unter Windows reicht meist
sogar ein Austausch der WinSock.DLL. Diverse Hersteller (etwa Aventail,
www.aventail.com, oder Attachmate,
www.attachmate.com) bieten solche
Produkte an, die aus Software für die Client-PCs und speziellen Server-Anwendungen
besteht. Allerdings sind dies oft Hersteller-spezifische Implementationen. Zudem
werden hier wirklich nur TCP- und UDP-Verbindungen geschützt - Datenverkehr über
ICMP (Internet Control Message Protocol) geht beispielsweise weiter unverschlüsselt
über die Leitung. Es bleiben also unter Umständen weiter Einfallstore für Angreifer
offen.
Besser wäre es da, wenn alle Protokolle verschlüsselt würden - das VPN muß also
direkt auf IP-Ebene ansetzen. Hier hat sich inzwischen eine weitgehende
Standardisierung durchgesetzt: IPSec (IP Security) ist nahezu vollständig
von der Internet Engineering Task Force (IETF) in den RFCs 1825, 1826 und 1827
festgelegt (
www.ietf.org/html.charters/ipsec-charter.html). IPSec ist auch Teil der
Version 6 von TCP/IP.
Der Vorteil von IPSec besteht auf jeden Fall in der Verschlüsselung aller
Übertragungs- und Anwendungsprotokolle. Allerdings müssen unter Umständen für
seinen Einsatz schon existierende Firewalls und Proxy-Server angepaßt werden.
Denn in den Definitionen von IPSec sind neue Protokoll-IDs festgelegt, um die
Verschlüsselungs- und Authentifizierungsmechanismen überhaupt zu ermöglichen.
Mit Windows NT 4.0 hat eine andere Möglichkeit für ein VPN eine gewisse
Popularität erlangt: der Eingriff direkt auf der Verbindungsebene. Diese
Methode ist prinzipiell unabhängig vom eingesetzten Netzwerkprotokoll,
unterstützt also nicht nur TCP/IP. Microsofts Technik nennt sich PPTP
(Point-to-Point Tunneling Protocol). Sie basiert auf PPP (Point-to-Point
Protocol), das heutzutage meist für die Einwahl bei einem Internet-Provider
eingesetzt wird. PPTP ist aber nicht nur für solche Wahlverbindungen geeignet,
sondern kann den gesamten Datenverkehr eines Netzes absichern. Allerdings ist
zumindest eine gültige IP-Verbindung notwendig, über die der PPTP-Tunnel
aufgebaut wird. Durch ihn lassen sich dann auch Protokolle wie NetBEUI oder
IPX gesichert übertragen.
Dank eines Konkurrenzvorschlags zu PPTP, L2F (Layer 2 Forwarding) von Cisco sah
es anfangs so aus, als würden sich bei VPNs auf dieser Ebene zwei nicht zueinander
kompatible Methoden etablieren. Microsoft und Cisco haben sich aber
glücklicherweise zusammengerauft - eine PPP Working Group, in der neben Cisco
und Microsoft auch Ascend und 3Com vertreten sind, hat im Oktober 1998 bereits
die zwölfte Version eines Standardentwurfs herausgegeben, der auf beiden Vorschlägen
aufbaut (www.totalb.com/~l2tp/).
L2TP (Layer 2 Tunneling Protocol) bietet Authentifizierung für SLIP- und
PPP-Verbindungen, zur Verschlüsselung kann optional IPSec eingesetzt werden.
Allerdings eignet sich L2TP im Gegensatz zu PPTP nur für Wählverbindungen.
Cisco hat natürlich bereits in einigen Routern L2TP implementiert. Provider,
die Cisco-Geräte einsetzen, können damit auch entsprechende Einwahlpunkte anbieten.
Manche Internet-Provider unterstützen aber auch PPTP, das inzwischen nicht nur für
NT, sondern auch für die neuesten Service-Releases von Windows 95 und für Windows
98 verfügbar ist. Neben den Windows-Systemen unterstützt auch Linux PPTP
(
bmrc.berkeley.edu/people/chaffee/linux_pptp.html). An den Clients sind
nicht unbedingt Änderungen notwendig, wählt man sich über einen PPTP- oder
L2TP-Zugang beim Provider ein - die Verbindung zum Provider ist dann allerdings
ungesichert, erst ab dem Einwahlpunkt erfolgt eine gesicherte Übertragung. Eine
direkte Nutzung von PPTP oder L2TP von den Clients aus ist bei entsprechender
Unterstützung natürlich ebenfalls möglich.
Für VPNs ist nicht nur die eigentliche Verschlüsselung wichtig (die L2TP
beispielsweise gar nicht selbst erledigt, sondern dafür auf IPSec zurückgreift).
Um überhaupt verschlüsseln zu können, muß nicht nur die Methode auf beiden Seiten
gleich sein - ein Schlüssel, der beiden Seiten bekannt ist, hat ebenfalls zu
existieren. Ansonsten kommen zwar die Daten gesichert an, können aber nicht
dekodiert werden.
Die Vereinbarung von Schlüsseln und ihre Bekanntmachung bei den Kommunikationspartnern
ist ein möglicher Angriffspunkt auf die Sicherheit von VPNs. Der sicherste Weg wäre,
die Schlüssel auf einem garantiert nicht angreifbaren Weg auszutauschen - im
Zweifelsfall, indem sich die Beteiligten an einem VPN vor der Inbetriebnahme treffen
oder durch den Austausch von Chip-Karten, auf denen alle notwendigen Schlüssel
gespeichert sind.
In den meisten Fällen setzt man bei VPNs aber auf eine sogenannte
Certification Authority (CA). Es handelt sich dabei um eine zentrale
Instanz, die sogenannte Zertifikate, bestehend aus Benutzerkennung, öffentlichem
Schlüssel und beispielsweise Ablaufdatum des Schlüssels ausgibt. Die Zertifikate
versieht die CA mit einer Signatur, anhand derer die Kommunikationspartner die
Richtigkeit der Zertifikate überprüfen können. Der Wartung einer solchen CA
sollte man besonderes Augenmerk widmen - zwar bieten sie große Flexibilität,
ist es aber einem Angreifer gelungen, ein falsches Zertifikat einzuschleusen
oder einen Schlüssel zu brechen, kann dies verheerende Folgen haben. Eine CA
bietet daher auch immer die Möglichkeit, ein Zertifikat wieder zurückzuziehen,
sobald bekannt wurde, daß der Schlüssel eines Beteiligten geknackt wurde.
In unserer zunehmend mobilen Welt besteht immer mehr der Bedarf, sich
von jedem Punkt der Welt in das heimatliche LAN einwählen zu
können. Heute besitzt jeder Rechner am Internet eine eigene
eindeutige IP-Adresse. Wechselt man mit seinem Notebook das LAN oder
den Internetprovider, so erhält heute der Rechner am neuen Standort
eine neue IP-Nummer. Bei großen Providern erhält man bei jedem neuen
Besuch eine andere Nummer.
Zur Beseitigung dieses Problems wurde das Mobile-IP Protokoll
entworfen. Bei diesem bedient sich der mobile Rechner eines Tunnels
'nach Hause', und arbeitet intern mir seiner Stamm-IP Adresse. Nur der
externe Endpunkt des Tunnels verwendet die vom Provider vergebene IP-Nummer.
Mobile IP befindet sich erst in der Einführungphase, es gibt derzeit
außerhalb der UNIX-Welt nur einen MIP-Client. Ebenso gibt es nur eine
handvoll Tunnel-Clients mit zugehörigen Servern, die den Aufbau eines
verschlüsselten Tunnels zum Heimat-LAN erlauben.
Einige Firewallsysteme unterstützen den Aufbau von
Firewall-to-Firewall VPNs. Diese verwenden entweder herstellereigene
Kryptoverfahren, oder sie unterstützen bereits die von der IETF
(Internet Engineering Task Force, technisch bestimmendes Gremium im Internet)
vorgeschlagenen IPSec Protokolle. Einige Hersteller haben sich zur
S/WAN-Initiative (S/WAM = Secure WAN) zusammengeschlossen.
Copyright © FH München, FB 04, Prof. Jürgen Plate