IT-Sicherheits-Informationen

Sicherheit im Internet
 1.1 Internet-Dienste
 1.2 Gefährdungen
 1.3 Schutzmöglichkeiten
Firewalls
Virtual Private Network (VPN)
Verschlüsselung und Signatur
 4.1 Kryptographie
  4.1.1 Symmetrische Verschlüsselung
   4.1.1.1 Problem der Symmetrischen Verschlüsselung
  4.1.2 Asymmetrische Verschlüsselung
   4.1.2.1 Problem der Asymmetrischen Verschlüsselung
   4.1.2.2 Lösung durch Zertifikate
   4.1.2.3 Weitere Probleme der asymmetrischen Verschlüsselung
  4.1.3 Hybride Verschlüsselung
 4.2 Digitale Signatur
  4.2.1 Fingerprint
 4.3 Digitale Zertifikate
 4.4 Ablauf einer sicheren Kommunikation

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 (DNS)
  • Webseiten-Zugriff
  • E-Mail-Versand und -Empfang
  • File Transfer
  • File Access
  • 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 falsch 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: Bei vielen im Internet eingesetzten Protokollen werden alle Informationen im Klartext übertragen, so dass 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, so dass 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 den Missbrauch erleichten, 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 Standard-Passwörter eingestellt sind) oder anderweitig in Erfahrung zu bringen (z.B. durch Social Engineering, Passwortlisten oder Brute-Force Methoden), ist Missbrauch möglich.

  • Aktive Inhalte: Durch aktive Inhalte auf Webseiten 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:
  1. 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 Informationen werden protokolliert (geloggt) und wo gespeichert?
    • Besteht die Möglichkeit, dass der Prozess eine Schadfunktion (z.B. Trojanisches Pferd) enthält?

  2. 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.

  3. 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.

  4. 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, Opera, Chrome).

  5. 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?

  6. 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.
    • Korrekte Vergabe von Zugriffsrechten.
    • Nutzung aller vorhandenen Protokollmechanismen.
    • Regelmäßige Backups.
  7. 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 aus mindestens zwei hintereinander angeordneten Systemen (gemäß dem PAP-Modell sogar 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. Sie sollte in Form einer von den Anwendungsrechnern/servern getrennten Hardware realisiert werden, damit eine Kompromittierung von Anwendungen nicht auf sie durchschlägt.

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)
    Nutzen zur Kontrolle die Informationen der IP- und TCP-Protokollschicht, also z.B. IP-Adresse des Rechners, Port-Nummer (Dienst) und Verbindungs-Status. Der Nutzinhalt der Daten wird dabei nicht inspiziert. 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.
    • Das Protokollieren aller Pakete zulassen.
  • Circuit-Level-Gateway (CLG)
    Ein Proxy, der Daten auf der Transportebene (z.B. die Protokolle TCP und UDP) weiterleitet. Der Nutzinhalt 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 wenig Rechenleistung und niedrigen Rechenaufwand.

  • Application Level Gateway (ALG)
    Verwenden die Informationen der Anwendungsschicht, um mit Hilfe von Proxy-Prozessen Verbindungen aufzubauen oder abzuweisen und den übertragenen Nutzinhalt zu analysieren und zu bearbeiten ("weeding").

    Haben einen komplexen Aufbau, jedes zu transferierende und analysierende Protokoll bedarf eines extra Gateway-Prozess und 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).
    • Loggen (protokollieren) 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 lokal auf den Arbeitsplatzrechnern einsetzbar. Kosten viel Performance und ihre Virenmusterdateien müssen ständig aktualisiert werden. Über die Kosten-Nutzen-Relation von Virenscannern herrscht geteilte Meinung. Manche bezeichnen sie als "Snake-Oil" (d.h. teuer, aber für die Katz).

  • Network Access/Admission Control (NAC)
    Prüfen den Update-Status aller an ein Netzwerk angeschlossenen Systeme. Unbekannte oder nicht auf dem aktuellen Stand befindliche Systeme werden in ein Quarantäne-Netzwerk verschoben. Die auf ihnen installierte System- und Anwendersoftware muss aktualisiert werden, bevor sie wieder im normalen Netzwerk aktiv werden können.

  • 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 Ausprägungen 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 Netzwerk-Kopplung mehrerer Standorte darunter verstanden. Auf technischer Seite gibt es eine Vielzahl von Protokollen und Realisierungsmöglichkeiten, die teilweise wenig bekannt sind (IPSec, IKE, SSH, SSL/HTTPS, PGP, GnuPG, …). Beispiel:

  • VPNs auf Transport oder Verbindungsebene
    Führen z.B. zu einer vollständigen Netzwerk-Kopplung auf IP-Ebene: Die VPN-Gegenstellen haben kompletten Zugriff auf die Netzwerke der Partner (z.B. IPSec, OpenVPN, …)

  • 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 (Sicherung der Integrität).

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 Netzwerk- oder Betriebssystemebene zweckmäßig (z.B. IPSec).

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 Algorithmus und den Schlüssel (Key) kennen oder auf irgendeine Weise ermitteln, um sie lesen zu können.

