Security im Überblick (Teil 3)

Security auf dem Link Layer

25.06.2003 von Prof. Dr. Axel Sikora
Auf dem Data Link Layer tummeln sich eine ganze Reihe bekannter Authentifizierungs- und Sicherheitsprotokolle von PAP und CHAP über L2TP bis hin zu RADIUS, TACACS und IEEE 802.1x.

Auf der Ebene 2 des OSI-Referenzmodells, dem Data Link Layer, lassen sich verschiedene Maßnahmen zur Erhöhung der Sicherheit einsetzen. Dazu zählen zum einen Authentifizierungsprotokolle, wie sie beim Aufbau von PPP-Verbindungen eingesetzt werden. Daneben existieren unterschiedliche Tunnelprotokolle, die in der Regel die Punkt-zu-Punkt-Verbindungen des Point-to-Point Protocol (PPP) tunneln. Sie werden ergänzt von Port-basierten Protokollen, die auf der Grundlage der Authentifizierung die Nutzung eines Ports freischalten. Als grundlegendes Protokoll dient in der Regel PPP, das meist für Wählverbindungen ins Internet (Dial-up Access) zum Einsatz kommt.

Grundlagen: Security

Teil 1

Einführung in die Kryptographie

Teil 2

Kryptologische Verfahren

Teil 3

Security auf dem Link Layer

Teil 4

Security auf dem Network Layer

Teil 5

Security auf dem Application Layer

Teil 6

Security mit VPNs

Authentifizierung in PPP

Beim Point-to-Point Protocol (PPP) handelt es sich um ein so genanntes "Multiprotokoll-Protokoll", das sich aus vielen Teilprotokollen zusammensetzt. Es wurde ursprünglich in RFC 1548 (PPP) und RFC 1172 (The PPP Initial Configuration Options) beschrieben.

Beide wurden 1994 durch RFC 1661 (PPP), RFC 1662 (PPP in HDLC-like Framing) und RFC 1663 (PPP Reliable Transmission) ersetzt. Später wurde mit RFC 1962 das PPP Compression Control Protocol (CCP) hinzugefügt. Das Rahmenformat von PPP zeigt oben stehende Abbildung.

Besondere Bedeutung im Zusammenhang mit der hier geführten Sicherheitsdiskussion haben das PPP Authentication Protocol (PAP, RFC 1334) und das PPP Challenge Handshake Authentication Protocol (CHAP, RFC 1994), das in einer verwandten Realisierung auch von Microsoft als Microsoft Challenge Handshake Authentication Protocol Version 2 (MS-CHAP v2, RFC 2759) vorliegt.

Ablauf

Den Ablauf des Verbindungsaufbaus mit PPP zeigt die unten stehende Abbildung. Bei der Authentifizierung unter PPP handelt es sich grundsätzlich um einen einseitigen Vorgang, da sich nur der Anrufer ausweisen muss. Der angerufene Knoten überprüft die Authentifizierung. Er selbst authentifiziert sich lediglich durch seine Verfügbarkeit unter der physischen Verbindung, also zum Beispiel durch die entsprechende Telefonnummer.

Diese manchmal auch als physische Authentifizierung bezeichnete Vorgehensweise eignet sich jedoch offensichtlich nur für zuverlässige Netze. Sie birgt Gefahren, wenn die eindeutige Erreichbarkeit nicht sichergestellt werden kann. In einem öffentlichen IP-Netzwerk lässt sich beispielsweise nicht ausschließen, dass IP-Adressen oder Routen manipuliert wurden.

Die Stellung von PPP im OSI-Referenzmodell ist zwiespältig. Zum einen eignet sich PPP für die Übertragung verschiedener Netzwerkprotokolle. So beschreiben RFC 1331 und RFC 1332 die Übertragung von IP mit Hilfe des IP Control Protocol (IPCP). Das IPX Control Protocol (IPXCP) regelt parallel die Übermittlung von IPX-Paketen. Zum anderen kann PPP seinerseits über IP oder IPX übertragen werden. Speziell beim Einsatz der im Folgenden beschriebenen Tunnelprotokolle für PPP kommt dieses Verfahren häufig zur Anwendung.

PAP

