Seminar Rechnernetze Sommersemester 1999 Virtuelle Private Netzwerke (Teil II) Von Nils Hanßen Inhalt: Tunneling................................................................................................................................... 3 Generic Routing Encapsulation..................................................................................................4 RADIUS.....................................................................................................................................6 Service Level Agreements (SLAs).............................................................................................7 Tunneling Protokolle..................................................................................................................8 Layer-2 Tunnelungen..................................................................................................................8 Point-to-Point Tunneling Protokoll (PPTP)................................................................................8 Layer-3 Tunnelungen..................................................................................................................9 Datenverschlüsselung................................................................................................................10 Zertifikate..................................................................................................................................12 Aufbau des IPSec-Frameworks.................................................................................................14 Security Associations................................................................................................................16 Zertifikate in IPSec...................................................................................................................17 Secure Sockets Layer (SSL).....................................................................................................18 S-MIME....................................................................................................................................20 2 Tunneling Tunneling bezeichnet eine Methode der Datenübertragung, bei der Datenströme über eine virtuelle, auf das unterliegende öffentliche Netz aufgeprägte Struktur – den sog. Tunnel – übertragen werden. Man spricht hierbei auch von einem Overlay-Modell. Ein Tunnel kann sich dabei nur über einen Teil des zurückzulegenden Weges oder über die gesamte Distanz erstrecken. Jeder Tunnel besitzt einen Ingress- und einen Egress-Punkt, also einen Tunneleingang und einen Tunnelausgang. Der Tunneleingang wird häufig auch als ForeignAgent und der Tunnelausgang als Home-Agent bezeichnet, falls sich ein mobiler Rechner über ein öffentliches Netzwerk in ein privates Netz einwählt. Man unterscheidet zwischen statischen und dynamischen Tunneln. Statische Tunnel werden dort eingesetzt, wo die getunnelte Verbindung über einen längeren Zeitraum aufrechterhalten werden soll. Ein Anwendungsbeispiel für solch einen statischen Tunnel wären z.B. zwei LANs einer Firma, die über das Internet miteinander verbunden werden sollen, da die Zweigstellen der Firma an unterschiedlichen Orten stehen. Da solche Firmen-LANs in der Regel über den ganzen Tag Daten austauschen, würde man einen solchen Tunnel als statisch bezeichnen; der Tunnel bleibt den ganzen Tag über bestehen. Dynamische Tunnel hingegen werden bei kurzzeitigen Verbindungen, also sozusagen auf Anforderung etabliert. Hier wäre als Beispiel eine Internet-Banking Session zu nennen, bei der während der Sitzung ein Tunnel zwischen der Bank und dem Kunden errichtet wird. Ist der Kunde mit seinen Aktivitäten fertig, wird die getunnelte Verbindung wieder geschlossen. Tunnel können an unterschiedlichen Positionen des gesamten Übertragungsweges beginnen und enden. Je nach verwendetem Tunneling-Protokoll befinden sich die Tunnelenden Direkt beim Client und Server (die gesamte Route wird getunnelt) Bei zwei Routern, die geographisch getrennt sind (Teilstrecke wird getunnelt) Jeweils bei den NASs (Network Access Switches) der POPs (Point of Presence) (Teilstrecke wird getunnelt). Mischformen Bild 1: Tunnel überbrücken Gesamt- oder Teilstrecken. PPTP: Tunnel reicht vom Client bis zum Server ATMP: Tunnel reicht von NAS zu NAS. 3 Um Datenpakete unterschiedlichster Protokolle über ein öffentliches Netz (z.B. das Internet) zu übertragen, werden die Daten am Tunneleingang in Header desjenigen Protokolls gekapselt, das in dem öffentlichen Netz benutzt wird. Die Datenpakete durchlaufen den Tunnel nun wie „gewöhnliche“ Datenpakete des öffentlichen Netzes und sind von ihnen nicht zu unterscheiden. Haben die Pakete den Endpunkt des Tunnels erreicht, wird der hinzugefügte Header wieder entfernt und das Paket an seinen Zielort weitergeleitet. Man unterscheidet sogenannte „voluntary“ und „compelling“ Tunnel, also „freiwillige“ und „zwingende“. Ein freiwilliger Tunnel wird dabei auf Wunsch des Benutzers errichtet, z.B. wenn sich ein Nutzer per Internet mit seiner Bank verbindet. Eine Firma, deren Mitarbeiter sich von zuhause in die Firmenrechner über ein VPN verbinden möchten, hat hingegen Interesse an einem zwingenden Tunnel. Für den Mitarbeiter ist es weniger relevant, ob die Daten von einem Drittem abgehört werden, für die Firma hingegen schon. Generic Routing Encapsulation (GRE) Mit dem GRE-Protokoll wurde eine erste Standardisierung in Tunneling vorgenommen. Der eigentlichen Nutzlast (payload) wird ein spezieller Header hinzugefügt, der Informationen über das Protokoll der Nutzlast, eine Checksumme, Informationen über die Identität der Datenquelle, Informationen über die Verwendete Verschlüsselung sowie RoutingInformationen über den Tunnelausgang enthält. Diesem vorgelagert ist ein IP-Header, der zur Versendung über das Internet (oder eines anderen öffentlichen Netzes) genutzt wird. GRETunnel werden überlicherweise über einen Ingress- sowie einen Egress-Router implementiert, wobei die Daten konventionell bis zum Tunneleingang (dem Ingress-Router) transportiert und dort in den GRE-Header „verpackt“ werden. Diese „Verpackung“ wird nun normal über das öffentliche Netz geroutet, bis sie den Egress-Router (Tunnel-Endpunkt) erreicht hat. Dort wird der Inhalt wieder „ausgepackt“ und zu seinem entgültigen Zielort transportiert, der sich durch den Original-Header der Nutzlast ermitteln läßt. Die Router, über die das Paket seinen Weg durch das öffentliche Netz zurücklegt, wissen nichts über das VPN. Die Adresse eines Tunnelausgangs wird stets in dem Protokoll des öffentlichen Netzes (meist IP) spezifiziert, da das Routing über das öffentliche Netz erfolgt. Die Adresse des Tunneleingangs hingegen wird mit der Adresskonvention des privaten Netzes angegeben. Dies erfordert natürlich, daß sich die Tunnelenden an den Übergängen der Netze befinden. Bild 2: Generic Routing Encapsulation (GRE) 4 GRE-Tunnelungen sind überwiegend als Point-to-Point Lösungen zu finden, wenn auch vereinzelt Umsetzungen mit Point-to-Multipoint existieren. Hierbei kann ein Tunnel mehrere Ausgänge haben, die beim Tunneleintritt eines Pakets spezifiziert werden. Kapselungstechniken kommen auch dann häufig zum Einsatz, wenn sich die Protokolle der Nutzlast und des öffentlichen Netzes nicht unterscheiden. Ein Beispiel wären zwei TCP/IPLANs an geographisch unterschiedlichen Positionen, die über das Internet kommunizieren möchten, sich intern allerdings nicht an die Adress-Konventionen des Internet halten oder keine eindeutigen Adressen verwenden. Um korrekt über das Internet geroutet zu werden müssen sie am Tunneleingang mit IP-Headern gekapselt werden, die den AdressKonventionen entsprechen. Obwohl die Protokolle identisch sind besteht also die Notwendigkeit der Kapselung, da etwa bei der Planung des LANs die Möglichkeit über das Internet zu kommunizieren nicht bedacht wurde. Im Gegensatz zu Router-Router Tunnels gibt es auch Point-Point (Host-Host) Tunnels, wie etwas bei dem Layer-2 Tunneling Protokoll (L2TP) oder dem Point-to-Point Tunneling Protokoll (PPTP), die später noch detaillierter betrachet werden. Während sich bei PPTP der Tunnel über die gesamte Strecke von der Quelle bis zum Ziel erstreckt, ist dies bei RouterRouter Tunnels nicht der Fall, da dort die Daten zunächst ungekapselt bis zum Ingress-Router geschickt werden und auch ab dem Tunnelausgang bis zu ihrem Zielort ungekapselt transportiert werden. Bild 3: Ablauf einer GRE-Verbindung 5 Anstatt eines werden auch häufig mehrere Tunnels benutzt, um z.B. mehrere Zweigstellen eines Unternehmens miteinander zu verbinden. Die Struktur der Tunnelverbindungen kann dabei frei gewählt werden und es können auch redundante Tunnel – die also die gleichen Quell- und Zielpunkte haben angelegt werden. Es muß beachtet werden, daß die Spezifizierung der Tunnelenden stets mittels der in dem öffentlichen Netz verwendeten Adressen erfolgt. Einer der großen Vorteile der Tunnel-Technik ist, daß unterschiedliche VPNs, dich sich ihrer gegenseitigen Existenz nicht bewußt sind, intern die gleichen Adreßräume benutzen können ohne daß sich Probleme beim Routing in dem öffentlichen Netz ergeben. Im Gegensatz zum Controlled Route Leaking (CRL), wo die Daten nicht gekapselt werden, können sich nämlich keine doppelten Adressen ergeben, vorausgesetzt die Tunneleingänge halten sich an die Adress-Konventionen des öffentlichen Netzes. Weiterhin kann ein Tunnel ohne großen Aufwand auf neue interne Protokolle des VPN eingestellt werden, so daß die interne Struktur des privaten Netzes weitgehend irrelevant ist und der eigentliche Vorgang des Tunnelns für den Benutzer transparent ist. Als Nachteil des GRE-Tunneling gelten die hohen Verwaltungskosten, die schnell mit der Anzahl der bestehenden Tunnel anwachsen. Da die Ingress- und Egress-Router manuell konfiguriert werden müssen (bei neuen sowie bei Änderungen bestender Tunnel), ist der Verwaltungsaufwand bei großen VPNs nicht zu unterschätzen. Lösungen, in denen Tunnel automatisch errichtet werden - man spricht hier auch von „triggered Tunnels“ - haben den Nachteil, daß sehr leicht Situationen auftreten können, in denen das Routing suboptimal verläuft. Dabei kann es passieren, daß ein Paket mehrmals über den gleichen Tunnel geschickt wird. Auch die Performance und somit auch die QoS (Quality of Service) verschlechtern sich bei gleichzeitiger Verwaltung von vielen Tunnels. Außerdem sinkt auch die Performance der Einkapselung an den Tunneleingängen mit der Anzahl der implementierten Tunnels. Ist die Kapselung am Tunneleingang langsamer als die Verarbeitungsgeschwindigkeit des Routers, so bedeutet dies natürlich auch Einbußen in der Routing-Performance des Tunnels. Der generelle Nachteil bei Overlay-Modellen ist in dem fehlenden Einfluß auf das Routing zu sehen. Es ist bei der Planung eines Overlay-VPN nur schwer abzusehen, mit welcher Geschwindigkeit das Netz später arbeiten wird. Die Ingress- und Egress-Router können sich entweder beim VPN-Benutzer selber als sog. CPE (Customer Premise Equipment) oder beim ISP (Internet-Service Provider) befinden. Entscheidet sich der Nutzer für eine Verwaltung der Router durch den ISP, so kann er von den Kenntnissen des ISP über die Netzinfrastruktur profitieren und dadurch die RoutingPerformance erhöhen. Verwaltet der Nutzer die Geräte hingegen selber, so kann es dadurch zu suboptimalem Routing - zumindest im Einflußbereich des ISP - kommen. Bei dieser Vorgehensweise errichtet er sogar ohne Wissen des ISP ein VPN, das auch viele weitere Subnetze überspannen kann. RADIUS RADIUS steht für „Remote Authentication Dial-In User Service“ und bezeichnet einen zentralen Server, der die Daten der Benutzer eines VPN verwaltet. Verbindet sich der ein Benutzer über eine temporäre Verbindung mit dem VPN, so kontaktiert der Home-Agent (also das Tunnelende) den RADIUS-Server und verifiziert mit seiner Hilfe den Benutzernamen sowie das Passwort und optionale zusätzliche Informationen über den 6 Benutzer. Verläuft der Vorgang positiv, wird erst dann der Benutzer mit dem eigentlichen privaten Netz „hinter“ dem Home-Agent verbunden. Auch Zugangsrechte und Nutzungsdauern der einzelnen Benutzer werden auf dem RADIUS-Server gespeichert. Der RADIUS-Server führt auch häufig Statistiken über das VPN und benachtigt die Netzwerkadministatoren bei vordefinierten kritischen Zuständen. Daten wie durchschnittliche oder Spitzennetzauslastung sowie ein Profil über das Benutzerverhalten über die Stunden des Tages werden aufgezeichnet und in einer Datenbank zur späteren Auswertung und Verbesserung des Netzes festgehalten. Der RADIUS-Server wurde eingeführt um eine zentrale Verwaltung aller mit dem Netz zusammenhängenden Informationen zu ermöglichen. Wird in einem firmenweiten Netz ein Benutzer zu einer sog. „Community of Interest“, also einem bestimmten Benutzerkreis des VPN hinzugefügt, so muß dies nur an einer Stelle, nämlich genau auf dem RADIUS-Server geschehen. Selbst wenn der Benutzer später in einer anderen Abteilung oder sogar einer anderen Stadt arbeitet, so müssen nur einmal die Informationen auf RADIUS verändert werden. Die Überprüfung des Passworts des Benutzer erfolgt häufig mit dem Challenge Handshake Authentication Protokoll (CHAP). Dieses Protokoll macht eine Übertragung des Passworts über das Netz nicht erforderlich. Vielmehr erzeugt der RADIUS-Server eine sog. „Challenge“, einen Datenblock, der an den Benutzer geschickt wird. Auf dem Computer des Nuters wird diese Challenge mit einem vorher vereinbarten Hash-Algorithmus und seinem Passwort zerhackt. Das Ergebnis dieser Zerhackung wird an den RADIUS-Server zurückgeschickt. RADIUS nimmt nun selber die Zerhackung der ursprünglichen Challenge mit dem Passwort des Benutzers vor und vergleicht das Ergebnis des Benutzers mit seinem eigenen. Sind die Ergebnisse identisch, so ist der Benutzer im Besitz des richtigen Passwort für den eingeloggten Account und bekommt Zutritt zu dem privaten Netzwerk. Durch Vergleich der Challenges vor und nach dem Zerhacken auf das richtige Passwort zu schließen ist sehr unwahrscheinlich, erfolgreiche Lausch-Attacken bei diesem Verfahren sind also auszuschließen. Service Level Agreements (SLAs) Service Provider bieten häufig sogenannte Service Level Agreements (SLAs) an, die dem Nutzer einen bestimmten Quality of Service (QoS) des VPN-Verkehrs zusichern. Der Anbieter verpflichtet sich also gegenüber dem Kunden Netzausfälle unter einem bestimmtem Maß zu halten sowie Pakete in annehmbarer Zeit zuzustellen. Je nach den Anforderungen der jeweiligen Anwendung wird dabei individuell auf den Nutzer eingegangen. Weicht der ISP signifikant von diesen Zusicherungen ab, so erhält der Nutzer häufig ein Teil der Gebühren für die Bereitstellung der Infrastruktur zurück. Die selbständige Verwaltung des VPN durch den Nutzer hätte auch den Nachteil, daß SLAs fehlen und somit keine Zusicherungen bezüglich der Verfügbarkeit des Netzes bestehen. Möchte ein Benutzer ein VPN errichten, daß sich über mehrere Subnetze erstreckt, so ist die Aushandlung eines SLAs schwierig, da nun mehrere ISPs die Verantwortung für die Performance des Netzes tragen. Um zu verhindern, daß Netzteilnehmer von außerhalb des VPN Daten in den Tunnel einspeisen bedient man sich häufig Ingress-Filter, die Datenpakete, die nicht aus dem VPN kommen herausfiltern. Somit ist der Zugriff auf die Tunneleingänge auf einen bestimmten Personenkreis beschränkt. 7 Tunneling-Protokolle Es gibt viele Spezifikationen von Netzwerkprotokollen, die sich im RFC (Request for Comment) Status der IETF (Internet Engineering Task Force) befinden. Drei verbreitete Spezifikationen sind das Point-to-Point Tunneling Protokoll (PPTP), das Layer-2 Tunneling Protokoll (L2TP) sowie das IPSec (IP Security) Protokoll. Alle drei oder eine Kombination dieser sollen in der nächsten Version des IP-Protokolls Ipv6 unterstützt werden. IPSec findet bereits teilweise in der aktuellen Version (Ipv4) des Internet-Protokolls Verwendung. Layer-2 Tunnelungen Point-to-Point Tunneling Protokoll PPTP wurde von Microsoft und der Firma Ascend ins Leben gerufen und ist eine Erweiterung des Point-to-Point Protokolls (PPP) von Microsoft. Ursprünglicher Einsatzbereich des Protokolls war das Tunneln von Paketen für einen Remote Access Server (RAS) Ascends sowie für Windows NT bei Microsoft. Es setzt auf OSI-Ebene 2 (Transport-Layer) an. PPTP ermöglicht den sicheren Datentransfer zwischen einem Client und einem Server, der z.B. in einer großen Firma steht. Die Tunnelung erfolgt auf TCP/IP-basierten öffentlichen Netzen, also z.B. dem Internet. Das Protokoll kapselt PPP-Datenpakete in IP-Datagramme und verschickt sie über das Internet. Ein typischer Anwedungsfall des PPTP ist ein Client (u.U. auch mobil), der mit einem Firmeninternen LAN kommunizieren möchte. Dabei verbindet sich der Client mit dem Network Access Server (NAS) seines Internet Service Providers (ISP). Steht die PPPVerbindung zwischen Client und NAS, wird eine weitere Verbindung zwischen NAS und einem PPTP-Server in der Firma hergestellt. Diese Verbindung stellt den eigentlichen Tunnel dar, wobei der NAS den Tunneleingang und der PPTP-Server den Tunnelausgang bezeichnet. Bild 4: Eine getunnelte PPP-Connection L2TP verbindet die guten Eigenschaften von PPTP und dem Layer-2 Forwarding Protokoll (L2F) der Firma Cisco. Auch L2TP arbeitet auf der Layer 2 des OSI-Modells. 8 Layer-3 Tunnelungen IP-Security (IPSec) IPSec ist aus dem generellen Bestreben der Implementierung von Sicherheitseinrichtungen in das IP Protokoll entstanden. Es besteht aus einem ganzen Framework von offenen Standards, die auf Bestreben der IETF entstanden. Es findet weitreichende Unterstützung durch eine Vielzahl von großen Netz-Herstellern sowie der Automotive Network Exchange Group (ANX), eine Vereinigung von Herstellern und Zulieferern von Netzwerkkomponenten. IPSec eignet sich ausschließlich für auf IP aufbauende VPNs, beinhaltet allerdings starke Sicherheitsmechanismen, Verschlüsselung, Autenzität sowie Datenintegrität und Schlüsselverwaltung. Alle diese Sicherheitsmechanismen IPSecs sind optional. IPSec kommt in OSI-Ebene 3 zum Einsatz (Netzwerk-Ebene). Folgende Bereiche sollen mit IPSec abgedeckt werden: Data origin authentication – stellt sicher, daß jedes Datagramm tatsächlich von dem Sender stammt, von dem es zu kommen scheint. Data integrity (Datenintegrität) – stellt sicher, daß Daten nicht während der Übertragung verändert wurden. Diese Veränderunge schließen vorsätzliche und durch die Hardware verursachte Fehler mit ein. Test auf Datenintegrität dient also auch der Fehlererkennung und Fehlerbereinigung. Vertrauliche Behandlung der verschickten Daten – wird durch entsprechende Verschlüsselung erreicht. Replay protection – stellt sicher, daß ein Angreifer nicht in der Lage ist, einzelne Datagramme abzufangen und später wiederzugeben ohne entdeckt zu werden. Automatisierte Schlüsselverwaltung für unterschiedliche Verschlüsselungsverfahren. Diese Automatisierung soll den manuellen administrativen Aufwand auf ein Minimum beschränken und somit die Skalierbarkeit auch bis zu sehr großen VPNs ermöglichen. Später, nach einem kurzen Einblick in die Datenverschlüsselung wird noch näher auf die Implementierung von Sicherheitsmechanismen in IPSec eingegangen. PPTP und L2TP werden eher bei nicht auf IP aufbauenden Umgebungen eingesetzt, in denen auch mehrere Protokolle gleichzeitig verarbeitet werden können. 9 Bild 5: Eigenschaften von PPTP, L2TP und IPSec Datenverschlüsselung Um dem Wort „private“ gerecht zu werden, muß neben der bereits behandelten virtuellen Struktur, die dem unterliegenden Netz aufgeprägt wird, besonders auch die Verschlüsselung der versendeten Daten gewährleistet werden. Verschlüsselungsverfahren können in zwei Klassen – symmetrische und asymmetrische – Verfahren aufgeteilt werden. Symmetrische Verfahren zeichnen sich dadurch aus, daß zur Kodierung sowie Dekodierung der Daten ein (geheimer) Schlüssel verwendet wird, der beiden Seiten bekannt sein muß. Es gibt zwei Typen von symmetrischen Algorithmen: 1. Block-Algorithmen – Sie teilen die Daten in Blöcke vorgegebener Größe auf und kodieren blockweise. Häufig werden Kodierungsergebnisse aus früheren Blöcken in die Codierung folgender Blöcke eingebunden. Somit hängt die Kodierung späterer Blöcke von der Kodierung aller vorhergehenden Blöcke ab. Dieses Verfahren wird auch Cipher-Block-Chaining genannt. Einem Eindringling, der sich nur einen Teil der Blöcke beschafft, gelingt es also nicht, diese Teilmenge der Nachricht zu entschlüsseln – selbst wenn er das für einen einzelnen Block richtige 10 Codebuch besitzt. Ein Codebuch ist dabei eine Art Tabelle, in der Klartext und deren korrespondierende Zeichen in der Verschlüsselung miteinander assoziiert werden. Ein bekannter Vertreter der Block-Algorithmen ist der in den 70er Jahren von IBM entwickelte Data-Encryption-Standard (DES). 2. Stream-Algorithmen – Sie operieren auf den einzelnen Bits bzw. Bytes des Datenstroms. Ein bekannter Vertreter dieser Algorithmen ist der A5, der im Mobilfunkstandard GSM eingesetzt wird. geheimer Schlüssel ABC geheimer Schlüssel $?@ Verschlüsselung Klartext ABC Entschlüsselung Chiffrierter Text Person A Originaltext Person B Bild 6: Symmetrische Verschlüsselung und Entschlüsselung Bei den symmetrischen Verfahren muß der Schlüssel also vor der Etablierung einer sicheren Verbindung über einen sicheren Kanal ausgetauscht werden. Wie aber soll der Austausch über einen sicheren Kanal erfolgen, wenn die Voraussetzung für einen solchen Kanal wiederum ein Schlüssel ist, der beiden Seiten bekannt sein muß ? Um dieses Problem zu lösen bedient man sich oft sogenannter asymmetrischer Verfahren, um den anfänglichen Austausch des geheimen Schlüssels (des symmetrischen Verfahrens) über einen „sicheren“ Kanal zu ermöglichen. Dabei besitzt jede Seite jeweils einen sog. Privaten sowie einen öffentlichen Schlüssel (private und public key). Der öffentliche Schlüssel wird dabei (wie der Name schon impliziert) der Öffentlichkeit verfügbar gemacht. Er wird benutzt um Daten für einen bestimmten Adressaten zu verschlüsseln. Daten, die mit dem öffentlichen Schlüssel von Subjekt A chiffriert wurden, können einzig und allein mit dem privaten Schlüssel des Subjektes A wieder entschlüsselt werden. Selbst der Sender kann also einmal für einen Empfänger chiffrierte Daten nicht selber wieder entschlüsseln! Sind der öffentlichen Schlüssel des asymmetrischen Verfahrens dem jeweils anderen Kommunikationspartner bekannt, kann die sichere Übertragung oder Aushandlung des „symmetrischen“ Schlüssels erfolgen. Nun kann die Übertragung der eigentlichen Nutzdaten beginnen, die mit dem Schlüssel des symmetrischen Verfahrens kodiert werden. Der wohl bekannteste Algorithmus, der mit dem private/public key Verfahren arbeitet ist der Internal Data Encryption Algorithm (IDEA), der auch in der Shareware-Krypto-Programm „Pretty Good Privacy“ (PGP) Verwendung findet. 11 B´s öffentlicher Schlüssel ABC B`s privater Schlüssel $?@ Verschlüsselung Klartext ABC Entschlüsselung Chiffrierter Text Person A Originaltext Person B Bild 7: Verschlüsselung/Entschlüsselung mit öffentlichem/privatem Schlüssel Der Grund, warum man nicht für alle Datenversendungen asymmetrische Verfahren benutzt ist vor allem in der Rechenintensität dieser Methoden zu suchen. Symmetrische Verfahren sind meist sehr viel effizienter und können wesentlich leichter in Hardware realisiert werden. Eine Kombination der beiden Verfahren, bei der die Schlüsselaushandlung/Übertragung asymmetrisch und die eigentlich Datenverschlüsselung symmetrisch realisiert wird kompensiert also Schwächen der separaten Lösungen. Um die Sicherheit der Kommunikation auch über langfristige Zeiträume aufrechtzuerhalten, wird oft nach einer bestimmten Zeit, die sich hauptsächlich nach der Sensitivität der Daten richtet, ein neuer Schlüssel ausgehandelt. Auch private/public-Key Verfahren sind keineswegs absolut sicher. Der Algorithmus basiert auf der Faktorisierung großer Zahlen und mit der Rechenleistung moderner Computeranlagen ist es heute durchaus möglich Schlüssel zu knacken. Gerade im Internet gibt es immer wieder öffentlich ausgeschriebene Wettbewerbe in denen aufgerufen wird von einem öffentlichen Schlüssel auf den zugehörigen privaten Schlüssel zu schließen. Je länger ein Schlüssel dabei ist, umso länger dauert es auch ihn zu knacken. Üblich sind heutzutage Schlüssellängen von 128 Bit und mehr und sie wird auch mit steigender Rechenleistung moderner Rechenanlagen in Zukunft deutlich in die Höhe schnellen. Nicht zuletzt die Entdeckung eines Algorithmus zur Faktorisierung von großen Zahlen in polynomieller Zeit (bis vor einigen Jahren unbekannt) wird seinen Beitrag zum schnellen Anstieg der Schlüssellänge leisten. Zertifikate Ein grundlegendes Problem der asymmetrischen Verfahren beim Schlüsselaustausch ist das der Authentizität. Denn man kann sich keineswegs sicher sein, daß der Kommunikationspartner auch wirklich derjenige ist, für den er sich ausgibt. Ein Dritter, der den Kanal belauscht, könnte den öffentlichen Schlüssel des Gegenübers abfangen und stattdessen seinen eigenen Schlüssel übermitteln ohne, daß der Adressat dies merkt. Somit 12 könnte dieser Dritte jede Nachricht mittels seines privaten Schlüssels lesen, da sie ja in Wirklichkeit mit seinem öffentlichen Schlüssel kodiert wurde. Weiterhin könnte er die abgefangenen Nachrichten mit dem öffentlichen Schlüssel des tatsächlichen Adressaten verschlüsseln und weiterleiten, so daß die Nachrichten auch ihren wirklichen Adressaten erreichen und somit niemand die Abhörattacke bemerkt. Abhilfe zu diesem Problem schaffen sogenannte Zertifikate, durch die ein Individuum seine Identität beweisen kann. Zertifikate assoziieren den öffentlichen Schlüssel mit der Identität seines Besitzers. Sie werden von vertrauenswürdigen öffentlichen Einrichtungen – Certification Agencies (CAs) – vergeben und mittels des privaten Schlüssels der CA signiert. Eine Signierung ist dabei nichts anderes als eine Chiffrierung des Zertifikats mit einem privaten Schlüssel. Vor der eigentlichen Datenübertragung tauschen die Partner nun anstatt der öffentlichen Schlüssel ihre Zertifikate aus und überprüfen die Authentizität derselben mit Hilfe des öffentlichen Schlüssels der CA. Sind sie in der Lage, daß Zertifikat mit dem öffentlichen Schlüssel der CA zu entschlüsseln, dann können sie sicher sein, daß das Zertifikat auch wirklich von der CA ausgegeben wurde, weil ja nur sie im Besitz des privaten CA-Schlüssels ist. Daraus kann man also auf die Richtigkeit des Zertifikates schließen. Nach positivem Verlauf können die Subjekte nun sicher sein, daß sie den richtigen öffentlichen Schlüssel des Adressaten besitzen. Neben dem öffentlichen Schlüssel und den Benutzerdaten enthält ein Zertifikat auch häufig zusätzliche Daten wie Ausgabedatum und Verfallsdatum. Die Signierung eines Dokumentes kann auch als eine Unterschrift verstanden werden. Da der private Schlüssel geheim ist, ist nur der Besitzer des Schlüssels in der Lage ein Dokument mit seiner „Unterschrift“ zu signieren. Ob ein Subjekt A ein Dokument signiert hat, kann stets mit dem öffentlichen Schlüssel des Subjektes A überprüft werden. Herrscht eine Signierungspflicht bei Verträgen oder geschäftlicher Email kann nun jemand nicht mehr behaupten, er hätte ein bestimmtes Dokument nicht verfaßt, weil dies mittels seines öffentlichen Schlüssels widerlegt werden kann. A`s öffentlicher Schlüssel A´s privater Schlüssel ABC $?@ Verschlüsselung Klartext ABC Entschlüsselung und Beurkundung Chiffrierter Text Person A Originaltext Person B Bild 8: Beurkundung durch signieren mittels privatem Schlüssel 13 Aufbau des IPSec - Framworks Die Sicherheitsmechanismen des IPSec-Frameworks sollen nun näher beleuchtet werden. Im Kern besteht dieses Framework aus drei Protokollen: IP Authentication Header (AH) Ermöglicht Data Origin Authentication, Data Integrity und Replay Protection. IP Encapsulating Security Payload (ESP) Beinhaltet Data Confidentiality, Data Origin Authentication, Data Integrity und Replay Protection Internet Security Association and Key Management Protocol (ISAKMP) oder auch schlicht IKMP Bild 9: Struktur eines IPSec-Frames Authentication Header (AH) Der IP Authentication Header unterstützt verbindungslose (also pro Paket) Datenintegrität und Data Origin Authentication für IP-Datagramme. Weiterhin bietet AH Schutz vor Wiederholungsattacken, entlarvt also während einer vorhergenden Verbindung aufgenommene und nun wiedergegebene Datagramme als falsch. Die Datenintegrität wird mittels eines Checksummen-Algorithmus (z.B. MD5) realisiert, der sowohl vorsätzliche als auch versehentliche Veränderungen erkennt. Data Origin Authentication wird mittels der Signierung der Daten durch den privaten Schlüssel des Senders erreicht. Ob ein Datenpaket von dem erwarteten Absender stammt kann wie gewöhnlich mit dem öffentlichen Schlüssel des Absenders überprüft werden. Durch eine laufende Nummer im AH der Datenpakete können Wiederholungsattacken erfolgreich abgeschmettert werden. Die drei obigen Eigenschaften von IPSec werden unter dem gemeinsamen Begriff „Name Authentication“, also Namensbeglaubigung/Beurkundung zusammengefaßt. 14 IP Encapsulation Security Playload (ESP) Das IP Encapsulating Security Payload unterstützt Datenvertraulichkeit durch Verschlüsselung, verbindungslose Datenintegrität (pro Paket), Data Origin Authentication sowie Schutz gegen Wiederholungsattacken. Im Gegensatz zum Authentication Header unterstützt ESP zusätzlich Datenverschlüsselung. Wird ESP anstatt AH für Authenzitätszwecke benutzt, so kommen dabei die gleichen Algorithmen wie bei AH zum Einsatz. AH oder ESP können als eigenständige Lösungen oder auch in verschiedenen Mischformen eingesetzt werden. Insgesamt werden durch beide Protokolle Datenverschlüsselungsmechanismen und Authenzitätskontrolle zwischen zwei Rechnern, zwischen zwei Firewalls oder zwischen einem Rechner und einer Firewall ermöglicht. Das Internnet Security Association Key Management Protokoll (ISAKMP/Oakley) ISAKMP spezifiziert ein standardisiertes Framework zur Aushandlung von sicherheitsrelevanten Daten und Schlüsselpaaren einer Kommunikation. Diese Spezifizierung der verwendeten Algorithmen wird auch Security Association (SA) genannt. Weiterhin verwaltet es auch eine an die Anwendung angepaßte Generierung von neuen Schlüsseln nach einem bestimmten Zeitintervall. Oakley bezeichnet ein Schlüssel-Management-Protokoll, das meist in einem ISAKMP-Framework benutzt wird. Der sichere Austausch der Schlüssel ist der kritischste Punkt in der Etablierung einer sicheren Kommunikation. Egal wie sicher die auf den Schlüsseln aufbauenden Verschlüsselungsmethoden auch sind, wenn sie einem Dritten in die Hände gelange, sind sie wertlos. ISAKMP ist in der Lage über unsichere Verbindungen Schlüsselaushandlungen durchzuführen. ISAKMP kann also als eine Art Initialisierungsroutine für die anderen Protokolle von IPSec angesehen werden. Tatsächlich sind die in den ISAKMP-Protokollen benutzten Algorithmen die rechenintensivsten in der gesamten IPSec-Architektur. Allerdings kommen sie ja auch nur in einem Bruchteil der gesamten Kommunikation, nämlich in der Initialisierung zum Einsatz. ISAKMP erfordert es, daß alle ausgetauschten Informationen verschlüsselt und beglaubigt werden. Ansonsten könnten Schlüsselverhandlungen belauscht und die Schlüssel für eine Attacke mißbraucht werden. Die ISAKMP-Nachrichten selber werden als UDP-Playload verschickt. Da die Schlüsselaushandlung der sensibelste Teil der Übertragung gegenüber Angriffen ist, stellt das IKMP eine Reihe von robusten Schlüsselaushandlungsprotokollen zur Verfügung. Die Aushandlung erfolgt in 2 Phasen: 1. In dieser ersten Phase wird ein sogenannter Hauptschlüssel (master key) ausgehandelt, von dem alle folgenden während dieser Verbindung erzeugten Schlüssel abgeleitet werden. In den meisten Fällen wird dabei ein public-key Verfahren wie RSA benutzt. Zur Identifizierung des Kommunikationspartners bedient werden gegenseitig Zertifikate angefordert und diese mit dem öffentlichen Schlüssel der CA auf ihre Richtigkeit überprüft. Dieser Master-Key wird zunächst nur benutzt, um die Daten, die zur weiteren IKMP-Aushandlung notwendig sind zu sichern – die Daten der Benutzer werden nicht verschlüsselt. Die Phase-1 15 Aushandlungen sind sehr prozessorintensiv und werden nur sehr selten ausgeführt (in der Regel einmal am Tag, bei einer dauerhaften Verbindung). Das Ziel der Phase-1 Aushandlungen ist also die Herstellung einer sicheren abhörsicheren Umgebung für die weitere Aushandlung von sicherheitsrelevanten Informationen. 2. Die durch die erste Phase hergestellte sichere Umgebung wird nun benutzt, um die Schlüssel auszuhandeln, die die Daten der Benutzer schützen. Phase-2 Aushandlungen werden nun je nach erforderter Sicherheitsstufe etwas alle 1-10 Minuten durchgeführt und dabei jeweils neue Schlüssel erzeugt. Die Aushandlung der Schlüssel braucht nun nicht mehr über asymmetrische Verfahren stattzufinden, da durch Phase 1 eine sichere Umgebung hergestellt wurde. Security Associations (SAs) Security Associations legen in einem gewissen Rahmen die verwendeten Algorithmen und Verschlüsselungsmethoden fest, die während einer Verbindung benutzt werden sollen. Hiermit erfolgt also die entgültige Spezifikation der verwendeten Methoden. Eine Security Association beschreibt eine unidirektionale Verbindung zwischen zwei IPSec-Systemen, spezifiziert also die Sicherheitsparameter für nur eine Richtung der Verbindung. Eine bidirektionale Verbindung benötigt also immer mindestens zwei SAs. Bestandteil einer typischen Security Associon sind dabei folgende: Der zur Beurkundung der Identität benutzte Algorithmus (wird bei Umsetzung des Authentication Headers (AH) gebraucht, um den Modus des Vorgangs genau zu beschreiben) Spezifizierung der Schlüssel, die vom Verschlüsselungsalgorithmus benutzt werden (wird bei Implementationen gebraucht, die AH verwenden) Beschreibung des eigentlichen Verschlüsselungsalgorithmus, der zur Chiffrierung der Daten im Encapsulating Security Payload (ESP) benutzt wird Spezifizierung der Schlüssel, die im Rahmen des ESP benutzt werden Festlegung, ob ein Initialisierungsvektor (Startwert) für den Verschlüsselungsalgorithmus des ESP existiert. Gültigkeitsdauer für diese Security Association Adressen der Security Association. Wenn mehrere sendende Systeme die gleiche Security Association benutzen, kann diese Spezifizierung auch mit Jokerzeichen versehen werden. Eine SA wird durch folgenden Vektor eindeutig bezeichet: <Security Parameter Index, IP Destination Address, Security Protocol> 16 Der Security Parameter Index (SPI) ist ein 32-Bit Wert, der auch unterschiedliche SAs auf ein und demselben Rechner mit dem gleichen Security Protocol bezeichnen. Der SPI wird im Header des Security Protocols (AH oder ESP) mitgeführt. Er kann bei der Erschaffung einer neuen SA frei gewählt werden. Die Werte 1-255 sind von der Internet Assigned Numbers Authority (IANA) reserviert. Die IP Destination Address bezeichnet die Zieladresse der beschriebenen SA. Dieser Wert kann „AH“ oder „ESP“ sein. Zertifikate in IPSec In IPSec-Zertifikaten können folgende Identitätsbezeichner eines Subjektes enthalten sein: Die IP-Adresse Die Subnetz-Adresse Der Domain-Name allein Ein beliebiger Text. Wird zu Beginn einer Verbindung ein Zertifikat der Gegenseite angefordert, so behält es bis zum Beenden der Verbindung seine Gültigkeit. Dies ist der Fall, da sich die IP-Adresse des Gegenübers nicht ändert. Ein Zertifikat sollte also auch Informationen enthalten, die während der Verbindung überprüft werden können (IP-Adresse, Domain-Name usw.). Implementationformen von IPSec Ein auf IPSec aufbauendes Virtual Private Network kann je nach Anwendung mit unterschiedlicher Hard- und Software realisiert werden. Meist handelt es sich um eine Kombination von Clients, Servern, Firewalls und auch Routern, die auf der IPSecTechnologie basieren. Dabei kommen die einzelnen Komponenten häufig von unterschiedlichen Herstellern. Diese Tatsache erfordert natürlich eine starke firmenübergreifende Standardisierung, damit die Komponenten reibungslos zusammenarbeiten können. Andere VPN Protokolle Prinzipiell kann man sich auf jeder Ebene des OSI-Schichtenmodells ein Protokoll zur sicheren Übertragung über das Internet vorstellen. Dabei kann die Wahl des richtigen Protokolls je nach Anwendungsfall unterschiedlich ausfallen. 17 Bild 10: VPN-Protokolle im OSI-Stack Secure Sockets Layer (SSL) Bei Secure Sockets Layer handelt es sich um eine sogenannte Transport-Layer-Security (TLS). SSL agiert im OSI-Stack zwischen der Transportschicht (TCP/UDP) und der Applikationsschicht. Es ermöglicht eine sichere Ende-zu-Ende Verbindung basierend auf TCP. SSL erfreut sich zunehmender Popularität und hat sich als inzwischen als quasiStandard für sichere Web-Transaktionen etabliert. SSL wurde von der Firma Netscape ins Leben gerufen und wurde von der IETF als offener Standard erklärt. SSL kann in zwei unterschiedlichen Vorgehensweisen in eine Umgebung eingebunden werden: 1. Es wird komplett in das Protokoll der unterliegenden Transportschicht eingegliedert und ist somit für alle Applikationen transparent, da diese wie gewohnt auf die Transportschicht zugreifen. Neue Software braucht nicht auf SSL zugeschnitten zu werden, wenn man diese Vorgehensweise realisiert. 2. SSL wird als PlugIn in bestehende Softwarepakete eingebunden. Dies können z.B. Webbrowser oder auch Webserver wie z.B. von Netscape und Microsoft sein. Nachteil hier: Existiert für eine Software (noch) kein SSL-PlugIn kann keine sichere Kommunikation mittels SSL erfolgen. 18 Applikationsschicht SSL Transport-Schicht Bild 11: Die Position von SSL im OSI-Stack. In einem Browser wird SSL für eine Verbindung benutzt, wenn ein Link mit dem Prefix „https://“ gewählt wird. Der Browser erkennt, daß eine sichere Verbindung hergestellt werden soll und spricht den Webserver nun nicht auf Port 80, sondern auf dem für SSL festgelegten Port 443 an. Dort kommuniziert er mit dem serverseitigen SSL-PlugIn und empfängt nach dem Aushandeln der verbindungsrelevanten Informationen die Daten, die sich hinter dem Link verbergen – und zwar über die sichere Verbindung. Ist solch eine sichere Verbindung erst einmal hergestellt, wird dies meist durch ein visuelles Feedback für den Benutzer im Browser erkennbar. Große Firmen wie Netscape und Microsoft haben SSL schon seit einigen Versionen in ihren Web-Browsern integriert. SSL unterscheidet zwischen einer Connection und einer Session Eine Session ist eine Verbindung zwischen einem Client und einem Server. Beim Erschaffen einer Session werden sicherheitsrelevante Daten für die Verbindung ausgehandelt. Eine Connection ist eine logische Verbindung zwischen einem Client und einem Server, die auf den ausgehandelten Daten der zugehörigen Session aufbaut. Durch dieses Verfahren spart man die aufwendige Aushandlung der sicherheitsrelevanten Daten bei jeder neuen Connection. Üblicherweise bestehen während einer sicheren Übertragung zwischen dem Client und dem Server genau eine Session aber mehrere Connections. Wenn auch theoretisch die Möglichkeit besteht mehrere Sessions zwischen den selben Punkten gleichzeitig zu verwalten, macht dies in der Praxis meistens keinen Sinn. Auch wenn SSL nicht ausschließlich für Webtransaktionen benutzt werden kann liegt hier doch das hauptsächliche Einsatzgebiet des Protokolls. Mögliche Einsatzgebiete sind sämtliche Transaktionen von vertraulichen Daten wie z.B. Homebanking oder Bestellung per Kreditkarte. 19 Secure Mail (S-MIME) Ein weiterer Standard, der allerdings auf der Applikationsebene ansetzt ist die „Secure Multipurpose Internet Mail Extension“ (S-MIME). Es ist eine um Sicherheitsmechanismen erweiterte Version des MIME. S-MIME beschränkt sich im Wesentlichen auf die sichere Übertragung von E-Mail und benutzt dabei Datenverschlüsselung sowie digitale Signaturen. Für die Verschlüsselung werden public-key Verfahren benutzt, die Identität der Benutzer wird anhand von Zertifikaten festgestellt. 20 Quellenverzeichnis: [1]: http://www.ietf.org (Internet Drafts und RFC´s zu PPTP, IPSec) [2]: http://www.redbooks.ibm.com (Dokumente „sg245201.pdf“ und „sg245234.pdf“ mit dem Titel ( „A Comprehensive Guide ToVirtual Private Networks Part I & II“ ). [3]: http://www.cisco.com/ipj ( Anbieter von VPNs / Internet Protocol Journal). [4]: Microsoft Developer Network CDs ( Einführung in VPNs ) [5]: C´T-Artikel „Privatissimo“, Ausgabe Nr.4 vom 15.02.1999, S.190 21