Netzwerke sehen sich nicht nur Angriffen von Extern ausgesetzt. So gilt es, bereits am Eintrittspunkt in das interne Netzwerk oder bei physischem Zugriff von Dritten auf Zugriffspunkte im Netzwerk entsprechende Absicherungen vorzunehmen. Eine initiale Authentifizierung beim LAN-Zugriff ohne nachgelagerte Überprüfung der übertragenen Pakete, wie bei klassischen NAC-Systemen, reicht dann nicht mehr aus. Ein Ansatz stellt die Media Access Control Security dar, die auf Layer 2 verschlüsselt – und das quasi ohne Geschwindigkeitsverlust.
MACsec [1] ist ein Layer-2-Sicherheitsprotokoll, das zur kryptografischen Punkt-zu-Punkt-Absicherung in verkabelten Netzwerken, wie beispielsweise auf Switches, Anwendung findet. Netzwerkzugangskontrollen gemäß IEEE 802.1X-2004 bieten lediglich eine Authentifizierung auf Basis des Extended Authentication Protocol (EAP) Frameworks; im besten Fall kombiniert mit einer periodischen Re-Authentifizierung. Jedoch gibt es keine Prüfung der Integrität und die Vertraulichkeit kann auf dieser Ebene der Kommunikationsbeziehung nicht gewährleistet werden. IEEE 802.1X-2010 in Kombination mit 802.1ae ermöglicht dies.
Dabei bietet der Standard eine höhere Performance und ist weniger komplex in der Implementierung als klassische IPSec-basierte Verschlüsselungen. Bei Bedarf ist aber auch eine Kombination mit anderen Securityprotokollen wie IPsec und TLS möglich. Gleichzeitig lassen sich Layer-2-Protokolle wie LLDP, CDP und LACP sowie ARP transparent übertragen. Zusätzlich ist das Protokoll kompatibel zu IPv4 und IPv6, da es sich im OSI-Referenzmodell eine Schicht unterhalb befindet. Die Implementierung von MACsec findet hardwarenah statt und bietet daher eine hohe Performance bis zur vollen Line Rate, also der maximal möglichen Datenrate des Links. Angriffe wie Session Spoofing, Replay-Attacken oder Man-in-the-Middle-Angriffe laufen dabei ins Leere. MACsec stellt jedoch keine Ende-zu-Ende-Verschlüsselung sicher.
Szenario 1: Switch zu Endgerät
Dieses Szenario definiert MACsec zur Absicherung des Links von einem Endgerät zum Switch. Ziel ist die verschlüsselte Übertragung zwischen den beiden Devices nach erfolgreicher Authentifizierung und Autorisierung. Im IEEE-802.1X-Terminus wird das Endgerät in diesem Fall als Supplicant bezeichnet, beim Switch ist vom Authenticator und beim zuständigen RADIUS-Server vom Authentication Server die Rede.
MACsec [1] ist ein Layer-2-Sicherheitsprotokoll, das zur kryptografischen Punkt-zu-Punkt-Absicherung in verkabelten Netzwerken, wie beispielsweise auf Switches, Anwendung findet. Netzwerkzugangskontrollen gemäß IEEE 802.1X-2004 bieten lediglich eine Authentifizierung auf Basis des Extended Authentication Protocol (EAP) Frameworks; im besten Fall kombiniert mit einer periodischen Re-Authentifizierung. Jedoch gibt es keine Prüfung der Integrität und die Vertraulichkeit kann auf dieser Ebene der Kommunikationsbeziehung nicht gewährleistet werden. IEEE 802.1X-2010 in Kombination mit 802.1ae ermöglicht dies.
Dabei bietet der Standard eine höhere Performance und ist weniger komplex in der Implementierung als klassische IPSec-basierte Verschlüsselungen. Bei Bedarf ist aber auch eine Kombination mit anderen Securityprotokollen wie IPsec und TLS möglich. Gleichzeitig lassen sich Layer-2-Protokolle wie LLDP, CDP und LACP sowie ARP transparent übertragen. Zusätzlich ist das Protokoll kompatibel zu IPv4 und IPv6, da es sich im OSI-Referenzmodell eine Schicht unterhalb befindet. Die Implementierung von MACsec findet hardwarenah statt und bietet daher eine hohe Performance bis zur vollen Line Rate, also der maximal möglichen Datenrate des Links. Angriffe wie Session Spoofing, Replay-Attacken oder Man-in-the-Middle-Angriffe laufen dabei ins Leere. MACsec stellt jedoch keine Ende-zu-Ende-Verschlüsselung sicher.
Szenario 1: Switch zu Endgerät
Dieses Szenario definiert MACsec zur Absicherung des Links von einem Endgerät zum Switch. Ziel ist die verschlüsselte Übertragung zwischen den beiden Devices nach erfolgreicher Authentifizierung und Autorisierung. Im IEEE-802.1X-Terminus wird das Endgerät in diesem Fall als Supplicant bezeichnet, beim Switch ist vom Authenticator und beim zuständigen RADIUS-Server vom Authentication Server die Rede.
Der erste Schritt nach dem Linkaufbau ist die Authentifizierung des Supplicants. Hierfür kommen zwischen Supplicant und Authenticator sogenannte EAPoL-Frames zum Einsatz. Um zur Authentifizierung aus dieser Art von EAP-Frames eine RADIUS-Anfrage vom Authenticator an den Authentication-Server zu generieren, verpackt der Authenticator diese in RADIUS-Request-Nachrichten. Auf dem RADIUS-Server muss die entsprechende EAP-Methode des Supplicants freigegeben sein. Dies kann beispielsweise PEAP-MSCHAPv2 für eine TLS-geschützte Übertragung von Benutzername und Kennwort nach Validierung des Serverauthentifizierungszertifikats des RADIUS-Servers sein, aber auch EAP-TLS, falls eine beidseitige TLS-Authentifizierung zwischen Supplicant und Authentication-Server stattfinden soll.
Der wesentliche Unterschied zwischen einer Authentifizierung in der älteren Variante gemäß IEEE 802.1X-2004 und IEEE 802.1X-2010 in Verbindung mit 802.1ae besteht darin, dass auf Basis einer erfolgreichen Authentifizierung eine Autorisierung mit Zusatzattributen stattfindet. Hierzu weist der Authentication-Server ein "RADIUS Access-Accept" mit der MACsec-Richtlinie an den Authenticator zurück. Daran erkennt dieser, dass er MACsec nutzen soll. Die entsprechenden Verschlüsselungsalgorithmen wie AES-GCM128 oder AES-GCM256 müssen auf Supplicant und Authenticator übereinstimmend konfiguriert sein. Zusätzlich findet eine Generierung des Master Session Keys statt.
Auf Basis dieses Master Session Keys findet im Anschluss der Schlüsselaustausch über das MACsec Key Agreement (MKA) statt. Nach dem MKA-Prozess verfügen Authenticator und Supplicant über das benötigte Schlüsselmaterial, um darauf aufbauend eine verschlüsselte Datenübertragung durchzuführen.
Bild 1: Die Kommunikation zwischen Authentication-Server, Authenticator und Supplicant.
Szenario 2: Switch zu Switch
Im zweiten Szenario kommt die MACsec-Verschlüsselung für die Verbindung zwischen zwei Switches zur Anwendung. Wenn Dritte einen physischen Zugang zur Verkabelung haben, empfiehlt sich eine MACsec-Übertragung bei entsprechendem Schutzbedarf und falls keine anderweitigen, adäquaten Verschlüsselungsverfahren zum Einsatz kommen. Beispiele für dieses Szenario sind Layer-2-Verbindungen über Provider, wie sie in MetroEthernet-Umgebungen zur Anwendung kommen. Gleiches gilt jedoch auch für von Dritten betriebene Dark-Fibre-Verbindungen oder wenn eigene Lichtwellenleiterverbindungen durch Bereiche von Dritten laufen.
Auf solchen Strecken wäre es ohne Verschlüsselung möglich, Daten über Biegekoppler oder TAPs auszuleiten und im Nachgang zu analysieren. Die Payload des MAC-Frames ist beim Einsatz von MACsec verschlüsselt und somit nicht ohne weiteres auswertbar. Bei Verbindungen über Provider bedarf es jedoch einer Klärung, ob eine Übertragung von MACsec-Frames über dessen Netzwerk mit dem Ethertype "0x88e5" möglich ist. Da MACSec auf Layer 2 arbeitet, muss es für jede Schnittstelle einzeln aktiviert werden.
MACsec-Abkürzungen und -Begriffe
Abkürzung
Bedeutung
CA
Connectivity Association: Gesicherte Control-Plane Verbindung zwischen MACsec-Peers.
CAK
Connectivity Association Key: Schlüssel der Control-Plane, von dem der Sitzungsschlüssel abgeleitet wird.
SA
Security Association: Verbindung zwischen zwei MACsec-Peers, die eine verschlüsselte Verbindung auf Basis des SAKs garantiert.
SAK
Security Association Key: Sitzungsschlüssel, der vom CAK abgeleitet wurde usselung zwischen zwei MACsec-Peers dient.
SC
Secure Channel: Logischer Kanal, innerhalb dessen die verschlüsselte Übertragung stattfindet.
SCI
Secure Channel Identifier: Eindeutiges Identifizierungsmerkmal des Kanals zur verschlüsselten Übertragung bestehend aus MAC-Adresse und Portbezeichnung.
MKA
MACsec Key Agreement: Schlüsseleinigungsprotokoll, um MACsec-Peers aufzufinden, Schlüssel zu generieren, zu erneuern und auszutauschen.
CKN
Connectivity Association Key Name: Dient als Rahmen für den CAK. Die Peers übertragen diesen untereinander zur Validierung im Klartext.
Supplicant
Clientkomponente zur Authentifizierung gemäß IEEE 802.1X.
Authenticator
Komponente, die eine Authentifizierung über das EAPoL mit dem Supplicant und über das RADIUS-Protokoll zum Authentication Server durchführt. Der RADIUS-Server verwehrt oder gewährt den Zugang gemäß der Autorisierung.
Authentication Server
RADIUS-Server zur Authentifizierung, Autorisierung und Accounting gemäß IEEE 802.1X.
Verschlüsselungsverfahren
Als Algorithmus der Verschlüsselung verwendet MACsec Advanced Encryption Standard (AES) im Galois Counter Mode (GCM). MACsec verschlüsselt Hop-by-Hop. Dies bietet Vor- und Nachteile zugleich. Als Schlüssellängen stehen 128 und 256 Bit zur Verfügung. Die IEEE führte mit 802.1AEbw noch ein sogenanntes Extended Packet Numbering (AES-GCM-XPN) für die aktuellen Anforderungen an hohe Datenraten ein. Durch dieses kann MACsec innerhalb eines Sicherheitsassoziierungsschlüssels (SAK) 232 Frames übertragen. Durch diese Ergänzung gelingt es MACsec, auch Datenraten über 100 GBit/s sicher zu verschlüsseln. Der verwendete Algorithmus muss in der Konfiguration auf Switch und Endgerät oder beiden Switches übereinstimmen.
Der MACsec-Header in IEEE 802.1AE wird auch als Security Tag bezeichnet. Seine Länge beträgt 16 Byte. Gleiches gilt für den Wert des Integritätschecks (ICV), den MACsec an den Frame anhängt. Der Security Tag besteht insgesamt aus fünf Feldern: Ethertype, TCI/AN, SL, PN und SCI. Der MACsec-Ethertype enthält den Wert "0x88E5". TCI/AN steht als Abkürzung für "TAG Control Information / Association Number" und definiert eine Versionsnummer für MACsec, ohne dass es einen neuen Ethertype geben muss. Im Short-Length-Feld (SL) gibt es eine Angabe zur Länge der verschlüsselten Daten. Die Paketnummer ist wiederum im PN-Feld enthalten, wohingegen der Secure Channel Identifier im SCI-Feld auftaucht. Letzterer basiert auf einem Identifikator des jeweiligen Ports auf der Komponente und der MAC-Adresse.
Der gesamte MACsec-Frame ähnelt einem Ethernet-Frame. Er enthält zusätzlich noch einen Integrity Check Value (ICV) um sicherzustellen, dass der Frame unterwegs keiner Manipulation unterzogen wurde. Dazu entschlüsseln die MACsec-Peers eingehende Frames und berechnen den erwarteten ICV mit dem Session Key aus dem MKA. Stimmt dieser nicht mit dem übertragenen ICV überein, verwirft der empfangende Peer den Frame.
Statische und dynamische Schlüsselverteilung
Jede MACsec-Sitzung baut auf einer Connectivity Association (CA) auf. Diese beschreibt eine logische Session zwischen den Peers. Das sogenannte MACsec-Key-Agreement-Protokoll (MKA) baut diese Verbindung auf. Vor einer verschlüsselten Übertragung bedarf es jedoch zunächst der Verteilung des benötigten Schlüsselmaterials. Bei MACsec können statische wie auch dynamische Schlüsselverteilungen zum Einsatz kommen. Bei der statischen Variante kommen, wie der Name bereits vermuten lässt, vorkonfigurierte Connectivity Association Keys (CAK) zum Einsatz. Diese müssen auf den beteiligten Peers übereinstimmen. Dazu bedarf es auf den MACsec-Peers einer Hinterlegung von symmetrischen Pre-Shared-Keys, dem sogenannten CAK, sowie eines Connectivity Association Key Names (CKN). Dieser dient als Rahmen für den CAK, wobei die Peers CKNs im Klartext austauschen. Auch diese müssen auf beiden Seiten der Verbindung übereinstimmen.
Der CAK dient jedoch zunächst nur als Absicherung der Steuerungsdaten (Control-Plane) und nicht zur Verschlüsselung der Nutzdaten (Data-Plane). Dazu braucht es einen Session Association Key (SAK). Um diesen SAK zu generieren, müssen CAK und CKN übereinstimmen. Sobald dies der Fall ist, tritt das MACsec Key Agreement Protokoll (MKA) in Aktion. Dieses findet zunächst benachbarte Peers und legt anschließend den Key-Server unter diesen fest. MKA mit niedrigeren numerischen Werten in der Priorität haben Vorrang vor solchen mit höheren numerischen Werten.
Der Key-Server generiert im Anschluss die symmetrischen SAKs und verteilt diese zwischen den gegenüberliegenden Switches. Im Nachgang kann eine verschlüsselte Datenübertragung auf der Data-Plane stattfinden. Das MKA generiert folgend periodisch neue SAKs und verteilt diese, was als Key Rollover bezeichnet wird. Diese Methode kommt meist bei der Kopplung von zwei Switches mit MACsec zum Einsatz.
Dynamische Schlüsselverteilung
Bei der dynamischen Methode baut MACsec auf das EAP-Framework aus IEEE 802.1X auf. Nach erfolgreicher Authentifizierung und Autorisierung von Supplicant und Authenticator tauschen diese Daten des MKA über einen speziellen EAPoL-Typ aus. Wie bereits bei der statischen Schlüsselverteilung findet das MKA zunächst die MACsec-Peers. Auf Basis einer erfolgreichen EAP-Authentifizierung verteilt ein RADIUS-Server einen Master-Key. Von diesem leitet sich der CAK ab. CAKs verfügen, wie bei der statischen Variante auch, über einen zugehörigen CKN.
Vom CAK leiten sich dann weitere Schlüssel ab: Der ICK (ICV-Key) und der KEK (Key-Encryption-Key). Der Key-Server, der über das MKA bestimmt wurde, nutzt den KEK, um die generierten SAKs über die CA zum Peer zu übertragen. Das Advanced Encryption Standard Key Wrap sichert diese Übertragung ab. Diese SAKs schützen dann die Nutzdatenübertragung auf der Data-Plane. Der SAK verfügt über eindeutige Identifizierungsmerkmale: Den Identifier (KI) und die Key Number (KN). Der KI ist 128 Bit und der KN 32 Bit lang, wobei die Peers den KI in allen MACsec-Frames im Klartext übertragen.
Bild 3: MACsec-Frameaufbau mit verschlüsseltem VLAN-Tag und Nutzdaten. Zusätzlich wird zu klassischen Ethernet-Headern der 802.1ae-Header (Security Tag) und ein ICV eingefügt.
Praktische Konfigurationsbeispiele
Mit ein paar Beispielen möchten wir die unterschiedlichen Szenarien einer MACsec-Verschlüsselung auf einem Switch veranschaulichen. Die Beispiele basieren auf Cisco-Switches [2] vom Typ Catalyst 9300 [3] in IOS-XE-Version 17.6 als Authenticator, einem Windows-Endgerät mit Cisco-Secure-Client als Supplicant und einer Cisco-Identity-Services-Engine als Authentication-Server. Diese stellen lediglich Beispiele dar und erheben keinerlei Anspruch auf Vollständigkeit. Die Konfigurationen sind auf den MACsec- und 802.1X-spezifischen Anteil beschränkt. Andere Hersteller, Hardwaremodelle und Softwareversionen können hiervon abweichen.
Switch zu Endgerät mit dynamischer Schlüsselverteilung
Auf dem Supplicant braucht es ein MACsec-Profil. Sie können dies im zugehörigen Profileditor für den Cisco-Secure-Client anlegen. Dazu wählen Sie im Bereich "Networks / Security" als Schlüsselverwaltung MKA und zusätzlich den Verschlüsselungsalgorithmus für MACsec aus. Dieser muss mit dem Switch kompatibel und symmetrisch konfiguriert sein. In unserem Beispiel wählen wir AES-GCM mit 128 Bit. Danach importieren Sie das Profil auf dem Client. Auf dem Authenticator (Switch) bedarf es mehr Handarbeit: Zunächst ist eine Definition der RADIUS Server mit IP-Adresse, Ports und Shared Secret gefragt. Im Nachgang referenzieren Sie diese in den AAA-Einstellungen für Authentifizierung, Autorisierung und Accounting und aktivieren IEEE 802.1X global, falls noch nicht zuvor geschehen.
MACsec-spezifisch bedarf es zusätzlich einer MKA-Richtlinie. In dieser legen Sie die Priorität für den Key-Server fest. Zusätzlich geben Sie den eingesetzten Verschlüsselungsalgorithmus passend zum Supplicant an, also im Beispiel in Listing 1 AES-GCM 128 Bit. Den Confidentiality-Offset setzen Sie in der MKA-Richtlinie auf 0 Byte. Hierdurch verschlüsselt MACsec den gesamten Frame. Im Fall von Switchkopplungen könnte hierbei ein bestimmter Anteil des Frames unverschlüsselt bleiben, um beispielsweise VLAN-Tags für Transitkomponenten auswertbar zu lassen. Über die Replay-Protection legen Sie fest, inwieweit die Framereihenfolge von der regulären Reihenfolge abweichen darf.
aaa accounting dot1x default start-stop group macsec
!
dot1x system-auth-control
!
mka policy ITA_MKA
key-server priority 100
macsec-cipher-suite gcm -aes-128
confidentiality-offset 0
replay-protection window-size 10
!
interface GigabitEthernet2/0/1
description ITA_MACsec_Client
switchport mode access
switchport access vlan 10
macsec
authentication host-mode multi-auth
authentication order dot1x
authentication port-control auto
dot1x pae authenticator
authentication linksec policy must-secure
mka policy ITA_MKA
spanning-tree portfast
Zu guter Letzt findet die Einrichtung des physischen Ports statt. Darin definieren Sie neben den klassischen 802.1X-Einstellungen eine Referenz auf die MKA-Richtlinie, eine Aktivierung von MACsec und eine Linksec-Richtlinie auf "must-secure", um die Verschlüsselung zu erzwingen.
Auf dem Authentication-Server müssen Sie zunächst ein Autorisierungsprofil mittels der "must-secure"-Policy definieren. Im Nachgang referenzieren Sie dieses in einer Autorisierungsrichtlinie für die gewünschten Supplicants gemäß deren Eigenschaften aus der Authentifizierung.
Switch zu Switch im statischem CAK-Modus
Etwas einfacher als die dynamische Schlüsselverteilung im Fall von Switch zu Endgerät fällt die Einrichtung für MACsec zwischen zwei Switchen aus. Die Konfiguration erfolgt mit Ausnahme der Key-Server-Priorität auf beiden Switches gleich. Zunächst definieren Sie einen Schlüsselbund für MACsec mit einer Schlüsselnummer. Diese Schlüsselnummer dient als CKN. Innerhalb der Schlüsselnummer legt er den Algorithmus des Schlüssels und die Zeichenkette des Schlüssels an. Diese dient als CAK. Im Anschluss legen Sie wieder die MKA-Richtlinie fest, was wir hier nicht erneut ausführen. Final nehmen Sie die Bindung der MKA-Richtlinie sowie des Schlüsselbunds als Pre-Shared-Key und die Aktivierung von MACsec auf der physischen Schnittstelle vor, wie in Listing 2 gezeigt.
Listing 2: MACsec-Uplink zu Switch
key chain ITA macsec
key 1000
cryptographic-algorithm aes-256-cmac
key-string 12345678911234567890123456789012
!
mka policy ITA_MKA_Switch
key-server priority 100
macsec-cipher-suite gcm-aes-256
confidentiality-offset 30
!
interface TenGigabitEthernet1/0/1
description ITA_MACsec_Client
switchport mode trunk
macsec network-link
mka policy ITA_MKA_Switch
mka pre-shared-key key-chain ITA
Fazit
MACsec kann keine Ende-zu-Ende-Verschlüsselung ersetzen. Geht es jedoch darum, einen definierten Link mit hoher Performance zu verschlüsseln, bietet sich MACsec sehr wohl an. Gleiches gilt für die Absicherung von Layer-2-Protokollen zwischen Client und Switch beziehungsweise zwischen zwei Switches. Trotz der letzten Überarbeitung von 2018 ist die Verbreitung in Supplicants nach wie vor recht gering.