Auf der Ebene der Algorithmen wird heute (im Ggs. zu früher) keine Geheimniskrämerei mehr betrieben. Ein Verschlüsselungsverfahren, das entwertet ist, sobald sein Algorithmus bekannt wird, ist nicht sinnvoll einsetzbar. Durch das Offenlegen möchte man auch erreichen, dass Verschlüsselungsalgorithmen durch viele "Experten" auf Herz und Nieren auf ihre Verwundbarkeit hin abgeklopft werden. Denn immer wieder werden neue bisher unbekannte Verfahren entdeckt, die einen bestimmten Verschlüsselungsalgorithmus "knacken" (d.h. eine effektive Entschlüsselung ohne Kenntnis des Schlüssels erlauben). Je länger kein solches Verfahren zu einem Algorithmus bekannt ist, desto höher wird dessen Qualität eingeschätzt.

Daher werden allgemein bekannte Algorithmen eingesetzt (z.B. DES, AES, RSA, DSA, ElGamal), deren Verhalten über einen Schlüssel (Key) fester oder variabler Länge gesteuert wird, dass man aus dem Schlüsseltext nicht auf den Klartext schließen kann (zumindest nicht ohne sehr großen Aufwand), sofern man den Schlüssel nicht kennt.

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 Secret-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 Schlüsselaustausch 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, wenn man viele Kommunikationspartner hat (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), obwohl beide in einem engen Zusammenhang stehen.

VK und EK sind gleichermaßen zum Verschlüsseln und zum Entschlüsseln geeignet, d.h. was mit einem der beiden 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) OK und einen geheimen Schlüssel (Private Key) PK. 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 OK — 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 PK 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, so dass 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 (TC) 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 die ursprüngliche Nachricht.

4.1.3 Hybride Verschlüsselung

Beseitigt durch eine Kombination von Secret- und Public-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 ein symmetrisches Verfahren erzeugt und nur dieser Session Key wird mit dem Public-Key-Verfahren verschlüsselt. Die Originalnachricht wird unter Benutzung des Session Keys per symmetrischem 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 hoch ist, um eine solche Attacke mit dem Public-Key-Verfahren durchzuprobieren (nur wenn sie groß genug und gleichwahrscheinlich sind). Zum Erzeugen der Schlüssel wird Zufall hoher Qualität benötigt, damit Schlüssel nicht vorhersagbar sind. Moderne Prozessoren besitzen dafür sogar eine interne Hardware-Einheit.

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 Dokuments 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 seines Inhalts ist nicht möglich, ohne dass die Signatur nicht mehr zu den Daten passt.

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 PK zum Verschlüsseln und damit den öffentlichen Schlüssel OK 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 (z.B. MD5, SHA1, BlowFish, …)

Dieser Extrakt wird mit dem privaten Schlüssel PK 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 OK 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 in Form eines Keys 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 (z.B. E-Mail-Adresse, Name, Anschrift) mit den tatsächlichen Daten ü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, sofern er korrekt geprüft wird.

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:
  1. Nachweis der Identität der Kommunikationspartner:
    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.

  2. Vertraulichkeit der Nachricht:
    Wird über Verschlüsselungsverfahren hergestellt, die den Inhalt der Nachricht für Unbefugte unzugänglich machen.

  3. 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 zwischen Absender B und Empfänger A:
  1. Der Absender B signiert seine Nachricht mit seinem geheimen Schlüssel (private key) PKB. 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.

  2. Zum zusätzlichen Verschlüsseln der Nachricht holt sich der Absender B den öffentlichen Schlüssel (public key) OKA des Empfängers A. Dieser wird vom Empfänger A und/oder von der Zertifizierungsstelle im Internet veröffentlicht. Anschließend wird die damit verschlüsselte Nachricht versendet.

  3. Der Empfänger A entschlüsselt die Nachricht mit seinem eigenen privaten Schlüssel PKA. Erst dann ist der verschlüsselte Inhalt für ihn lesbar. Niemand außer dem Empfänger A kann den Inhalt lesen, da nur er den passenden privaten Schlüssel besitzt.

  4. Um die digitale Signatur des Absenders B zu überprüfen, holt sich der Empfänger A den öffentlichen Schlüssel OKB des Absenders B aus dem Trust Center. Er berechnet den Hash-Wert der entschlüsselten Nachricht, entschlüsselt den mitgeschickten Hash-Wert mit dem öffentlichen Schlüssel OKB des Absenders B 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 B die Nachricht versandt hat.

    Jeder, der den öffentlichen Schlüssel OKB des Absenders B 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 B prüfen (denn nur dieser kann mit seinem geheimen Schlüssel den verschlüsselten Extrakt erzeugt haben).