Das PPP Authentication Protocol (PAP, RFC 1334) beschreibt ein Zwei-Wege-Handshake. Das bedeutet, dass der anrufende Knoten die "username/password"-Kombination versendet, um eine Bestätigung von der Gegenstelle zu erhalten. Dies wiederholt er so lange, bis der Kommunikationspartner die Authentifizierung bestätigt oder ablehnt. Im Falle der Ablehnung wird die Verbindung abgebrochen.

Dabei ergeben sich eine ganze Reihe von Sicherheitsrisiken:

CHAP

Um die bei PAP auftretenden Sicherheitsrisiken zu verringern, wurde das PPP Challenge Handshake Authentication Protocol (CHAP, RFC 1994) entwickelt.

Es unterscheidet sich von PAP durch eine Reihe zusätzlicher Maßnahmen:

MS-CHAP v2

Microsoft hat eine eigene Variante eines Authentifizierungsprotokolls für PPTP auf den Markt gebracht, die als Microsoft Challenge Handshake Authentication Protocol version (MS-CHAP) bezeichnet wird. Nachdem die ursprüngliche Version signifikante Sicherheitslücken aufwies, liegt es nunmehr in der zweiten Version als MS-CHAP v2 vor.

Auch MS-CHAP v2 arbeitet nach einem Drei-Wege-Handshake:

Vorteile

Gegenüber dem herkömmlichen CHAP weist MS-CHAP v2 eine Reihe von Vorteilen auf:

MS-CHAP v2 wird während der LCP-Phase beim PPP-Verbindungsaufbau ausgehandelt. Hierfür wird das Feld "LCP Option" auf Typ 3 gesetzt, das Authentifizierungsprotokoll erhält den Wert 0xC223 und der Algorithmus den Wert 0x81. Nach der erfolgreichen Beendigung der LCP-Phase nutzt MS-CHAP v2 das PPP-Protokoll 0xC223.

ECP

RFC 1968 beschreibt mit dem PPP Encryption Control Protocol (ECP) ein Verfahren zum Aushandeln von Verschlüsselungseinstellungen für PPP-Verbindungen. Nach der Konfiguration der Übertragungsparameter via LCP stimmen die Verbindungspartner über identische Nachrichtenformate die Algorithmen und die Schlüssellängen für die aktuelle Sitzung ab.

Den Algorithmen wurden von der IANA eindeutige Bezeichner zugeordnet. Ähnlich dem SSL-Handshake führt der Empfänger der verschlüsselten Nachrichten eine nach seinen Präferenzen geordnete Liste der von ihm unterstützten Algorithmen, die er dem Sender in einer Configure-Request-Nachricht übermittelt. Der Sender wählt aus der Liste die für ihn am besten geeignete Option.

Tunnelprotokolle

Historisch haben sich drei wichtige Tunnelprotokolle für PPP entwickelt. Hierbei handelt es sich um:

Da die Entwicklungen noch vergleichsweise neu sind, finden sich noch alle drei Protokolle in verschiedenen Implementierungen im Einsatz.

PPTP und L2F

Das Point-to-Point Tunneling Protocol (PPTP) wurde seit 1996 von Ascend Comm, US Robotics, 3Com, Microsoft und ECI Telematics unter Koordination durch das PPTP-Forum entwickelt. Es eignet sich für den Transfer von IP, IPX oder NetBEUI über ein IP-Netzwerk.

PPTP verpackt die PPP-Rahmen vor der Übermittlung in IP-Pakete mit der Generic Routing Encapsulation (GRE, RFC 2784) und sendet sie über ein IP-Netzwerk zum Zielknoten. GRE stellt dabei ähnlich wie TCP Sequenz- und Bestätigungsnummern sowie Mechanismen zur Flusssteuerung (über ein Sliding Window) bereit.

PPTP baut auf dem Remote Access Server für Microsoft Windows NT auf. Auch die Authentifizierung findet auf dem NT-Server statt. Durch die weite Verbreitung von Windows-9x-Clients spielt PPTP beim Aufbau von VPNs noch immer eine gewichtige Rolle. Es verwendet RC4-Verschlüsselung, die Microsoft auch als Microsoft Point-to-Point Encryption (MPPE) bezeichnet.

Das Layer2-Forwarding (L2F) wurde zunächst als proprietäre Entwicklung von Cisco bereitgestellt, aber auch recht bald von Nortel und Shiva unterstützt. Bereits im Mai 1998 als RFC 2341 verabschiedet, wird es mittlerweile aber nur noch der Kategorie "Historic" zugeordnet. L2F wurde für Tunnel von PPP- oder SLIP-Paketen vor der physischen Übertragung entwickelt.

