1 Sicherheit im Internet 
Das Internet mit seinen Millionen von Benutzern und seiner weltweiten
Verfügbarkeit ist eine große Quelle für mögliche Angriffe auf die
Vertraulichkeit, Verfügbarkeit und Integrität der
angeschlossenen Rechner.
Um sich vor diesen Bedrohungen und Angriffen zu schützen, gibt es eine Vielzahl
von Maßnahmen. Der wichtigste Schutz gegen Angriffe ist aber:
- Umfassende Information über Gefährdungen.
- Umsetzung von genau definierten Sicherheitsmaßnahmen.
Neben Funktionalität und Leistungsfähigkeit sollte die
IT-Sicherheit als gleichwertiges Ziel bereits vor dem Einsatz eines
Rechnersystems oder einer Software berücksichtigt werden.
1.1 Internet-Dienste 
Im Internet bietet Server den Anwendern (Clients) verschiedene
Dienste an, die wichtigsten sind:
- Namensauflösung
- Web-Seiten-Zugriff
- E-Mailversand und -Empfang
- File Transfer
- Remote Login
- Newsgroups
- Chat
- IP-Telefonie
- Routing
Jedem Server ist eine IP-Adresse und jedem von einem Server angebotenen
Dienst ist eine Port-Nummer zugeordnet, über die er erreicht werden
kann.
Zur Nutzung des Internets benötigt der Anwender eine Zugangsberechtigung
bei einem Internet-Provider. Dieser stellt den Zugang zu anderen
Rechnern mit den beschriebenen Internet-Diensten zur Verfügung.
1.2 Gefährdungen 
Jeder von einem Server angebotene Dienst beinhaltet potenzielle Gefährdungen,
denen der Anwender ausgesetzt ist.
Konzeptionsfehler:
Für die verschiedenen angebotenen Dienste sind Programme
notwendig. Diese können Programmierfehler enthalten oder
sie können fehlerhaft konfiguriert sein.
Trojanische Pferde, Viren, Würmer:
Programme oder Programmteile (aber auch Daten, z.B. JPEG-Dateien)
mit Schadfunktion, die per Mail oder Download auf den
eigenen Rechner gelangen (oder von ihm an andere Rechner
verteilt werden).
Konfigurationsfehler:
Voreingestellte, umfangreiche und schlecht dokumentierte
Konfigurationsdateien führen häufig zu Gefährdungen.
Unnötige Dienste:
Häufig werden (unwissentlich) Programme gestartet, die für den
beabsichtigten Einsatzzweck des Rechners gar nicht notwendig
sind (z.B. Datenbank-Server) und z.B. eine Standardanmeldung
mit einem Standardpasswort im Internet anbieten.
Programmierfehler:
Entstehen aufgrund mangelhafter Sorgfalt, Ausbildung oder Qualitätssicherung.
Maskerade:
Ohne wirksame Authentisierungsmechanismen zwischen den am Internet
angeschlossenen Rechnern kann ein Rechner leicht eine falsche
Rechneradresse (IP-Spoofing) oder einen
falschen Rechnernamen (DNS-Spoofing)
"vorgaukeln". Zugriffsrechte, die nur aufgrund dieser Angaben
vergeben werden, sind daher leicht zu missbrauchen.
Source-Routing:
Nutzt aus, dass sich in einem IP-Paket der Weg, auf
dem das Paket sein Ziel erreichen soll, bzw. den die Antwortpakete
nehmen sollen, vorschreiben lässt. Das Paket benutzt dann nicht die durch die
Routing-Tabellen angegebenen sicheren Wege. Wird
Source-Routing von Providern zugelassen, sind Angriffe per
IP-Spoofing leicht realisierbar.
Verlust der Vertraulichkeit:
Im Internet werden alle Informationen grundsätzlich offen übertragen,
sodass sie von jedem, der hardwaretechnischen Zugang zu einem der benutzten Netze hat,
mitgelesen werden können. Dies gilt z.B. für Passwörter
und auch für elektronische Post (E-Mail), die deshalb mit einer nicht
unterschriebenen Postkarte vergleichbar ist.
Verlust der Integrität:
Im Internet werden alle Daten ohne einen Schutz gegen Veränderungen
übertragen, sodass jeder, der hardwaretechnischen Zugang zu einem der benutzten Netze hat,
die Daten manipulieren kann.
Missbrauch frei verfügbarer Informationen:
Häufig werden Informationen (z.B. Benutzernamen, Mailadressen, Passworte,
Rechnernamen, Programmversionen, Name und Version des verwendeten
Betriebssystems), die missbraucht werden können, potenziellen
Angreifern ungewollt zur Verfügung gestellt.
Passwörter:
Die gebräuchlichste Art der Authentisierung gegenüber einem Rechner
beruht auf Passwörtern. Sind diese leicht zu erraten (weil z.B. noch Default-Passwörter
eingestellt sind) oder anderweitig
in Erfahrung zu bringen (z.B. durch Social Engineering), ist Missbrauch möglich.
Aktive Inhalte:
Durch aktive Inhalte auf Web-Seiten oder in HTML-E-Mails (Java, JavaScript,
ActiveX, …) kommen Programme auf dem Rechner des Benutzers zur
Ausführung, von denen er nicht unbedingt weiß, was sie
tun. Häufig ist bei einem Link nicht klar ersichtlich, dass mit
einem Klick auf ihn ein Programm gestartet wird bzw. was dieses Programm genau tut.
1.3 Schutzmöglichkeiten 
Vor dem Anschluss eines Rechners an das Internet sollten folgende Maßnahmen
ergriffen werden:
Analyse aller Prozesse, die zu einer Internetverbindung führen können:
Das können entweder bereits beim Booten gestartete Programme
sein oder Programme, die erst bei Bedarf von anderen Programmen
gestartet werden (z.B. Java Applets mit Hilfe von Web-Clients,
Makro-Viren mit Hilfe von Textverarbeitungsprogrammen oder unter
UNIX/Linux Daemon-Prozesse mit Hilfe des inetd). Wichtig sind
besonders folgende Punkte:
- Welche Informationen können durch diesen Prozess ins Internet
gelangen?
- Bietet der Prozess einem Angreifer die Möglichkeit, Daten
auf dem lokalen System oder dem lokalen Netz
zu lesen, zu verändern, sich auf
dem lokalen System einzuloggen oder
Informationen über das System zu erlangen?
- Welche Konfigurationsdateien werden vom Prozess benutzt?
- Werden Konfigurationsdateien werden vom Prozess verändert?
- Welche Protokollinformationen werden erzeugt und wo gespeichert?
- Besteht die Möglichkeit, dass der Prozess eine Schadfunktion
(z.B. Trojanisches Pferd) enthält?
Auswahl der wirklich benötigten Dienste:
Auf einem Rechner, der ohne weiteren Schutz mit einem unsicheren
Netz verbunden ist, sollten besonders sicherheitskritische Dienste
(z.B. NFS, NIS, SMB, FINGER) deaktiviert werden.
Abschalten/Löschen ungenutzter Programme:
Um zu verhindern, dass Programme beim Booten gestartet werden,
müssen ihre Aufrufe aus den Startup-Dateien entfernt werden
(z.B. rc-Dateien, autoexec.bat, Autostart-Ordner).
Damit sie nicht indirekt über andere Prozesse gestartet werden können,
müssen ihre Konfigurationsdateien entsprechend angepasst werden.
Abschalten der automatischen Ausführung aktiver Inhalte
in Web-Browsern:
Leider funktionieren viele Internet-Seiten nicht, wenn JavaScript, Java
oder andere Skriptsprachen in Browsern deaktiviert sind. Hierdurch schließt man
sich also von einem Teil des Internets aus. Trotzdem handelt es sich hier um
eine wirklich wichtige Sicherheitsmaßnahme. Hier hilft auch schon der
Ersatz des Internet Explorers durch einen anderen Browser (z.B. Firefox).
Suche nach möglichen Schwachstellen in anderen Programmen:
Gibt es Konzeptionsfehler im Programm oder in den benutzten
Netzprotokollen? Die offene Übertragung von Informationen
bei TCP/IP ist möglicherweise ein Konzeptionsfehler. Allerdings
gibt es genügend darauf aufsetzende Anwendungsprotokolle, die
diese übertragene Information sicher verschlüsseln.
Eventuell hilft hier die Analyse des Netzverkehrs mit Hilfe geeigneter
Programme.
Laufen die Programme in einer geschützten Umgebung und
mit eingeschränkten Zugriffsrechten?
Werden sicherheitskritische Bestandteile des Betriebssystems
benutzt? Zum Beispiel lassen sich Bibliotheksfunktionen missbrauchen,
die bei ihrem Aufruf nicht in einer gesicherten Umgebung ablaufen.
Welche Bibliotheksfunktionen aufgerufen werden, lässt sich
mit trace-Programmen feststellen.
Gibt es Hinweise über Schwachstellen im Internet oder beim
Hersteller?
Gibt es neue verbesserte Programmversionen?
Gibt es sicherheitskritische Optionen oder Konfigurationsmöglichkeiten?
Einsatz aller Sicherheitsmaßnahmen des Betriebssystems:
Hierbei leisten das IT-Grundschutzhandbuch des BSI
oder Prüfprogramme Unterstützung. Wichtig sind folgende Punkte:
- Reduktion auf die benötigten Dienste.
- Benutzung "guter" Passwörter.
- Richtige Vergabe von Zugriffsrechten.
- Benutzung aller vorhandenen Protokollmechanismen.
- Regelmäßige Backups.
Integritätsverletzungen an Programmen und Dateien regelmäßig prüfen:
Um Angriffe zu erkennen, die trotz aller Verteidigungsmaßnahmen
doch nicht abgewehrt werden konnten, und um die Systeme
in solchen Fällen wieder auf einen sicheren Stand zu bringen
(z.B. tripwire).
2 Firewalls 
Firewall ist ein häufig benutzter "schillernder" Begriff. Was sich dahinter
verbirgt, wird meist sehr unterschiedlich verstanden (z.B. "Paketfilter,
"Personal Firewall", "Proxy", "Application Level Gateway", "Content Filter").
Im Prinzip versteht man darunter eine Infrastruktur aus einem
oder mehreren Rechnern, die zwei Netzwerke voneinander trennt
und durch Kontrolle des Datenflusses dazwischen Zonen unterschiedlicher
Sicherheit schafft. Firewalls werden vor allem zum Schutz interner Netze
vor dem Internet oder zur Schaffung unterschiedlicher Sicherheitszonen in
Unternehmensnetzen eingesetzt.
Für jedes Computernetz sollte ein zentraler Übergang (Firewall)
zum Internet geschaffen werden, durch den alle Daten vom/zum Internet fließen müssen. Die
im Netzwerk betriebenen Rechner und der zentrale Übergang entsprechen dabei
einer vorher vereinbarten Sicherheitspolitik (Policy), die folgendes
festlegen muss (und an die technische und organisatorische Entwicklung immer
wieder angepasst werden muss):
- Was soll geschützt werden?
- Welche Dienste sind erforderlich?
- Welche Dienste sind für welche Benutzer zugelassen?
- Welche Downloads sind für welche Benutzer erlaubt?
- Welche URLs sind für welche Benutzer erlaubt?
- Wer administriert die Firewall?
- Welche Daten werden protokolliert und ausgewertet?
- Welches Datenaufkommen ist zu erwarten?
- Ist Failover notwendig?
Eine Firewall mit unzureichender Leistungsfähigkeit oder auch zu großen
Benutzerbeschränkungen kann schnell dazu führen, dass sich die Benutzer
zusätzliche unsichere Zugänge (z.B. private Modems) zum Internet
schaffen. Die Hardware/Software-Struktur und die Filterregeln der Firewall
müssen gewährleisten, dass alle nicht explizit erlaubten Verbindungen
verhindert werden. Weiterhin sind bei der Aufzeichnung von Daten
in einer Firewall die Datenschutzbestimmungen zu beachten.
Eine Firewall sollte mindestens aus zwei hintereinander angeordneten
Systemen (gemäß dem PAP-Modell
besser aus drei hintereinander angeordneten Systemen unterschiedlicher
Hardware/Software-Struktur) bestehen, um auch bei Wirkungslosigkeit einer
Komponente (z.B. durch einen Programmier- oder Konfigurationsfehler) das
Überwinden der Firewall zu verhindern.
Es gibt folgende mögliche technische Komponenten einer Firewall
zur Daten-Filterung, die erst in einer sinnvollen Kombination die
eine Firewall mit voller Leistungsfähigkeit bilden:
- Paket-Filter (äußerer und innerer, PF)
Benutzen die Informationen der IP- und TCP-Protokollschicht,
also z.B. IP-Adresse des Rechners, Port-Nummer (Dienst)
und Verbindungs-Status. Sie haben einen sehr einfachen Aufbau,
benötigen wenig Rechenleistung und sollten mindestens:
- Getrennte Filterregeln für jedes Netzwerk-Interface und für
ankommende und abgehende Pakete zulassen.
- Einen TCP-Verbindungsaufbau erkennen.
- Die Protokollierung aller Pakete zulassen.
Circuit-Level-Gateway
Ein Proxy, der Daten auf der Transportebene (z.B. die Protokolle
TCP und UDP) weiterleitet. Der Nutz-Inhalt der Daten wird
dabei nicht inspiziert, aber immerhin eine Entkopplung der Netze
bewirkt, da IP-Pakete nicht direkt an den Zielrechner weitergeleitet,
sondern ihre Daten erst in neue Pakete umkopiert werden. Benötigen
meist wenig Rechenleistung und niedrigen Rechenaufwand.
Application Level Gateway (ALG)
Verwenden die Informationen der Anwendungsschicht, um mit Hilfe
von Proxy-Prozessen Verbindungen aufzubauen oder abzuweisen. Sie haben
einen komplexen Aufbau, jedes zu transferierende und analysierende
Protokoll bedarf eines extra Gateway-Prozesses und sie benötigen
teilweise hohe Rechenleistung. Sie bieten unter anderem folgende
Möglichkeiten der Filterung:
- Benutzerspezifische Filterung.
- Verbergen der internen Netzstruktur.
- Filterung der Datenflussrichtung (z.B. kann es sinnvoll
sein, dass Telnet-Verbindungen nicht von außen nach innen,
wohl aber von innen nach außen aufgebaut werden dürfen).
- Protokollierung der übertragenen Nutzdaten.
Virenscanner
Suchen und beseitigen Viren in elektronisch transferierten Dokumenten
(oder auf Datenträgern). Zentral z.B. auf der Firewall oder Fileservern
und auch lokal auf den Arbeitsplatzrechnern einsetzbar. Kosten meist
sehr viel Performance und ihre Virenmusterdateien müssen ständig
aktualisiert werden.
Intrusion Detection System (IDS)
Systeme zur Angriffserkennung, die über einen oder mehrere Sensoren
auf dem externen und internen Netz lauschen, auffälligen Netzverkehr
auswerten und auf bekannte Angriffssignaturen überprüfen. Gute Systeme
gestatten es, die Daten der Sensoren zentral zusammenzuführen, zu
korrelieren und auszuwerten. Benötigen evtl. viel Rechenleistung
und vor allem viel Knowhow zur Konfiguration, Wartung und Auswertung.
Intrusion Prevention System (IPS)
Systeme zur Angriffsvermeidung, die im Falle eines vom IDS erkannten
vermuteten Angriffes Gegenmaßnahmen ergreifen: Alarm auslösen,
IP-Adressbereiche oder Port-Bereiche sperren, Anwendungen stoppen,
Netzverbindung trennen, Rechner herunterfahren.
3 Virtual Private Network (VPN) 
VPN ist ein häufig benutzter "schillernder" Begriff. Was sich dahinter
verbirgt, wird meist sehr unterschiedlich verstanden. Sowohl auf der
Anwendungsebene als auch auf der Ebene der technischen Implementierung gibt
es verschiedene Interpretationen davon.
Im Prinzip geht es immer darum, eine vertrauenswürdige Verbindung
zwischen Netzen oder Rechnern über ein unsicheres Medium (z.B. das
Internet) herzustellen. Man möchte damit also die Emulation eines privaten
WAN (Wide Area Network) trotz Transport des Netzwerkverkehrs über
das öffentliche Internet realisieren. Die Privatheit wird durch den Einsatz
von Verschlüsselung erreicht.
Anwendungsseitig wird die Anbindung von Einzelrechnern (Home Office,
Road Warrior) oder die LAN-LAN-Kopplung mehrerer Firmenstandorte
darunter verstanden. Auf technischer Seite gibt es eine Vielzahl von
Protokollen und Realisierungsmöglichkeiten, von denen viele gar nicht bekannt
sind (IPSec, IKE-Standard, SSH, SSL/HTTPS, PGP, GnuPG...). Beispiel:
VPNs nach IPSec
Führen z.B. zu einer vollständigen
Netzkopplung auf IP-Ebene: Die VPN-Gegenstellen haben kompletten Zugriff
auf die Netzwerke der Partner.
VPNs auf Anwendungsebene
Erlauben den Zugriff nur für bestimmte Anwendungen und können beispielsweise über
SSH realisiert werden.
VPNs werden vor allem zwischen Unternehmen und deren Niederlassungen,
Filialen und Außendienstmitarbeitern eingesetzt.
4 Verschlüsselung und Signatur 
Schützenswerte Informationen sollten nur verschlüsselt und/oder signiert
übertragen werden. Die Verschlüsselung einer Datei schützt gegen den
Verlust der Vertraulichkeit. Die Signatur einer Datei verhindert,
dass unerkannt Veränderungen an dieser Datei vorgenommen werden.
Für die Übertragung von Daten zwischen Personen ist eine Verschlüsselung
und Signatur auf der Anwendungsschicht sinnvoll (z.B. PGP um
Inhalte von E-Mails zu schützen). Soll die gesamte Kommunikation zwischen
Rechnern oder Netzen gesichert werden, ist eine Verschlüsselung auf
Betriebssystemebene zweckmäßig (z.B. IPSec).
Falls ein symmetrisches Verschlüsselungsverfahren eingesetzt wird, ist vorher
ein vertrauenswürdiger Schlüsselaustausch durchzuführen.
4.1 Kryptographie 
Grundlage für die vertrauliche Übertragung von Informationen in der digitalen
Welt (z.B. im Internet) sind Verschlüsselungsverfahren. Mit modernen
Verschlüsselungsverfahren kann man Nachrichten in Form von E-Mails ebenso ver-
und entschlüsseln wie auch Online-Verbindungen im World Wide Web.
Vertraulichkeit ist die Basis jeder Kommunikation. Für jeden Vertrag, jede
Transaktion oder jeden elektronischen Brief gilt — solange er mit einem
genügend starken Verschlüsselungsverfahren verschlüsselt wurde —, dass der Inhalt
nur dem Empfänger zugänglich ist, an den er adressiert ist.
Als Kryptographie bezeichnet man die Wissenschaft, Nachrichten durch
Verschlüsselung geheimzuhalten. Jemand, der eine verschlüsselte Nachricht
abfängt, kann zwar vermuten, dass es sich um eine Nachricht handelt, er muss
jedoch den zum Entschlüsseln notwendigen Schlüssel (Key) kennen oder
auf irgendeine Weise ermitteln, um sie lesen zu können.
Man unterscheidet folgende prinzipiellen Verschlüsselungsverfahren:
Zur Vereinfachung der Schreibweise bezeichnet im folgenden VK den zum
Verschlüsseln und EK den zum Entschlüsseln verwendeten
Schlüssel (Key).
4.1.1 Symmetrische Verschlüsselung 
Zeichnet sich dadurch aus, dass man VK aus EK berechnen kann (und
umgekehrt), wobei VK und EK meist sogar übereinstimmen (d.h. es
wird derselbe Schlüssel sowohl zum Ver- als auch zum Entschlüsseln verwendet).
Um die Sicherheit der verschlüsselten Nachrichten zu gewährleisten, muss in
diesem Fall VK (und EK) geheimgehalten werden. Daher
wird dieses Verfahren auch Sekret-Key-Verschlüsselungsverfahren
genannt. Jeder, der über den Schlüssel VK (bzw. EK) verfügt,
kann damit Nachrichten schreiben und kodieren sowie verschlüsselte Nachrichten
dekodieren und lesen.
4.1.1.1 Problem der Symmetrischen Verschlüsselung 
Das (rekursive) Dilemma von Symmetrischer Verschlüsselung besteht darin,
dass Sender und Empfänger sich zuerst in sicherer Form auf einen
Schlüssel einigen müssen (d.h. einen sicheren Kommunikationsweg zum
Austausch des Schlüssels finden müssen), bevor sie sicher
miteinander kommunizieren können. D.h. man bräuchte eine sichere Übertragung
um eine sichere Übertragung einrichten zu können ;-(.
In der Praxis wird der Schlüssel daher auf einem zweiten unabhängigen
Weg (z.B. Telefon, Post, Kurier, persönliches Treffen) überbracht. Dies
scheitert aber bei vielen Kommunikationspartner (die man vielleicht
gerade erst kennenlernt), da pro Partner vor der ersten sicheren Kommunikation
ein neuer Schlüssel zeitaufwendig überbracht und dann auch sicher aufgehoben
werden muss.
4.1.2 Asymmetrische Verschlüsselung 
Umgeht das Problem symmetrischer Verfahren, indem die zum Ver-
bzw. Entschlüsseln verwendeten Schlüssel VK bzw. EK
verschieden gewählt werden.
Dabei ist es nicht möglich, aus VK den Schlüssel EK
zu bestimmen (und umgekehrt).
VK und EK sind gleichermaßen zum Verschlüsseln und zum
Entschlüsseln geeignet, d.h. was mit dem einen Schlüssel verschlüsselt wurde,
kann nur mit dem jeweils anderen wieder entschlüsselt werden.
Der entscheidende Vorteil: Den einen der beiden Schlüssel kann man
ohne Angst jedem in die Hand drücken, also den Schlüssel ähnlich wie eine
Telefonnummer öffentlich zugänglich machen. Den anderen behält man für
sich, er ist privat (geheim). Es gibt also einen öffentlichen Schlüssel
(Public Key) VK und einen geheimen Schlüssel (Private Key) EK. Das
ganze Verfahren wird daher auch Public Key Verfahren genannt.
Auf diese Weise kann man Nachrichten sicher an einen Unbekannten
senden, ohne ihn je persönlich getroffen und sich mit ihm auf
einen Schlüssel geeinigt zu haben (wie das bei symmetrischen
Verschlüsselungsverfahren notwendig wäre). Public-Key-Verfahren lösen
daher das obige Dilemma der symmetrischen
Verschlüsselungsverfahren, die einen sicheren Kommunikationskanal zum
Austausch des Schlüssels erfordern, ehe man sicher kommunizieren kann.
Will man eine verschlüsselte Nachricht an jemanden schicken, benutzt man dessen
öffentlichen Schlüssel VK — den man z.B. vom Empfänger persönlich
bekommt oder sich aus einem öffentlichen Schlüsselverzeichnis besorgt —
zum Verschlüsseln der Nachricht. Die verschlüsselte Nachricht kann nur
derjenige entschlüsseln, der den zugehörigen privaten Schlüssel EK
hat (auch der Absender selbst kann die verschlüsselte Nachricht nicht mehr
lesen, allerdings besitzt er ja noch das unverschlüsselte Original).
Zusammengefasst bedeutet das:
Man generiert sich zufällig ein persönliches Schlüsselpaar,
um vertrauliche Nachrichten zu versenden und zu empfangen und um digital
zu unterschreiben.
Einer der beiden Schlüssel ist öffentlich (public), ihn stellt
man im Internet den Kommunikationspartnern zur Verfügung.
Der andere Schlüssel ist geheim (private), ihn verwahrt man
möglichst sicher.
4.1.2.1 Problem der Asymmetrischen Verschlüsselung 
Das Problem bei Public-Key-Verfahren liegt darin, dass man nicht sicher
sein kann, dass ein öffentlicher Schlüssel wirklich dem Empfänger gehört,
solange man den Schlüssel nicht persönlich von ihm erhalten hat.
Hier ein Beispiel für eine sogenannte Man-in-the-Middle-Attack,
die auf dieser Unsicherheit beruht:
Benutzer B trägt seinen öffentlichen Schlüssel in einem öffentlichen
Verzeichnis ein. Ein Angreifer A kann nun mit irgendwelchen
Tricks den (echten) öffentlichen Schlüssel von B durch seinen eigenen
ersetzen.
-
Wenn Benutzer C an B eine Nachricht schicken möchte, holt er
sich aus dem öffentlichen Schlüsselverzeichnis den öffentlichen Schlüssel von
B, erhält aber den durch A ausgetauschten Schlüssel. C
verschlüsselt die Nachricht mit dem vermeintlichen öffentlichen Schlüssel
von B und schickt sie an ihn.
Fängt A auf dem Kommunikationsweg zwischen B und C die
Nachricht ab — bei E-Mail-Verkehr im Internet könnte er z.B. auf einem der
Rechner, die sie auf dem Weg von B zu C durchläuft, die Mail
herausfiltern — und entschlüsselt sie (schließlich hat er den passenden
privaten Schlüssel), so kann er sie lesen.
Danach vernichtet A entweder die Nachricht oder verschlüsselt sie
bzw. eine abgeänderte Version davon mit dem wirklichen öffentlichen
Schlüssel von B und leitet sie an diesen weiter, sodass weder
B noch C bemerken, dass jemand mitliest
4.1.2.2 Lösung durch Zertifikate 
Zur Lösung dieses Problems benötigt man Zertifikate, die ein sogenannter
Trust Center ausstellt. Ein Trust Center überprüft (je nach Zertifikatklasse auf unterschiedliche Weise)
die Identität des Schlüsselinhabers und bestätigt durch seine Unterschrift
(Zertifikat) unter dessen öffentlichem Schlüssel, dass der Schlüssel
wirklich demjenigen gehört, der in seiner Benutzer-ID angegeben ist.
Derzeit findet die Überprüfung entweder per E-Mail statt (Class 1-Zertifikat), oder aber durch persönliches
Erscheinen des Antragsstellers und Überprüfung des Personalausweises
("Passport"-Zertifikat) direkt bei einem Trust Center oder einer Postfiliale
("Post Ident Verfahren").
4.1.2.3 Weitere Probleme der asymmetrischen Verschlüsselung 
Leider sind auch asymmetrische Verschlüsselungsverfahren mit Zertifikaten nicht
der Weisheit letzter Schluss. Aus mehreren Gründen können sie symmetrische
Verfahren nicht ersetzen, sondern nur ergänzen:
- Benötigen wesentlich längere Schlüssel, um wirklich sicher zu sein
(Faktor 5-20).
- Sind wesentlich langsamer (Faktor 1000 und mehr).
- Sind verwundbar, wenn nur eine begrenzte Anzahl von Klartexten
zur Auswahl steht, die den verschlüsselten Text ergeben können.
Im letzten Fall verschlüsselt ein Angreifer alle in Frage kommenden
Klartexte mit dem bekannten öffentlichen Schlüssel und vergleicht
das Ergebnis mit dem verschlüsselten Text. Diese mit brachialer Gewalt
(Brute Force) durchgeführte Abart einer
sogenannten Chosen-Plaintext-Attack ermittelt zwar nicht den geheimen
Schlüssel, errät aber wohl die ursprüngliche Nachricht.
4.1.3 Hybride Verschlüsselung 
Beseitigt durch eine Kombination von Public- und Secret-Key-Verfahren
die Probleme und bietet die Vorteile beider Verfahren:
- Kurzer Schlüssel
- Kein abgesicherter Schlüsselaustausch notwendig
- Hohe Geschwindigkeit
- Keine Angreifbarkeit durch Chosen-Plaintext-Attack
Anstatt die gesamte Nachricht mit Hilfe des Public-Key-Verfahrens zu
verschlüsseln, wird für jede Nachricht ein zufälliger Session Key für
das symmetrische Verfahren erzeugt und nur dieser mit dem Public-Key-Verfahren
verschlüsselt. Die Originalnachricht wird unter Benutzung dieses Session Keys mit einem
symmetrischen Verfahren verschlüsselt. Beide Verschlüsselungsergebnisse werden
zusammen verschickt.
Damit wird eine Chosen-Plaintext-Attack praktisch unmöglich, weil die Anzahl
der zur Auswahl stehenden symmetrischen Sitzungs-Schlüssel viel zu gross ist, um
eine solche Attacke mit dem Public-Key-Verfahren durchzuprobieren
(nur wenn sie groß genug und gleichwahrscheinlich sind).
4.2 Digitale Signatur 
Eine persönliche Unterschrift ist stets einmalig und untrennbar mit
der Person verbunden, die sie leistet. Mit einer Unterschrift unter einem
Dokument kann eine Person ihre Identität belegen. Die Unterschrift
bestätigt gleichzeitig, dass der Unterzeichnende mit dem Inhalt des Dokumentes
einverstanden ist (sofern das Dokument gegen Manipulation geschützt
ist).
Diese Eigenschaften einer persönlichen Unterschrift lassen sich auch auf den
elektronischen Datenverkehr übertragen — mit Hilfe digitaler Signaturen.
Diese erlauben z.B. über das Internet rechtsgültige Verträge zu schließen
(siehe Signaturgesetz).
Auch eine digitale Signatur ist einmalig und untrennbar an eine Person
gebunden. Mit ihr lässt sich, wie bei einer handschriftlichen Unterschrift,
die Identität einer Person überprüfen. Eine digitale Signatur ist außerdem
inhaltsbezogen. Das heißt, sie bezieht sich bei der Unterzeichnung einer Datei auf jedes
einzelne Bit der Datei und damit auf das gesamte elektronische Dokument. Eine
nachträgliche Veränderung des Inhaltes ist nicht möglich, ohne dass die
Signatur zerstört wird.
Außerdem lässt sich eine digitale Signatur nicht kopieren oder nachahmen. Das
Erzeugen und das Überprüfen einer digitalen Signatur erfolgt elektronisch
und ist sicher gegen Beeinflussung.
Public-Key-Verfahren sind auch zum digitalen Signieren von Dokumenten
verwendbar, wenn man das übliche Vorgehen umkehrt, d.h. den privaten Schlüssel
EK zum Verschlüsseln und damit den öffentlichen Schlüssel VK
zum Entschlüsseln benutzt.
4.2.1 Fingerprint 
Dazu wird aus dem zu unterschreibenden Text mittels einer sogenannten
Hash-Funktion ein kurzer (z.B. 16 oder 32 Zeichen langer) Extrakt
der Nachricht (ein sogenannter "Fingerabdruck" (finger print))
derart ermittelt, dass sich nicht ohne erheblichen Aufwand eine andere
Nachricht finden ließe, die denselben Extrakt liefert.
Dieser Extrakt wird mit dem privaten Schlüssel EK des Absenders
verschlüsselt und an die Nachricht angehängt. Hierdurch wird die Nachricht
fälschungssicher, denn sobald nur die geringste Kleinigkeit an der Nachricht
geändert wird, kann das der Empfänger feststellen.
Jeder, der den öffentlichen Schlüssel VK des Absenders hat, kann
mit diesem überprüfen, ob der damit entschlüsselte mitgelieferte Extrakt mit
dem aus der Nachricht erneut berechneten Extrakt übereinstimmt und so die
Authentizität der Nachricht und die Identität des Absenders
prüfen (denn nur dieser kann mit seinem geheimen Schlüssel den verschlüsselten
Extrakt erzeugt haben).
4.3 Digitale Zertifikate 
Ein digitales Zertifikat ist ein elektronischer Ausweis, mit dem man
sich in der digitalen Welt anderen gegenüber ausweisen kann. Genauso
gut kann man aber auch die elektronischen Ausweise anderer überprüfen,
wenn man sicher sein will, dass der Kommunikationspartner auch derjenige ist,
für den man ihn hält.
Bei einem herkömmlichen Ausweis erfolgt die Identifikation z.B. durch den
Vergleich des Passbildes mit der Person, die vor einem steht. Beim Einlösen
von Schecks werden die Unterschriften auf der Scheckkarte und dem Scheck
verglichen. In der digitalen Welt benötigt man einen Ersatz für das Passfoto
bzw. die Unterschrift, d.h. ein Merkmal (oder eine Kombination von Merkmalen),
welches den Besitzer eindeutig identifiziert.
Der öffentliche Schlüssel eignet sich als eindeutiges Merkmal zur
Identifizierung in der digitalen Welt. Voraussetzung für die vertrauenswürdige
Überprüfung der Identität ist aber, dass der öffentliche Schlüssel auch
wirklich zur angegebenen Person gehört.
Also muss es auch in der digitalen Welt Einrichtungen geben, die
überprüfen, ob derjenige, der gerne einen Ausweis hätte, auch
der ist, der er vorgibt zu sein. Diese Einrichtungen müssen neutral und
vertrauenswürdig sein. Dafür sind sogenannte Certification Authorities
(CA) oder Trust Center (TC) gedacht.
Betreiber anerkannter Trust Center müssen eine Reihe strenger
Auflagen erfüllen und die verwendeten Verfahren und Zertifizierungsrichtlinien
offenlegen.
Nach der Identitätsprüfung des Antragstellers wird für ihn ein digitales Zertifikat
ausgestellt, welches bestätigt, dass die Angaben im Zertifikat mit den
tatsächlichen Daten (z.B. E-Mail-Adresse, Name, Anschrift) übereinstimmen
und dass der öffentliche Schlüssel wirklich dem Antragsteller gehört.
Die Zertifikate werden mit dem privaten Schlüssel des Trust Center digital
unterschrieben und so fälschungssicher gemacht. Jede Veränderung
macht den Ausweis ungültig.
Das Standardformat für Zertifikate ist X.509. Es wird von den gängigen Browsern
und E-Mail-Programmen unterstützt. X.509-Zertifikate beinhalten:
- Den Namen des Ausstellers (üblicherweise eine Certification Authority).
- Informationen über die Identität des Inhabers.
- Den öffentlichen Schlüssel des Inhabers.
- Die digitale Signatur des Ausstellers.
4.4 Ablauf einer sicheren Kommunikation 
Zusammenfassend ist für die Sicherheit beim elektronischen Datenaustausch
folgendes notwendig:
Nachweis der Identität des Kommunikationspartners:
Diesen Teil übernimmt auf der Absenderseite die digitale Signatur des
Fingerprints der Daten, der Unterzeichner weist sich damit zweifelsfrei aus.
Auf der Empfängerseite erfolgt der Nachweis implizit dadurch, dass der
beabsichtigte Empfänger der einzige ist, der die Nachricht entschlüsseln kann.
Vertraulichkeit der Nachricht:
Wird über Verschlüsselungsverfahren hergestellt,
die den Inhalt der Nachricht für Unbefugte unzugänglich machen.
Nachweis der Integrität der Daten:
Auch diesen Teil übernimmt die digitale Signatur des Fingerprints der Daten
durch den Absender.
Hier nun der Ablauf einer sicheren Kommunikation:
Der Absender signiert seine Nachricht mit seinem geheimen
Schlüssel (private key). Damit wird die digitale Unterschrift auf das
Dokument bezogen, so dass jede Änderung daran eine erfolglose Überprüfung
der Signatur zur Folge hat. Gleichzeitig beweist eine digitale Signatur,
dass eine bestimmte Person dieses Dokument unterschrieben hat.
Zum zusätzlichen Verschlüsseln der Nachricht holt sich der
Absender den öffentlichen Schlüssel (public key) des Empfängers. Dieser
wird vom Empfänger und/oder von der Zertifizierungsstelle im Internet
veröffentlicht. Anschließend wird die damit verschlüsselte Nachricht versendet.
Der Empfänger entschlüsselt die Nachricht mit seinem eigenen
privaten Schlüssel. Erst dann ist der verschlüsselte Inhalt für ihn
lesbar. Niemand außer dem Empfänger kann den Inhalt lesen, da nur er den
passenden privaten Schlüssel besitzt.
Um die digitale Signatur des Absenders zu überprüfen, holt sich der
Empfänger den öffentlichen Schlüssel des Absenders aus dem Trust Center. Er berechnet
den Hash-Wert der entschlüsselten Nachricht, entschlüsselt den mitgeschickten
Hash-Wert mit dem öffentlichen Schlüssel des Absenders und vergleicht
beide Werte miteinander.
Sind sie gleich, so ist das elektronisch
unterschriebene Dokument unverfälscht übermittelt worden. Zudem ist der
Beweis erbracht, dass wirklich der Absender die Nachricht versandt hat.
Jeder, der den öffentlichen Schlüssel des Absenders hat, kann
mit diesem überprüfen, ob der entschlüsselte mitgelieferte Extrakt mit
dem aus der Nachricht erneut berechneten Extrakt übereinstimmt und so die
Authentizität der Nachricht und die Identität des Absenders
prüfen (denn nur dieser kann mit seinem geheimen Schlüssel den verschlüsselten
Extrakt erzeugt haben).
© 2003-2010 OSTC GmbH — $security.pg,v 1.23 2006-08-18 18:05:38$
|