Sicherheit in Netzen

Prof. Jürgen Plate
Dipl.-Ing. Jörg Holzmann

5 Kryptoverfahren

Schon seit längerer Zeit überlegen sich Experten, wie man die Sicherheitsprobleme in den Griff bekommen kann. Den interessantesten Ansatz, der auch schon rege benutzt wird, stellt ein mathematisches Verfahren dar, das 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). Philip Zimmermann vom MIT hatte dieses 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.

Es gibt bei dem Verfahren zwei Schlüssel: einen öffentlichen und einen privaten. Zum Verschlüsseln einer Nachricht benutzt PGP den öffentlichen Schlüssel des Empfängers. Die verschlüsselte Datei kann nun auch über abhörbare Kanäle verschickt werden, denn nur der Besitzer des zu dem öffentlichen Schlüssel gehörenden privaten Schlüssels kann die chiffrierte Nachricht entschlüsseln. Selbst mit dem öffentlichen Schlüssel, der zum Chiffrieren benutzt wurde, läßt sich der Inhalt der Nachricht nicht mehr lesbar machen. Natürlich kann man jede Art von Dateien verschlüsseln. Auf Wunsch kann PGP die Datei automatisch noch komprimieren oder als 7-Bit-ASCII-Code ausgeben.

PGP kann aber noch mehr: Sie können nämlich ein Dokument mit einer Signatur versehen. PGP berechnet mittels kryptographischer Verfahren eine Art Quersumme über Ihr Dokument und verschlüsselt diese mit Ihrem privaten Schlüssel. Jeder Empfänger dieses Dokumentes kann nun mittels PGP und Ihrem öffentlichen Schlüssel die Signatur überprüfen. Wurde das Dokument unterwegs auch nur um ein Zeichen geändert, so wird dies von PGP erkannt und Ihnen mitgeteilt. Sehr nützlich ist auch die Möglichkeit, Verschlüsselung und Signatur zu kombinieren. Durch die Verschlüsselung gehen Sie sicher, daß nur der Adressat das Dokument lesen kann und durch die Signatur kann Ihr Addressat sicher gehen, daß dieses Dokument auch wirklich von Ihnen stammt.

Natürlich gibt es kein absolut sicheres kryptographisches Verfahren. Auch das von PGP benutzte 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. PGP speichert diesen in einer Datei, die durch ein von Ihnen gewähltes Paßwort geschützt wird. Sollte jemand nun in den Besitz dieser Datei und 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. PGP kann 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. Das Prinzip dahinter ist eigentlich ganz einfach:

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.

Wenn PGP ein Schlüsselpaar für Sie erzeugt, dann berechnet es zwei sehr große Primzahlen. (Solche Zahlen können durchaus mehrere hundert Stellen haben.) Eine davon bildet Ihren privaten Schlüssel, das Produkt ist Ihr öffentlicher Schlüssel. Dazu ein Beispiel: mit den Primzahlen 11 und 29 würde Ihr öffentlicher Schlüssel 11*29=319 lauten. Wenn jemand aus dem öffentlichen Schlüssel die zugehörigen Primfaktoren ausrechnen will, so muß er nur nach der Zahl suchen, die den öffentlichen Schlüssel ohne Rest teilt. In unserem Beispiel würde man da sehr schnell auf die 11 stoßen. So einfach es bei kleinen Zahlen aussieht, so schwierig wird es mit solchen Monsterzahlen, wie PGP sie erzeugt. Tatsächlich gibt es keine mathematische Methode, die es ermöglicht, die Zahlen zu finden, die eine vorgegebene Zahl ohne Rest teilen. Man kann das nur durch Probieren aller kleineren Zahlen erhalten. Natürlich muß man nicht alle Zahlen durchprobieren. Man kann beispielsweise sofort alle geraden Zahlen weglassen, und man muß auch nur alle Zahlen ausprobieren, die kleiner als die Wurzel der vorgegebenen Zahl sind. Doch selbst mit den besten mathematischen Methoden bleibt immer noch ein gewaltiger Rechenaufwand übrig. Als Beispiel können Sie ja mal versuchen die beiden Teiler der Zahl 4 294 967 297 zu finden.

PGP gibt es für DOS, Macintosh und Unix (für fast alle Versionen). Natürlich sind die Formate kompatibel, d. h. eine auf einem Mac verschlüsselte Nachricht kann auch auf einem DOS-System gelesen werden. Für graphische Oberflächen gibt es meist schon Shells, die die Benutzung von PGP vereinfachen.

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:

Digitale Unterschriften

  1. Der Absender einer Nachricht verschlüsselt mit seinem privaten Schlüssel eine persönliche Notiz (= digitale Unterschrift).
  2. Der Empfänger erhält vom Absender dessen öffentlichen Schlüssel.
  3. Nun kann der Absender am Ende jeder seiner Nachricht seine digitale Unterschrift anhängen.
  4. Der Empfänger kann mit dem öffentlichen Schlüssel des Absenders dessen digitale Unterschrift verifizieren.
Elektronische Unterschrift mit PGP:

Beispiel:

---------BEGIN PGP SIGNATURE-------
Vesion: 2.6.2i

iQB1AwUBMALA1zhgfzaigfhdfgakgpfhbvf35iztikahffhkfdfgflgfgGRFG
hdfgfgfgf9trerzutibvie04374ggisezrfwjegrrvyaaSDE7e4378723EEaq
hdc<23adsfqe124da<dafbbbigfb££hvdfvedfvd
=8e>Asd
---------END PGP SIGNATURE---------

Steganographie als Verschlüsselungstechnik

Derzeit 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:

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.

6 VPN

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

Zum Inhaltsverzeichnis        Zum nächsten Abschnitt


Copyright © Prof. Jürgen Plate, Fachhochschule München