L2TP

Das Layer2 Tunneling Protocol (L2TP) wurde vom PPTP-Forum und Cisco in Zusammenarbeit mit der IETF im August 1999 verabschiedet und liegt als RFC2661 vor.

Es eignet sich für den Transfer von IP, IPX oder NetBEUI über ein beliebiges Medium, das die Übertragung von Punkt-zu-Punkt-Datagrammen erlaubt. Hier sind zum Beispiel IP, X.25, Frame Relay oder ATM zu nennen. L2TP fasst PPTP mit L2F zusammen und beschreibt ein umfassendes Vorgehen.

Während PPTP nur Tunnel definiert, die vom Client initiiert werden, und L2F nur Tunnel erlaubt, die vom ISP veranlasst werden, ermöglicht L2TP beide Varianten. Darüber hinaus unterstützt L2TP auch die simultane Verbindung zu mehreren Adressen sowie mehrere sichere Connections.

Architektur

Der L2TP-RFC verwendet eine Reihe von spezifischen Begriffen zur Beschreibung einer Systemarchitektur:

Durch den L2TP-Tunnel wird ermöglicht, dass die normalerweise am Einwahlknoten des ISP endende PPP-Verbindung bis zum Übergang zwischen Internet und Unternehmensnetzwerk erweitert wird.

Ablauf der L2TP-Connection

Der Verbindungsaufbau über L2TP läuft in insgesamt acht grundlegenden Schritten ab:

Tunnel und Paketformat

Es bestehen verschiedene Möglichkeiten, L2TP in den TCP-IP-Schichtaufbau zu integrieren. Den Ausgangspunkt bilden typischerweise PPP-Pakete, die eine Vielzahl von anderen Protokolldaten führen können. Diese PPP-Pakete werden nun ihrerseits in L2TP-Pakete getunnelt. Die L2TP-Pakete wiederum greifen auf einen Paketdienst zurück. RFC 2661 nennt hier Frame Relay, ATM oder auch UDP über Port 1701 als Beispiele. UDP wird seinerseits wieder über IP und, wenn es sich um eine serielle oder eine Dial-up-Verbindung handelt, auch wieder über PPP übertragen.

Natürlich stellt auch L2TP einen klassischen Header zur Verfügung. Dabei ist hervorzuheben, dass L2TP neben den Datenpaketen auch Steuerpakete versendet. Sie sind mit einem identischen Header ausgestattet; lediglich das "Type Field" unterscheidet zwischen Datenpaketen (Typ 0) und Steuerpaketen (Typ 1).

L2TP setzt selbst keine Authentifizierungs-, Integritäts- oder Verschlüsselungsmechanismen zum Schutz der getunnelten Pakete auf. Stattdessen verweist der RFC in diesem Punkt auf den IPsec-Standard. Da normale IP-Datagramme den L2TP-Tunnel umschließen, können die IPsec-Header (AH, ESP, IKE) problemlos zum Einsatz kommen. In VPN-Lösungen kommt daher meist eine Kombination aus L2TP und IPsec zum Einsatz.

AAA

Remote Access Server (RAS) ermöglichen den Dial-in-Zugang in Firmennetze. Deren Bedeutung hat in den vergangenen Jahren erheblich zugenommen.

Entsprechend zugenommen haben auch die Anforderungen an die Sicherheitskonzepte, die sich unter dem Akronym AAA zusammenfassen lassen. Das Kürzel steht für die Begriffe Authentication, Authorization und Accounting.

Als wichtigste Vertreter einer geschlossenen Lösung sind hier RADIUS und TACACS zu nennen. Zu den modernen Erweiterungen zählen insbesondere EAP und IEEE 802.1x.

RADIUS

Gerade in größeren Installationen ist die zentrale Pflege von Benutzerkennungen, Passwörtern und Zugriffsrechten unabdingbar. Der Remote Authentication Dial-In User Service (RADIUS) wurde speziell für den Nachrichtenaustausch zwischen RAS und einem Server, der alle Benutzerdaten zentral verwaltet, entwickelt.

