Seminar Rechnernetze - Sommersemester 1999 Schriftliche Ausarbeitung zum Seminarvortrag: „Virtual Private Networks – Teil 1“ von Kristian Raič Virtual Private Networks – Teil 1 Kapitel 1: Einleitung Die wirtschaftliche Bedeutung von Rechnernetzen nimmt immer mehr zu. Einer großer Anteil der Kommunikation, sei es innerhalb von Bürogebäuden, zwischen den (möglicherweise weltweit verteilten) Niederlassungen eines Unternehmens, zwischen dem Unternehmen und den Kunden oder zwischen Außendienstmitarbeitern und dem Unternehmen, wird über Computernetzwerke abgewickelt. Dabei werden in vielen Fällen Daten übertragen, deren Geheimhaltung erwünscht ist, weil dritte durch Kenntnis dieser Daten dem Unternehmen oder seinen Kunden Schaden zufügen könnten. Beispielsweise könnte ein Betrüger Interesse an den Kontodaten eines Kunden, der das Homebanking-Angebot seiner Bank nutzt, haben, oder eine Firma an den Entwürfen des neusten Produkts eines Mitbewerbers. Unternehmen, die öffentliche Netze wie das Internet zur internen Kommunikation benutzen, werden s leicht zu Opfern von Wirtschaftsspionage. Da durch Wirtschaftsspionage erhebliche Schäden entstehen können, besteht Bedarf nach Lösungen, die die Sicherheit und Vertraulichkeit des Datenverkehrs sicherstellen. Nun könnte eine Firma natürlich zwischen ihren Bürogebäuden eigene Standleitungen verlegen oder anmieten. Dieser Lösungsansatz ist, abgesehen von den sehr hohen Kosten, praktikabel für das Verbinden von mehreren Firmenstandorten. Für die Kommunikation zwischen Unternehmen und Kunden oder Unternehmen und Außendienstmitarbeitern ist dies allerdings keine Lösung, da unter Umständen die ganze Welt mit Leitungen zu versehen wäre. Ein Ansatz, um dieses Problem zu lösen, sind die sogenannten Virtual Private Networks (bzw. Virtuelle Private Netzwerke oder kurz VPNs). Der Begriff der „Virtual Private Network“ ist sehr weit gefaßt. Es gibt keinen festen Standard für VPNs und daher existieren viele unterschiedliche Möglichkeiten, ein solches Netzwerk aufzubauen. Daher sind auch zahlreiche Produkte auf dem Markt, die als Virtual Private Network bezeichnet werden. Alle diese Ansätze haben eine Grundidee, die durch die Worte „Virtual“ und „Private“ ausgedrückt wird, gemeinsam: Private Der Begriff „private“ soll in erster Linie ausdrücken, daß das Netzwerk nicht öffentlich ist, d.h. daß niemand außer den unmittelbar Beteiligten Kenntnisse über den Inhalt der Kommunikation erlangen kann. Auch das Wissen darüber, daß Kommunikation stattfindet und wer daran beteiligt ist, soll nicht jedem zugänglich sein. Oft bedeutet „privat“ auch, daß das Routing- und Adressing-System sich von dem des zugrundeliegenden öffentlichen Netzwerks unterscheidet. Bei einem auf dem Internet basierenden Virtuellen Privaten Netzwerk würde das bedeuten, daß die VPN-Adressen von Rechnern innerhalb des VPNs sich von ihren (Internet-) IP-Adressen unterscheiden. Der Vorteil dabei ist, daß beim Zusammenschluß mehrerer Netze zu einem VPN das Auftreten doppelt vorkommende Host-IDs umgangen werden kann. Virtual Laut Duden Fremdwörterbuch bedeutet „virtuell“ folgendes: nicht echt, nicht in Wirklichkeit vorhanden, aber echt erscheinend, dem Auge, den Sinnen vortäuschend; virtuelle Realität: vom Computer simulierte Wirklichkeit, 2 Virtual Private Networks – Teil 1 künstliche Welt, in die man sich mithilfe der entsprechenden technischen Ausrüstung scheinbar hineinversetzen kann. Ein Virtuelles Privates Netzwerk ist also nicht wirklich ein eigenes, zu anderen Netzwerken völlig disjunktes Netz. Die Abschottung gegenüber anderen Netzen erfolgt vielmehr durch den Einsatz von Verschlüsselung und/oder Tunneling. Der Grund dafür, daß nicht „einfach“ ein eigenes Netzwerk aufgebaut wird, sind die Kosten: Der Preis für die Verlegung einer Datenleitung ist typischerweise sehr hoch, wogegen der Aufpreis für eine höhere Bandbreite der Leitung relativ gering ist. Daher ist es wirtschaftlicher, wenige Netzwerke mit hoher Bandbreite aufzubauen, die sich viele Teilnehmer teilen, als viele Netzwerke mit geringer Bandbreite zu konstruieren, die jeweils von nur einem Teilnehmer genutzt werden. Ein solches Netzwerk, dessen Bandbreite sich viele teilen, ist natürlich das Internet, auf dem auch die meisten VPN Lösungen aufbauen. Doch auch auf nicht-öffentlichen Netzen ist der Einsatz von VPN-Techniken sinnvoll, da die bloße Tatsache, daß eine Leitung von sonst niemand zur Kommunikation genutzt wird, nicht garantiert, daß sich auch niemand Zugang zu der Leitung verschaffen kann. So werden VPNs auch basierend auf dedizierten Standleitungen oder auch innerhalb von Local Area Networks (z.B. wenn nur eine Abteilung einer Firma mit geheimen Daten arbeitet) eingesetzt. Standort A Standort A Internet eigene Leitung Standort B Ein nicht-virtuelles privates Netzwerk gesicherte Verbindung Standort B Ein virtuelles privates Netzwerk Überblick über diese Ausarbeitung Nach dieser Einführung in das Thema VPN werden in Kapitel 2 zunächst die verschiedenen Varianten von VPNs vorgestellt. Kapitel 3 erläutert das sogenannte „Controlled Route Leaking“, das eine Interessante Alternative ist zu den meisten anderen VPN-Ansätzen, die mit Verschlüsselung arbeiten. In Kapitel 4 wird dann das Transport Layer Security Protocol (TLS) vorgestellt, daß einen kommenden Standard für VPNs bilden könnte. Kapitel 5 beschreibt schließlich auf ATM basierende Virtual Private Networks. 3 Virtual Private Networks – Teil 1 Kapitel 2: VPN-Varianten Je nachdem, für welchen Zweck es verwendet werden soll, bietet sich eine andere Netzwerkschicht als Grundlage für das VPN an. Die dafür in Frage kommenden Schichten des ISO/OSI-Referenzmodells sind die Anwendungsebene (Ebene 7), die Transportebene (Ebene 4), die Netzwerkebene (Ebene 3) und die Verbindungsebene (Ebene 2). Anwendungsebene (Application Layer) Transportebene (Transport Layer) Netzwerkebene (Network Layer) Leitungs- und Sicherungsebene (Data Link Layer) Die Ebenen, auf denen VPNs arbeiten VPNs auf Anwendungsebene Beruht ein Virtual Private Network auf der Anwendungsebene, so ist es Aufgabe der eingesetzten Software, die zu übertragenden Daten zu sichern. Dieser Lösungsansatz ist sinnvoll, wenn das VPN nur für bestimmte Zwecke, wie z.B. den Versand von Email eingesetzt werden soll. In diesem Fall gibt es die Möglichkeit, die Email durch den Client mit Verfahren wie PGP (Pretty Good Privacy) , S/MIME (Secure Multipurpose Mail Extensions), PEM (Privacy Enhanced Mail) oder durch den Mailserver zu verschlüsseln. Ein anderes Beispiel für VPNs auf Anwendungsebene sind Internet-Shopping (bzw. Electronic Commerce) Angebote, die SSL (Secure Sockets Layer) benutzen, um die Kommunikation zwischen Webbrowser und der Software des Anbieters zu verschlüsseln. Der Nachteil der von dieser Art von VPNs ist, daß Sichergestellt werden muß, daß alle Anwender die richtige Software einsetzen und diese auch richtig konfiguriert haben. Außerdem sind VPNs auf Anwendungsebene auf die Verwendungszwecke beschränkt, für die entsprechende Software vorhanden ist. Der Aufwand für die Konfiguration und Installation der Software steigt mit der Zahl der Aufgaben, für die das VPN verwendet wird. Anwendungen Nur bestimme Inhalte (z.B. Email) werden verschlüsselt Transport (UDP/TCP) Arbeitet wie bei unsicheren Netzen Netzwerk (IP) Arbeitet wie bei unsicheren Netzen Verbindung Arbeitet wie bei unsicheren Netzen Soll das Virtual Private Network für viele verschiedene Zwecke eingesetzt werden, wie z.B. VPN auf Anwendungsebene Email, Datenbankanwendungen, VideoConferencing etc., so ist es sinnvoller, auf Transportebene, Netzwerkebene oder Verbindungsebene zu arbeiten. 4 Virtual Private Networks – Teil 1 Der Vorteil, wenn auf Anwendungsebene gearbeitet wird, ist, daß keine Änderungen am Netzwerk, insbesondere an der Konfiguration von Routern und Firewalls, vorgenommen werden müssen. VPNs auf Transportebene Ein VPN, das auf der Transportebene arbeitet, verschlüsselt meist die Protokolle TCP und UDP. Der Vorteil dieser Vorgehensweise ist, daß die Verschlüsselung völlig Transparent für darüberliegende Protokolle wie HTTP ist. Deshalb ist weder spezielle „VPN-taugliche“ Client-Software notwendig, noch besteht die Gefahr, daß User durch falsche Bedienung bzw. Konfiguration der Software das VPN, sei es absichtlich oder unbeabsichtigt, umgehen. Anwendungen Keine Verschlüsselung Transport (UDP/TCP) Alle TCP- und UDP-Pakete werden verschlüsselt. ICMP wird nicht verschlüsselt. Netzwerk (IP) Arbeitet wie bei unsicheren Netzen Verbindung Arbeitet wie bei unsicheren Netzen Ein Nachteil ist, daß diese Lösungen nur die Protokolle TCP und UDP sichern, weshalb weiterhin ungesicherter Datenverkehr über ICMP (Internet Control Message Protocol) erfolgen kann. Außerdem sind Änderungen am Betriebssystem der ans Netzwerk angeschlossenen Workstations notwendig, damit die Verschlüsselung von TCP bzw. UDP funktioniert. Bisher gab es hierfür keinen Standard, weshalb bestehende VPN-Produkte, die in die Transportebene eingreifen, proprietäre Algorithmen verwenden, und somit nicht zu Produkten anderer Hersteller kompatibel sind. Ein kommender Standard für VPNs auf Transportebene könnte das Transport Layer Security Protocol (TLS) sein. Im Januar 1999 wurde von der IETF (Internet Engineering Taskforce) im RFC (Request For Comment) 2246 der Entwurf für das Transport Layer Security Protokoll (TLS) in der Version 1.0 vorgelegt. Dieses Protokoll soll auf der Transportebene basierende Sicherung der Kommunikation zur Verfügung stellen und insbesondere das Abhören und Manipulieren des Datenverkehrs und das Fälschen von Nachrichten verhindern. Kapitel 4 geht weiter auf TLS ein. VPN auf Transportebene VPNs auf Netzwerkebene Die meisten VPN-Implementationen auf Basis der Netzwerkebene arbeiten mit Verschlüsselung. Da der Datenstrom auf der Ebene von IP verschlüsselt wird, ist der Datenverkehr über alle darüber liegenden Protokolle (HTTP, FTP, TCP, UDP, ICMP usw.) auch gesichert (Andere Netzwerkprotokolle können natürlich auch verschlüsselt werden; da IP aber das gängigste ist, wird hier nur darauf eingegangen). Der Standard für Verschlüsselung von IP ist mittlerweile IPSec. Dieser (noch nicht ganz fertiggestellte) Standard wurde auch in die kommende Version von IP, IPv6 aufgenommen. Die Vorteile von IPSec sind die Standardisierung und damit die Kompatibilität zwischen verschiedenen Implementierungen und die Tatsache, daß die Verschlüsselung vollkommen transparent ist und keiner zusätzlichen Konfiguration oder Installation von Software beim Anwender Bedarf. Ein Nachteil ist aber, daß bestehende Router und Firewalls umgestellt werden müssen, da mit IPSec neue Protokoll-IDs eingeführt werden, die von alten Geräten nicht „verstanden“ werden. 5 Virtual Private Networks – Teil 1 Ein anderer Ansatz, um Virtual Private Networks auf Netzwerkprotokoll-Ebene zu realisieren, ist das sogenannte „Controlled Route Leaking“. Dieses Verfahren, daß ganz ohne Verschlüsselung auskommt, wird in Kapitel 3 ausführlich vorgestellt. Anwendungen Keine Verschlüsselung Transport (UDP/TCP) Keine Verschlüsselung Netzwerk (IP) Verschlüsselt entweder alle IPPakete, oder strukturiert das Netz (z.B. mit Controlled Route Leaking) Verbindung Arbeitet wie bei unsicheren Netzen VPN auf Netzwerkebene VPNs auf Verbindungsebene VPNs, die in die Verbindungsebene eingreifen, basieren meist auf Tunneling. Die Protokolle, die hierfür eingesetzt werden, heißen L2TP (Layer 2 Tunneling Protocol), PPTP (Point to Point Tunneling Protocol) und L2F (Layer 2 Forwarding). Dabei ist L2TP das Ergebnis der Verschmelzung von PPTP von Microsoft und L2F von Cisco unter Mitwirkung von Ascend und Anwendungen 3Com, wobei die beiden älteren Protokolle auch Keine Verschlüsselung noch eingesetzt werden. Transport (UDP/TCP) Keine Verschlüsselung Netzwerk (IP) Keine Verschlüsselung Verbindung Durch Tunneling werden Punkt zu Punkt Verbindungen zwischen den beteiligten Rechnern aufgebaut VPN auf Verbindungsebene Beim Tunneling werden im Router am Ausgangspunkt der Daten die Pakete aller Protokolle in Pakete des Tunneling-Protokolls „gepackt“, und im Router am Zielpunkt der Daten wieder „ausgepackt“. Der Vorteil dabei ist, daß Tunneling mit allen Netzwerkprotokollen funktioniert (neben TCP/IP also auch IPX, NetBEUI, AppleTalk usw.) Eine andere Möglichkeit ist, ATM zu verwenden, um Punkt-zu-Punkt-Verbindungen aufzubauen. Wie dies funktioniert, wird in Kapitel 5 beschrieben. Andere Unterscheidungsmerkmale von Virtual Private Networks Neben der Ebene des OSI-Modells, auf der das VPN basiert, stellt die Struktur des Virtual Private Network ein weiters Unterscheidungsmerkmal dar. Die drei Typen von VPNs sind dabei End-to-End, Site-to-Site und Site-to-End. End to End Ein End to End VPN besteht aus zwei oder mehr Rechnern, zwischen denen der Datenverkehr verschlüsselt wird. Da die Verschlüsselung auf diesen Rechnern erfolgt, müssen dort auch die VPN-Produkte installiert sein. End to End VPNs arbeiten also entweder auf der Anwendungs- oder Transportebene. 6 Virtual Private Networks – Teil 1 Ein End to End Virtual Private Network kann beispielsweise aus dem Rechner eines Bankkunden und dem Rechner der Bank bestehen. Die Kommunikation zwischen beiden Rechnern könnte dabei auf Anwendungsebene (durch eine spezielle Homebanking-Software) erfolgen. verschlüsselte Leitung Ein Site to Site Virtual Private Network Site to Site Bei einem Site to Site VPN wird der gesamte Datenverkehr zwischen kompletten Netzwerken gesichert. Dies geschieht dabei am sinnvollsten auf der Netzwerkebene. Diese Art von VPN ist typisch, wenn zwei Standorte einer Firma miteinander verbunden werden sollen. Dabei wird an jedem Standort ein VPN-Gateway installiert, mit dem alle Rechner des jeweiligen Standortes verbunden sind. verschlüsselte Leitung Gateway 1 Gateway 2 Standort 1 Standort 2 Ein Site to Site Virtual Private Network Site to End Bei einem Site to End VPN ist ein einzelner Rechner über eine gesicherte Leitung mit einen gesamten Netzwerk verbunden. Das typische Szenario für ein Site to End VPN ist, daß der Rechner eines Außendienstmitarbeiters mit dem Netzwerk seiner Firma verbunden ist. Hierbei macht es Sinn, Tunneling zu verwenden, so daß der Mitarbeiter sich mit seinem Notebook eine 7 Virtual Private Networks – Teil 1 Verbindung zum Internet aufbaut, und die Daten dann durch den „Tunnel“ zur Firma und zurück gelangen. Das Tunneling erfolgt dabei wahlweise auf dem Rechner des Außendienstmitarbeiters oder bei dem Internet Service Provider, über den er sich der Zugang zum Internet verschafft hat. Tunneling Tunneling ISP ohne VPN Service Notebook des Außendienstmitarbeiters Internet VPN Gateway Netzwerk der Firma ISP mit VPN Service kein Tunneling Tunneling Zwei Beispiele für End to Site Virtual Private Networks Peer to Peer und Overlay Virtual Private Networks Außerdem werden Virtuelle Private Netzwerke entweder dem Peer-to-Peer- oder dem Overlay-Modell zugeteilt. Im Peer-to-Peer Modell erfolgt die Berechnung des Pfades, den die Datenpakete nehmen, von Hop zu Hop. Dabei stellt jeder Hop ein „Peer“ (Gleichgestellten) des nächsten Hops dar. Ein Beispiel für das Peer to Peer Modell sind die „traditionell“ gerouteten Netze, bei denen Router, die jeweils einen Hop voneinander entfernt sind als adjazent betrachtet werden. Beim Overlay-Modell werden auf dem Link-Layer basierend direkte Verbindungen hergestellt, so daß die Stationen im Netz jeweils einen Hop der Verbindungsebene voneinander entfernt sind. Beispiele für Overlay-Nezte sind ATM, Frame Relay und Tunneling. Skalierbarkeit Beim Overlay-Modell kommt es zu Problemen, wenn viele „Peers“ vorhanden sind. Da alle nur einen Layer-3Hop voneinander entfernt sein sollen, müssen sehr viele einzelne Verbindungen aufgebaut werden. 8 Virtual Private Networks – Teil 1 Router Switch Ein Overlay-Netzwerk Die Router sind jeweils einen Hop voneinander entfernt, da die Switches direkte Verbindungen herstellen. Ein Peer-to-Peer Netzwerk Die Router sind jeweils mit einen anderen Router adjazent. Die Entfernung von einem zum anderen kann aber mehr als ein Hop sein. 9 Virtual Private Networks – Teil 1 Kapitel 3: Controlled Route Leaking In diesem Kapitel wird das sogenannte Controlled Route Leaking (wird oft auch als Route Filtering bezeichnet) vorgestellt. Dieses Verfahren ist eine interessante Alternative zu den meisten anderen Arten, ein Virtual Private Network aufzubauen, da es auf Verschlüsselung verzichtet und statt dessen das Netz umstrukturiert. Controlled Route Leaking arbeitet also auf der Netzwerkebene. Controlled Route Leaking verwendet keine Verschlüsselung, sondern setzt auf kontrollierte Verbreitung von Routing-Informationen, so daß nur bestimmte Netzwerke eine Route zu bestimmten anderen Netzwerken erhalten können. Die so gebildeten VPNs werden auch als „Community of Interest“ bezeichnet. Beim Controlled Route Leaking kann man von einem Peer to Peer Modell sprechen, da die Pakete von einem Router zum nächsten weitergegeben werden, und keine Direktverbindungen bestehen. Im Internet ist es üblich eine Route von einem Netz zum anderen über beliebige anderen Netze gehen kann. Beim Controlled Route Leaking wird aber sichergestellt, daß die Route nur über bestimmte andere Netze verläuft. Die Routing-Informationen werden so gefiltert, daß nur die zum VPN gehörenden Netze Kenntnis über Routen zu anderen Netzen des selben VPN haben können. a b Router c Netzwerk d e Ein Virtual Private Network auf Basis von Controlled Route Leaking Die eingerahmten Netze bilden das VPN. In den Routern b, d und e werden die Routen so gefiltert, daß die Teilnetze des VPN nur Routen zu den anderen Teilnetzen des VPN erhalten. Das Netzwerk wird dadurch „privat“, daß kein Rechner innerhalb des VPN auf Pakete, die von außerhalb des VPN stammen, antworten kann, weil er keine Route zu einem Rechner, der nicht Teil des VPN ist, erhält. Diese Vorgehensweise ist anfällig für Fehlkonfigurationen. Besonders wenn das VPN nicht vom ISP des zugrundeliegenden Netzwerks, sondern vom Kunden selbst konfiguriert wird, treten oft Fehler auf, durch die Pakete doch nach außen gelangen können. 10 Virtual Private Networks – Teil 1 Beim Controlled Route Leaking wird vorausgesetzt, daß alle Netze, die auf der gemeinsamen Netzstruktur aufbauen, auch ein gemeinsames Routing-System haben. Das bedeutet, daß keine Adresse in mehreren Netzen, insbesondere nicht in mehreren VPNs, gleichzeitig auftreten darf, da es sonst zu Kollisionen kommen würde. Soll ein VPN Daten mit anderen Netzen austauschen können, wird ein Austauschpunkt benötigt, zu dem alle Pakete geroutet werden, die nach Außen gerichtet sind, oder die von Außen in das VPN gesendet werden. Die Pakete werden an diesem Austauschpunkt darauf geprüft, ob sie passieren dürfen, und dann entweder verworfen oder weitergeleitet. Um den Austausch mit anderen Netzen zu ermöglichen, wird Network Address Translation benötigt. Bei der Network Address Translation werden externe Adressen in interne übersetzt und umgekehrt. Obwohl Controlled Route Leaking eine sehr interessante Alternative zu den anderen VPNLösungen ist, und ein ganz anderes Konzept darstellt, muß leider gesagt werden, daß es relativ schwierig zu administrieren, inflexibel und auch relativ unsicher ist. Trotz des Filtern der Routen kann es vorkommen, daß mehrere Virtual Private Networks sich die gleichen physikalischen Leitungen teilen. Zudem ist der Aufwand für diesen Lösungsweg recht hoch, was besonders zutrifft, wenn viele VPN auf der selben Netzinfrastruktur erstellt werden sollen. Eine besserer Ansatz, der nach dem gleichen Prinzip funktioniert ist das Border Gateway Protocol, daß weniger anfällig für fehlerhaft Konfiguration und besser skalierbar als das Controlled Route Leaking ist. Doch genauso wie das Controlled Route Leaking hat das Border Gateway Protocol den Nachteil, daß Datenverkehr von mehreren VPNs unverschlüsselt über die selben physikalischen Leitungen geht und daher nicht wirklich geschützt ist. Durch den Gebrauch von Verschlüsselung, wie z.B. beim Transport Layer Security Protocol (TLS), kann wesentlich höhere Sicherheit erreicht werden. 11 Virtual Private Networks – Teil 1 Kapitel 4: Transport Layer Security (TLS) Das Transport Layer Security Protocol basiert auf dem Secure Sockets Layer Protocol (SSL), daß von Netscape entwickelt wurde, und der Private Communication Technology von Microsoft. Im RFC 2246 vom Januar wurde von der IETF der Entwurf von TLS 1.0 vorgelegt. TLS dürfte in Zukunft ein sehr wichtiger Standard für Virtual Private Networks auf Ebenen der Transportschicht werden. Dafür spricht allein schon die Tatsache, daß Microsoft und Netscape, die zusammen einen Marktanteil von über 90% bei Webbrowsern haben, diesen Standard in Zukunft unterstützen wollen. Da TLS innerhalb des Transport-Layer arbeitet, werden TCP und alle darüber liegenden Protokolle, wie z.B. HTTP verschlüsselt. Durch die Tatsache, daß TLS auf dem schon recht weit verbreiteten SSL basiert, ist gewährleistet, daß die Kosten für die Umstellung auf dieses neue Protokoll relativ gering sind. Daher ist auch zu erwarten, daß TLS breite Unterstützung in der Industrie finden wird. Es kommen weder neue Hardwareanforderungen noch Änderungen in der Infrastruktur hinzu. Gerade dies ist ein Vorteil von VPNs auf Transportebene. Die Kosten für Virtual Private Networks auf Anwendungsebene oder auf Netzwerkebene dürften deutlich höher ausfallen, da im ersten Fall der Entwicklungsaufwand für neue Software höher ist, und im letzteren Fall Änderungen an der Netzinfrastruktur notwendig sind. Das TLS-Modell Das TLS-Protokoll läßt sich in zwei Teilprotokolle unterteilen: Das TLS Handshake Protocol und das TLS Record Protocol. TLS Handshake Protokoll Das TLS Handshake-Protokoll besteht wiederum aus drei Subprotokollen: Handshake, ChangeCipherSpec und Alert. Das Handshake-Protokoll ist für das „Negotiating“ zuständig. Dabei werden folgende Parameter vereinbart: Session Identifier: Eine vom Server erzeugte, beliebige Bytefolge, mit der die Session identifiziert wird. Peer Certificate: Ein Zertifikat nach dem X509-Standard, anhand dessen der Client oder der Server identifiziert werden. Die Verwendung eines Peer Certificates ist nicht zwingen vorgeschrieben. Compression Method: Gibt den Algorithmus an, mit dem die Daten (vor der Verschlüsselung) komprimiert werden sollen. Cipher Spec: Gibt den Algorithmus an, mit dem die Daten verschlüsselt werden sollen. Master Secret: Eine 48-Bit Zahl, die den Schlüssel für die symmetrische Verschlüsselung zwischen Server und Client darstellt. Is Resumable: Ein Flag, das angibt, ob die Session verwendet werden kann, um neue Sessions zu starten. Das ChangeCipherSpec-Protokoll wird benötigt, um dem Server und dem Client mitzuteilen, daß die Verschlüsselungsstrategie gewechselt werden soll. Es besteht nur aus einer einzigen 12 Virtual Private Networks – Teil 1 Nachricht, die aus nur einem Byte besteht. Das ChangeCipherSpec-Protokoll wird während des Handshake eingesetzt, nachdem die Parameter für die Session vereinbart wurden. Das Alert-Protokoll wird verwendet, um während der Übertragung auftretende Fehler anzuzeigen. Je nach schwere des Fehlers und der Sicherheitsrelevanz wird die Session nach dem Erhalt einer Alert-Message sofort unterbrochen. Ablauf des Handshake Zuerst werden sogenannte „Hello Messages“ ausgetauscht: hierbei werden die Kompressionsund Verschlüsselungsalgorithmen vereinbart und Zufallszahlen ausgetauscht. Danach wird ein „premaster Secret“ vereinbart. Dieser wird dann, nachdem sich beide Seiten mit Zertifikaten identifiziert haben, benutzt, um den „Master Secret“ zu vereinbaren. Danach werden Parameter für das Record-Protocol bestimmt. Abschließend prüfen dann beide Seiten, ob der Handshake erfolgreich war, und ohne Einmischung dritter abgelaufen ist. TLS Record-Protokoll Das TLS Record-Protokoll sorgt für den Transport der Daten bzw. „Records“, für die symmetrische Verschlüsselung der Daten und für die Authentifikation. Die Authentizität der Empfangenen Nachrichten wird anhand von Hash-Codes, die beim Versenden durch die Hash-Funktionen HMAC-MD5 und HMAC-SHA, unter Verwendung des „Secrets“, berechnet werden. Wird die Message auf dem Weg zum Empfänger verändert, so ändert sich mit sehr hoher Wahrscheinlichkeit auch der Wert des korrekten Hash-Codes. Rechnet der Empfänger den Code nach, kann er recht sicher bestimmen, ob die Daten verfälscht wurden. Messages werden immer komprimiert, der Algorithmus, mit komprimiert wird, wenn nicht explizit ein Algorithmus vereinbart wurde, ist aber als „CompressionMethod.null“, also keine Kompression, definiert. Das TLS-Message-Format Das Record-Protocol gliedert alle Messages in vier Felder: Content Type der Verwendungszweck der Message Protocol Version die Version des Protokolls Lenght Länge des Records in Byte Opaque Fragment der eigentliche Inhalt der Message Ein wichtiger Bestandteil des Record-Protokolls sind die „Connection State Information“. Hier werden folgende Informationen verwaltet: 13 Virtual Private Networks – Teil 1 Compression State: Der verwendete Kompressionsalgorithmus und Zustand der Kompression Cipher State: Der verwendete Verschlüsselungsalgorithmus, der Schlüssel etc. MAC-Secret: Die Geheimzahl, die zur Überprüfung der Authentizität von Nachrichten verwendet wird. Sequence Number: Eine Zahl (< 264-1), die inkrementiert wird, wenn ein Record gesendet oder empfangen wird. Verarbeitung von Records Unkomprimierte Records dürfen nicht die Länge von 214 überschreiten. Records, die länger sind, werden in mehrere Records unterteilt. Es können auch mehrere kleine Records vom gleichen Typ zu einem Record verschmolzen werden. Die so erzeugten Records werden anschließen komprimiert. Die maximale erlaubt Länge von komprimierten Records ist 214 + 1024 Bytes. Falls diese Länge überschritten wird, wird ein „fatal Error“ (ein Fehler, der zum Beenden der Session führt) gemeldet. Nach der anschließenden Verschlüsselung ist die größte erlaubte Länge für die Records 214 + 2048. Auf die Verschlüsselung folgt die Berechnung der MAC-Prüfsumme. Nach diesen Schritten wird ein Record verschickt und die Verarbeitungsschritte werden beim Empfänger in umgekehrter Reihenfolge wiederholt. TLS vs. IPSec Da ein Teil des Handshake verläuft ungesichert. An dieser Stelle könnte IPSec eingesetzt werden, um noch höhere Sicherheit zu gewährleisten. Ansonsten unterscheidet TLS und IPSec, Neben der Tatsache, daß TLS auf der Transportebene arbeitet während IPSec in die Netzwerkebene eingreift, vor allem, daß IPSec nur unidirektionale Verbindungen zur Verfügung stellt, während TLS-Verbindungen bidirektional sind. 14 Virtual Private Networks – Teil 1 Kapitel 5: ATM-basierte Virtual Private Networks Außer den bereits vorgestellten Varianten für Virtual Private Networks gibt es noch die Möglichkeit, auf der Basis von ATM (Asynchronous Transfer Mode) zu arbeiten. ATM kommt besonders deshalb in Frage, weil es Unterstützung für „Quality of Service“ (d.h. die Garantie von Bandbreite, Verzögerungszeiten usw.) bietet. Außerdem unterstützt ATM die Übertragung von Audio- und Videoinhalten, so daß „Multimedia VPNs“ aufgebaut werden können, die Dienste wie sicheres Videoconferencing anbieten. Bei VPNs auf ATM-Basis werden zwei Fälle unterschieden: Im ersten Fall basiert das gesamte Netzwerk, bis hin zu den Endgeräten, auf ATM-Technik. Im zweiten Fall wird ATM, ähnlich wie andere Protokolle der Verbindungsebene (z.B. Ethernet, Token Ring, usw.) nur als Trägerdienst für Protokolle, die höheren Schichten angehören, genutzt. Ein Beispiel für so ein Protokoll ist IP. In diesem Fall wird von „IP over ATM gesprochen“. Die Kapselung von anderen Protokollen in ATM hat zum Ergebnis, daß „virtuelle Verbindung“ zwischen 2 Routern entstehen. Die Entfernung zwischen den beiden Routern beträgt dann nur einen Hop. Vorgehensweisen wie „IP over ATM“ haben der Vorteil, daß die höheren Protokolle auch in den Genuß von „Quality of Service“ kommen. Virtual Channel und Virtual Path Im Zusammenhang mit Virtual Private Networks sind besonders die Felder „Virtual Channel Identifier“ (VCI) und „Virtual Path Identifier“ (VPI) von Bedeutung. (Zur Erinnerung: ATMZellen sind 53 Byte lang; der Header hat eine Länge von 5 Byte). Der Virtual Channel stellt bei ATM die kleinste logische Einheit, die zugeteilt werden kann, dar. Ein Virtual Path ist im Prinzip ein Bündel von mehreren Virtual Channels. Weiterhin können mehrere Virtual Paths zu einer Virtual Path Group (VPG) zusammengefaßt werden. Virtual Channel Virtual Path Virtual Path Group Zuteilung von Ressourcen Bei dieser Zuteilung von VCs und VPs kommt es zu der Frage, wer die Verantwortung für die Garantie von bestimmten Servicemerkmalen (Quality of Service) ist. Dabei ergeben sich dir folgenden Möglichkeiten: 1. Der Provider ist verantwortlich für die Quality of Service. 2. Der Kunde muß sich selbst um die Quality of Service kümmern. 3. Der Kunde und der Provider einigen sich je nach Bedarf auf bestimmte Leistungsmerkmale. 15 Virtual Private Networks – Teil 1 Am sinnvollsten ist dabei die Möglichkeit 2. Da die Qualitätsanforderungen des Kunden variieren, kann er je nach Bedarf neue Verbindungen erzeugen. Außerdem kann der Kunde in Situationen in denen die Gesamtbandbreite des Netzes nicht ausreicht, selbst bestimmen, welche Anwendungen wichtiger sind, und die Daten der unwichtigeren Anwendungen verwerfen. Die Zuteilung der Ressourcen läuft dabei wie folgt ab: Bei kurzfristigem Bedarf nach Bandbreite fordert der Kunde bei seinem Provider einen Virtual Channel an, dessen Qualitätsmerkmale festgelegt werden. Benötigt der Kunde aber langfristig mehrere Virtual Channels, erhält er einen Virtual Path vom Provider, für den die Qualitätsmerkmale dauerhaft festgelegt werden. Innerhalb dieses Virtual Path kann der Kunde dann selbständig Virtual Channels anlegen. Eine weitere Option bildet das zuteilen von Virtual Path Groups. Verwaltung Der Preis für diese hohe Flexibilität ist aber ein erhöhter Verwaltungsaufwand. Die Verwaltung läuft wie folgt ab: Die sogenannten Controller sind verantwortlich für die Vergabe der Ressourcen. Bei ihnen fordern die Anwendungen die benötigten Ressourcen an. Benötigt eine Anwendung z.B. einen Virtual Channel, wendet sie sich an den Call-Controller. Die Controller fragen wiederum beim Controller den nächsthöheren Ebene an. Der CallController wendet sich beispielsweise an den VPG-Controller. Wenn ein Controller feststellt, daß der darunterliegende Controller an Grenzen seiner Kapazität erreicht hat. Versucht er selbständig mehr Bandbreite für ihn zu erreichen. Auf der obersten Ebene dieser Hierarchie würde der Controller dann beim Provider mehr Bandbreite anfordern. Dieser Schritt läuft aber in den meisten Fällen nicht vollkommen automatisch ab, da dem Kunden dadurch höhere Kosten entstehen. VPN-Controller ATM-Controller Anfrage nach VPGKapazität VPG-Controller Anfrage nach VPKapazität Call-Controller Anfrage nach VCKapazität Anwendung Kunde Provider 16 Virtual Private Networks – Teil 1 Verschlüsselung der Ebene von ATM Damit ein ATM-Netzwerk auch ein Virtual Private Networks ist, bedarf es Verschlüsselung. Zur Zeit existieren noch keine Standards für Verschlüsselung von ATM. Es existieren aber schon einiger Ansätze, um verschlüsseltes ATM zu realisieren. Dabei ergeben sich folgenden beiden Alternativen: Verschlüsselung auf Ebene des Cellstream (Zellenstrom) Bei der Verschlüsselung auf Ebene des „Cellstreams“ wird der gesamte Zellenstrom, der durch das ATM-Netzwerk fließt, verschlüsselt. Dabei wird noch danach unterschieden, ob die ganzen ATM-Zellen oder nur der „Payload“ (d.h. alles bis auf den Header) verschlüsselt wird. Aufgrund der Tatsache, daß verschlüsselte Header in jedem ATM-Switch entschlüsselt werden müssen, ist die Verschlüsselung der Header in den wenigsten Fällen sinnvoll. Bei der Verschlüsselung auf der Ebene Zellenstroms werden alle Zellen mit dem gleichen Schlüssel verschlüsselt, was ein Sicherheitsrisiko darstellen kann, wenn Zellen innerhalb eines ATM-Netzes von verschiedenen Quellen stammen können. Verschlüsselung auf Ebene Virtual Channel Bei der Verschlüsselung auf der Ebene des Virtual Channel existiert für jedes Paar aus Virtual Path und Virtual Channel ein eigener Schlüssel. Deshalb ist dieser Verfahren sicherer als die Verschlüsselung auf der Ebene der Cellstream. Bei der Verschlüsselung auf VC-Ebene wird nur der Payload der Zellen chiffriert Probleme bei beiden Verfahren Ein Problem, daß beide Methoden der ATM-Verschlüsselung gemeinsam haben, sind die hohen Übertragungsraten im GBit/s-Bereich, die bei ATM auftreten. Da die Daten genauso schnell Verschlüsselt werden müssen, wie sie übertragen werden, muß entweder sehr teure Spezialhardware dafür verwendet werden, oder es müssen einfache, relativ unsichere Verschlüsselungsalgorithmen verwendet werden. Ein anderes Problem entsteht dadurch, daß ATM-Zellen sehr kurz sind. Da der Payload der Zellen nur 48 Byte lang ist, können bestimmte Verschlüsselungsalgorithmen wie z.B. RSA gar nicht verwendet werden. Umsetzung in die Praxis Beim Implementieren von verschlüsseltem ATM stellt sich die Frage, wo die Verschlüsselung stattfinden soll. In Frage kommen dabei z.B. Switches, Endgeräte usw. Die beste Lösung ist, in den Endgeräten des Netzes zu verschlüsseln. Zum einen gewährleistet dies maximale Sicherheit, da keine unverschlüsselten Daten die Endgeräte verlassen. Dies vereinfacht aber auch die Weiterleitung der Zellen, da, vorausgesetzt, daß nur der Payload verschlüsselt wird, die Verschlüsselung für die ATM-Switches transparent ist. Dabei wird ein neuer ATM Abstraction Layer definiert, der parallel zu den bereits bestehenden ATM Abstraction Layers einen verschlüsselten Dienst zu Verfügung stellt. Zukunft von ATM Virtual Private Networks Obwohl Virtual Private Networks auf Basis von ATM durchaus praktikabel wären, scheint die Zukunft ATM-basierten VPN zumindest fraglich. 17 Virtual Private Networks – Teil 1 Denn zum einen zeichnet es sich ab, daß sich ATM nicht bis zu den Endgeräten durchsetzen wird, insbesondere weil die Akzeptanz von Gigabit-Ethernet relativ hoch zu sein scheint und daher kein besonders großer Bedarf an ATM bis in die Endgeräte existiert. ATM wird also wahrscheinlich ein Trägerdienst für andere Protokolle wie z.B. IP bleiben. Da der Standard für verschlüsseltes IP, IPSec nun fast fertiggestellt ist und in IPv6 aufgenommen wurde, wogegen noch kein Standard für verschlüsseltes ATM existiert, ist es sehr wahrscheinlich, daß sich IPSec durchsetzten wird. ATM Virtual Private Networks dürften also, wenn überhaupt, ein Nischenprodukt bleiben. 18 Virtual Private Networks – Teil 1 Kapitel 6: Abschließende Bemerkungen In Zukunft ist zu erwarten, daß sich Virtuelle Private Netzwerke weiter durchsetzen werden. Dabei werden wahrscheinlich vor allem IPSec, L2TP und TLS eine wichtige Rolle spielen, da sie Standards darstellen, die eine breite Unterstützung in der Industrie finden. Weiterhin bleibt anzumerken, daß auch Virtual Private Networks, trotz aller Sicherheitsvorkehrungen, keinen vollkommenen Schutz der Daten darstellen, auf den man sich blind verlassen könnte. Insbesondere sind VPNs kein vollkommener Schutz gegen Wirtschaftsspionage, da diese zahlreiche andere Wege kennt, um an vertraulich Daten zu gelangen. Auch schützten VPN nicht davor, daß Mitarbeiter vertrauliche Daten, ob freiwillig oder unter Druck, weitergeben. Literatur: The Internet Protocol Journal Volume 1, Number 1, The Internet Protocol Journal Volume 1, Number 2, Securing ATM Networks, Shaw-Cheng Chuang, University of Cambridge, 1995. ftp://ftp.cl.cam.ac.uk/public/papers/ATM/docs-95-10/12.ps.gz Securing Classical IP over ATM Networs, Carsten Benecke, Uwe Ellermann, Universität Hamburg, Juli 1997, http://www.cert.dfn.de/eng/team/cb/eng_natm/eng_natm.html Privatissimo, c’t Magazin 4/1999, Seite 190 ff. A Comprehensive Guide to Virtual Private Networks, Volume I, http://publib.boulder.ibm.com/pubs/pdfs/redbooks/sg245201.pdf A Comprehensive Guide to Virtual Private Networks , Volume II http://publib.boulder.ibm.com/pubs/pdfs/redbooks/sg245234.pdf 19