Der ursprüngliche Entwurf stammt von der Firma Livingston Enterprises, die später von Lucent Technologies übernommen wurde, und basiert auf Vorarbeiten der IETF Network Access Working Requirements Group. Eine IETF-Arbeitsgruppe für RADIUS wurde im Januar 1996 gegründet. Sie bereitete die Verabschiedung der RFCs 2058 und 2138 vor, die später durch RFC 2865 und RFC 2866 ergänzt wurden.

Das RADIUS-Protokoll unterstützt eine Vielzahl von Mechanismen zur Authentifizierung einwählender Benutzer und ist offen für neue Entwicklungen. Die typische Authentifizierung läuft in folgenden Schritten ab:

Ein weiteres typisches Einsatzszenario ist die Authentifizierung in Wireless LANs.

TACACS

Das Terminal Access Controller Access Control System (TACACS) wurde als RFC 1492 standardisiert. Es liegt zusätzlich in zwei von Cisco erarbeiteten Erweiterungen vor: Extended TACACS (XTACACS) und TACACS+.

TACACS ähnelt der Architektur von RADIUS dahingehend, dass ein Remote Client eine Authentifizierungsanfrage an einen Network Access Server stellt, die dieser an einen zentralen Sicherheitsserver (TACACS-Server) weiterleitet. TACACS+ erlaubt wie RADIUS den Einsatz eines separaten Access-Servers, des TACACS+-Servers.

EAP und 802.1X

Das Extensible Authentication Protocol (EAP, RFC 2284) stellt eine wichtige Grundlage für eine umfassende und zentralisierte Sicherheitskonzeption dar. Ursprünglich wurde EAP als zuverlässige Authentifizierung der Remote-Access-User für PPP-Links entwickelt. Als allgemeines Protokoll bietet EAP mehrere Authentifizierungsmöglichkeiten. Die Auswahl des Verfahrens findet erst nach dem Link-Aufbau in der Authentifizierungsphase statt.

Von PPP ausgehend hat EAP mittlerweile auch Zugang in das 2001 verabschiedete IEEE 802.1x gefunden. Ziel dieses Standards ist die Port-bezogene Zugangskontrolle in Netzwerken (Port-based Network Access Control). Die Idee hinter 802.1x besteht darin, einem physischen Anschluss zwei logische Ports zuzuordnen. Der physische Anschluss leitet die empfangenen Pakete grundsätzlich an den so genannten freien Port (Uncontrolled Port) weiter. Der kontrollierte Port (Controlled Port) kann jedoch nur nach einer Authentifizierung erreicht werden. Diese erfolgt über den freien Port.

Die EAP-Messages werden dazu in 802.1x-Nachrichten verpackt (EAP over LAN, EAPOL). In der Regel übernimmt ein RADIUS-Server die Rolle des Authentifizierungsservers. Die EAP-Message wird dann als Attribut im RADIUS-Protokoll übertragen.

Lücken von 802.1x

IEEE 802.1x stellt eine wichtige Weiterentwicklung im Sicherheitskonzept für Netzwerke dar. Es weist jedoch zwei wesentliche Einschränkungen auf, die vor allem in drahtlosen Netzen zum Tragen kommen:

Solche Angriffe erscheinen bei einer Dial-up-Verbindung nicht praktikabel, da dort durch die Wahl der Telefonnummer der angerufene Partner nicht mehr authentifiziert werden muss. Bei festverdrahteten und entsprechend nach außen abgesicherten festverdrahteten Netzwerken hält sich das Risiko ebenfalls in Grenzen.

Ausblick

Im vorliegenden Teil unserer Reihe haben wir die Sicherheitsprotokolle auf der Verbindungsschicht des OSI-Modells besprochen. Der nächste Teil wird sich den Sicherheitsmechanismen auf der Netzwerkebene widmen. Dort kommen neben Filterprotokollen, die als Access Control Lists implementiert werden, vor allem Verschlüsselung (wie IPsec) sowie Masquerading-Protokolle zum Einsatz. Der Schwerpunkt des nächsten Kapitels unserer Reihe liegt aber auf der Darstellung der außerordentlich unübersichtlichen IPsec-Standardfamilie. (jlu)

Grundlagen: Security

Teil 1

Einführung in die Kryptographie

Teil 2

Kryptologische Verfahren

Teil 3

Security auf dem Link Layer

Teil 4

Security auf dem Network Layer

Teil 5

Security auf dem Application Layer

Teil 6

Security mit VPNs