Agenda
Teil 1 —EV-Laden und der V2G-Protokoll-Stack (dieser Artikel)
Teil 2 — Laborumgebung: Docker-basiertes V2G-Sicherheitslabor (demnächst)
Teil 3 — TLS-Downgrade (demnächst)
Teil 4 — SDP-Response-Spoofing (demnächst)
Teil 5 — Zertifikatsvalidierung (demnächst)
Teil 6 — Protokoll-Namespace-Downgrade (demnächst)
Dieser Beitrag wurde aus dem Englischen übersetzt. Zum Originalbeitrag.
Sicherheitstests für EV-Ladesysteme
Elektrofahrzeuge werden immer beliebter — allein die deutsche Regierung gewährt 2026 einen Kaufzuschuss von bis zu 6.000 € für neue batterieelektrische Fahrzeuge (BEVs). Parallel dazu ist auch die Ladeinfrastruktur gewachsen: Öffentliche Ladestationen säumen Autobahnen und Parkplätze, und Wallboxen zu Hause gehören in vielen Garagen längst zum Alltag. Betrachtet man das aus der Sicherheitsperspektive, drängt sich jedoch eine andere Frage auf: Was genau wird in dem Moment über dieses Kabel ausgetauscht, in dem Sie ein Fahrzeug anschließen — und lässt sich das manipulieren?
In dieser Artikelserie führen wir Sie durch den V2G-Kommunikations-Stack und seine Sicherheitsarchitektur und demonstrieren anschließend eine Reihe praxisnaher Angriffe auf eine reale Open-Source-Implementierung eines EVCC. Einige der Angriffe erfordern Hardware-Zugriff auf die Stromleitung, andere lassen sich vollständig in Software nachstellen. Auf diesen Unterschied weisen wir jeweils klar hin. Das hier ist Teil 1 — die Grundlage zu Protokollen und Bedrohungsmodell, auf der die weiteren Teile der Serie aufbauen.![]()
Vehicle-to-Grid (V2G)
V2G beschreibt das Konzept einer bidirektionalen Kommunikation zwischen einem Elektrofahrzeug und der Ladeinfrastruktur. In dem Moment, in dem Sie das Fahrzeug anschließen und das Dashboard die Station erkennt, beginnt ein strukturierter Protokollaustausch: Batteriestatus, maximale Ladeleistung, Abrechnungspräferenzen und Sitzungsdaten werden über das Kabel übertragen, noch bevor ein einziges Watt Strom fließt. Geregelt wird dieser Austausch durch eine Familie internationaler Standards, die die Interoperabilität zwischen Fahrzeugen und Ladegeräten unterschiedlicher Hersteller sicherstellen.
| Standard | Geltungsbereich |
|---|---|
| ISO/IEC 15118 | High-Level-V2G-Kommunikation (Applikationsschicht) |
| IEC 61851 | Low-Level-Kommunikation beim leitungsgebundenen Laden (Basissignalisierung) |
| IEC 61850-90-8 | Brücke zwischen ISO 15118 und netzseitiger Steuerung |
| DIN 70121 | Vorgänger von ISO 15118-2, weiterhin im Einsatz |
Im Zentrum jeder Ladesitzung kommunizieren zwei Steuergeräte miteinander:
-
EVCC (EV Communication Controller) — Client-seitig im Fahrzeug
-
SECC (Supply Equipment Communication Controller) — Server-seitig in der Ladestation
Why EV Charging Security Matters
Das Ladekabel ist nicht nur ein Leiter für Energie — es ist ein bidirektionaler Datenkanal zwischen Fahrzeug und externer Infrastruktur. Damit entsteht eine Angriffsfläche, die es bei konventionellen Fahrzeugen so nicht gab und die jedes Mal exponiert ist, wenn Fahrer:innen an einer öffentlichen Station laden.
Zentrale Sicherheitsaspekte:
- Authentifizierung und Abrechnung: Nur autorisierte Fahrzeuge sollten laden dürfen, und Fahrer:innen sollten nur von legitimen Stationen abgerechnet werden, mit denen sie tatsächlich verbunden waren.
- Datenintegrität: Ladeparameter — Energielimits, Preise, Sitzungskennungen — dürfen während der Übertragung nicht veränderbar sein.
- TLS-Durchsetzung: ISO 15118-2 schreibt TLS für die Applikationsschicht vor. In realen Implementierungen unterscheidet sich jedoch stark, wie konsequent das umgesetzt wird; manche prüfen Zertifikate überhaupt nicht.
- Auswirkungen auf das Stromnetz: Eine kompromittierte oder manipulierte EV-Flotte könnte angewiesen werden, gleichzeitig Strom zu beziehen oder zurückzuspeisen — mit potenziell netzinstabilisierenden Lastspitzen, für die es bei konventionellen Fahrzeugen kein vergleichbares Szenario gibt.
Das sind keine rein theoretischen Risiken. Die Angriffe, die wir später in diesem Artikel zeigen, belegen, dass sich die Lücke zwischen Standardanforderungen und realer Implementierung mit gängigen Werkzeugen ausnutzen lässt — ohne spezialisierte Hardware.
Architektur von EV-Ladesystemen
Bevor wir in Protokolle und Angriffe einsteigen, lohnt ein Blick auf das Gesamtsystem. In diesem Artikel konzentrieren wir uns auf den Kommunikationslink zwischen Fahrzeug und Ladestation — dieser Link ist jedoch Teil einer größeren Kette von Akteuren.
| Akteur | Rolle |
|---|---|
| EV | Enthält die Batterie (BMS) und den EVCC; initiiert die Ladesitzung |
| EVSE | Ladestation; liefert Leistung und betreibt den SECC |
![]()
Darüber hinaus gibt es zwei unterschiedliche Lademodi — AC und DC — und sie unterscheiden sich darin, wo die AC/DC-Wandlung stattfindet. Beim AC-Laden erfolgt die Umwandlung im Fahrzeug über das Onboard-Ladegerät. Beim DC-Laden findet die Umwandlung in der Ladestation statt, und Gleichstrom wird direkt an die Batterie geliefert. Jeder Modus hat seine eigene Steckverbinderfamilie.
| Connector | Region | Stromart | Standard |
|---|---|---|---|
| Typ 1 (SAE J1772) | USA, Japan | AC | IEC 62196-2 |
| Typ 2 (Mennekes) | Europa | AC | IEC 62196-2 |
| CCS Combo 1 | USA | AC + DC | IEC 62196-3 |
| CCS Combo 2 | Europa | AC + DC | IEC 62196-3 |
| CHAdeMO | Japan | DC | CHAdeMO spec |
Die Kombination aus Typ 2 und CCS Combo 2 ist in Europa der dominierende Standard. Aus Sicherheitssicht sind vor allem diese Pins relevant:
-
CP (Control Pilot): PWM-basierte Low-Level-Signalisierung (IEC 61851) mit überlagerten HomePlug-GreenPHY-PLC-Signalen für die High-Level-Kommunikation nach ISO 15118
-
PP (Proximity Pilot): Erkennung des angeschlossenen Kabels
-
PE (Protective Earth): Schutzleiter
![]()
Über die CP-Leitung wird der gesamte V2G-Anwendungsdatenverkehr transportiert — einschließlich Authentifizierungstoken, Sitzungskennungen und Ladeparametern. Damit ist sie die primäre Angriffsfläche auf der physikalischen Ebene.
Low-Level-Kommunikation (physikalische Schicht)
IEC 61851 definiert die elektrische Low-Level-Schnittstelle, die aufgebaut sein muss, bevor überhaupt Anwendungskommunikation möglich ist. Sie ist für die physikalische Verbindung und die Datenverbindungsschicht verantwortlich und nutzt dabei zwei Mechanismen:
- HomePlug Green PHY — physikalische Schicht und Datenlink über die Stromleitung
- SLAC — Link Discovery und Pairing zwischen EV und Ladegerät
Die elektrische Schnittstelle stellt zwei Pilotsignale bereit:
| Signal | Pin | Zweck |
|---|---|---|
| CP (Control Pilot) | Pin im Typ-2-Stecker | PWM-Signal; kodiert die Stromkapazität der EVSE und Zustandswechsel |
| PP (Proximity Pilot) | Pin im Typ-2-Stecker | Erkennt Kabelpräsenz und Stromtragfähigkeit |
CP-Zustandsmaschine:
Anhand des Spannungspegels des CP-Signals können beide Seiten den aktuellen Zustand des Ladevorgangs bestimmen:
| Zustand | Spannung | Bedeutung |
|---|---|---|
| A | +12 V DC | Kein Fahrzeug angeschlossen |
| B | +9 V / -12 V | Fahrzeug angeschlossen, nicht ladebereit |
| C | +6 V / -12 V | Fahrzeug ladebereit, Laden aktiv |
| D | +3 V / -12 V | Laden mit erforderlicher Belüftung |
| E/F | 0 V / -12 V | Fehler oder EVSE offline |
Die High-Level-Kommunikation nach ISO 15118 liegt auf IEC 61851 auf — für eine vollständige V2G-Sitzung müssen beide Ebenen vorhanden sein.
HomePlug Green PHY (HPGP)
Die High-Level-V2G-Nachrichten werden per Power-Line Communication (PLC) über die Stromleitungen des Ladekabels übertragen. PLC ist das allgemeine Verfahren, Daten über elektrische Leitungen zu senden; HomePlug Green PHY (HPGP) ist das speziell für EV-Laden ausgewählte Profil — es definiert Modulation, Kodierung und Netzwerkbildung in einer standardisierten, energiearmen Form, die für die begrenzte Powerline-Umgebung geeignet ist.
Ein HPGP-Modem kann entweder im PEV-Modus oder im EVSE-Modus arbeiten. Beide Seiten müssen zunächst ein gemeinsames logisches Netzwerk bilden — ein AV Logical Network (AVLN) — bevor IP-Verkehr möglich ist. Genau an dieser Stelle kommt SLAC ins Spiel.
SLAC — Signal Level Attenuation Characterization
SLAC ist der Mechanismus, mit dem ein EV die physisch nächstgelegene EVSE auswählt, wenn mehrere Ladegeräte in Reichweite sind. Das ist sicherheitsrelevant: Das Fahrzeug sollte sich nur mit der Station koppeln, an die es physisch angeschlossen ist — nicht mit einer benachbarten.
![]()
Ablauf:
-
Das EV sendet ein Broadcast CM_SLAC_PARAM.REQ.
-
Alle EVSEs in Reichweite antworten mit CM_SLAC_PARAM.CNF.
-
Das EV sendet eine Reihe von SOUNDING-Paketen (CM_START_ATTEN_CHAR.IND).
-
Jede EVSE misst die empfangene Signalstärke und antwortet mit CM_ATTEN_CHAR.IND, das ihre MAC-Adresse und die mittlere Dämpfung enthält.
-
Das EV wählt die EVSE mit der geringsten Dämpfung aus (stärkstes Signal = physisch am nächsten).
-
Das EV sendet CM_SLAC_MATCH.REQ an die ausgewählte EVSE.
-
Die EVSE antwortet mit CM_SLAC_MATCH.CNF — der NMK (Network Membership Key) wird dabei im Klartext übertragen.
- Beide Seiten konfigurieren ihre PLC-Modems mit dem gemeinsamen NMK und bilden ein AVLN.
Die sicherheitsrelevante Bedeutung von Schritt 7 ist erheblich. Der NMK ist der symmetrische Schlüssel, mit dem der gesamte HPGP-Verkehr auf diesem Segment verschlüsselt wird. Da er in CM_SLAC_MATCH.CNF ungeschützt übertragen wird, kann jeder Angreifer, der diesen einzelnen Frame beobachtet — selbst als passiver Sniffer auf einem gemeinsam genutzten PLC-Segment — dem Netzwerk sofort beitreten und den nachfolgenden PLC-Verkehr entschlüsseln, einschließlich der darauf aufsetzenden ISO-15118-2-Kommunikation auf der Applikationsebene.
High-Level Communication (HLC)
Sobald die Low-Level-PLC-Verbindung aufgebaut ist und die EVSE per SLAC ausgewählt wurde, beginnt die High-Level-Kommunikation. Hier werden die eigentlichen V2G-Applikationsnachrichten ausgetauscht: Protokollverhandlung, Sitzungsaufbau, Authentifizierung, Ladeparameter, Energieübertragung und Abrechnung. All das wird durch die Normenfamilie ISO 15118 geregelt.
| Standard | Geltungsbereich |
|---|---|
| ISO 15118-1 | Begriffe, Definitionen, allgemeine Anforderungen und Use Cases |
| ISO 15118-2 | Zentrale Applikationsnachrichten für kabelgebundenes AC/DC-Laden (aktuell) |
| ISO 15118-3 | Anforderungen an physikalische Schicht und Datenlink für kabelgebundenes Laden |
| ISO 15118-8 | Anforderungen an physikalische Schicht und Datenlink für kabelloses Laden |
| ISO 15118-20 | Next-Generation-Applikationsschicht (2022); nicht rückwärtskompatibel zu -2 |
Die HLC nutzt mehrere Protokolle, die aus klassischer Web- und Netzwerksicherheit bekannt sind:
- TCP/IP — zuverlässiger Transport zwischen EV und Ladegerät
- TLS — gegenseitige Authentifizierung und Verschlüsselung des Anwendungskanals
- EXI — komprimierte Binärkodierung von XML-Nachrichten
- XML — Nachrichtenstruktur und Schemadefinition
- V2GTP — Transport-Wrapper für ISO-15118-2-Nachrichten über TCP
Da es sich um allgemeine Protokolle handelt, lassen sich bekannte Angriffsklassen aus der Web- und Netzwerksicherheit direkt übertragen — etwa TLS Stripping, Zertifikatsspoofing, Man-in-the-Middle-Angriffe oder Replay-Angriffe.
Zuordnung zum OSI-Modell
Die Einordnung des vollständigen V2G-Stacks in das OSI-Modell erleichtert das Verständnis für die Schichten — und die jeweilige Angriffsfläche.
| OSI-Schicht | V2G-/ISO-15118-Pendant | ISO-15118-Teil |
|---|---|---|
| 7 — Anwendung | ISO 15118-2 / DIN 70121 (XML-Ladenachrichten), ISO 15118-20 (neu, ergänzt bidirektionales V2G) | ISO 15118-2 (aktuell), ISO 15118-20 (Nachfolger) |
| 6 — Darstellung | EXI (Efficient XML Interchange) — XML nach Binär | ISO 15118-2 / -20 |
| 5 — Sitzung | V2GTP (Vehicle-to-Grid Transport Protocol) | ISO 15118-2 / -20 |
| 4 — Transport | TCP + TLS (V2G-Sitzungsdaten), UDP (nur für SDP Discovery) | ISO 15118-2 / -20 |
| 3 — Netzwerk | IPv6 (Link-Local-Adressen) | Standard-IPv6 |
| 2 — Sicherung | HomePlug Green PHY — MAC-Schicht, SLAC-Pairing | ISO 15118-3 |
| 1 — Physikalisch | CP-Leitung des Ladekabels, HPGP-Modulation | ISO 15118-3 |
Der gesamte V2G-Verkehr nutzt IPv6-Link-Local-Adressen — globales Routing ist nicht erforderlich, und die gesamte Sitzung bleibt auf das einzelne PLC-Netzsegment beschränkt, das während SLAC aufgebaut wird.
V2GTP — Vehicle-to-Grid Transport Protocol
V2GTP ist ein minimales Framing-Protokoll, das in ISO 15118-2 definiert ist. Es sitzt direkt oberhalb von TLS/TCP und unterhalb der EXI-kodierten XML-Nutzlast. Sein einziger Zweck besteht darin, jede Nachricht mit einem 8-Byte-Header zu versehen, damit der Empfänger weiß, wie groß die Nutzlast ist und welchen Typ sie hat:
| Version (1 byte) | Inverse Version (1 Byte, XOR) | Payload Type (2 Byte) | Payload-Länge (4 Byte) | Payload (N Byte) |
|---|
| Feld | Wert | Zweck |
|---|---|---|
| Version | 0x01 | Immer 1 für ISO 15118-2 |
| Inverse Version | 0xFE | XOR des Versionsbytes — Konsistenzprüfung |
| Payload Type | z. B. 0x8001 | Kennzeichnet die Nutzlast (EXI-V2G-Nachricht, SDP-Request/Response usw.) |
| Payload-Länge | variabel | Länge der nachfolgenden EXI-Nutzlast in Byte |
V2GTP stellt weder Zuverlässigkeit noch Reihenfolge oder Routing bereit — das übernimmt TCP. Das Protokoll ist bewusst schlank gehalten: gerade genug Framing, damit der Empfänger die folgenden Daten korrekt interpretieren kann.
SECC Discovery Protocol (SDP)
Sobald der PLC-Link steht, muss der EVCC die IP-Adresse und den TCP-Port des SECC ermitteln, bevor er eine V2G-Sitzung aufbauen kann. Dafür nutzt er das SECC Discovery Protocol (SDP): einen leichtgewichtigen, UDP-basierten Austausch, der vollständig über das HomePlug-GreenPHY-Netz läuft, bevor überhaupt eine TCP-Verbindung existiert.
Ablauf:
![]()
Die SECC_ResponseMessage enthält:
-
die IPv6-Adresse und den TCP-Port des SECC für die V2G-Sitzung
- das Feld SecurityProtocol: 0x00 = TLS erforderlich, 0x10 = kein TLS
Nach dem SDP öffnet der EVCC eine TCP-Verbindung zu der beworbenen Adresse und dem angegebenen Port.
Der sicherheitskritische Punkt dabei: Der gesamte SDP-Austausch ist weder authentifiziert noch verschlüsselt. Er findet statt, bevor TLS aufgebaut wird, und es gibt keinen Mechanismus, um zu überprüfen, ob die SDP-Antwort tatsächlich von der Station stammt, an die das Kabel angeschlossen ist. Jeder Knoten auf dem Link, der den Multicast des EVCC hört und schneller als der echte SECC antwortet, kann eine beliebige Adresse, einen beliebigen Port und ein beliebiges Sicherheitsniveau bewerben. Genau diese Eigenschaft nutzen wir später im Szenario SDP Spoofing aus.
Nachrichtenfluss einer V2G-Sitzung
Sobald die TCP- oder TLS-Verbindung steht, folgen EVCC und SECC einer festen Request-/Response-Sequenz.
Sitzungsaufbau:
![]()
Laden und Beenden der Sitzung:
![]()
Jede Nachricht wird vor dem Versand über TCP in einen V2GTP-Header eingekapselt.
Die Nachrichten AuthorizationReq und SessionSetup transportieren die Identität des Fahrzeugs und die Abrechnungsdaten. Wenn TLS nicht erzwungen wird — oder vor Sitzungsbeginn entfernt wird — sind all diese Nachrichten für jeden passiven Beobachter auf dem gemeinsam genutzten PLC-Segment im Klartext sichtbar.
EXI-Codierung/-Decodierung
Alle ISO-15118-2-Applikationsnachrichten sind XML-Dokumente, werden aber im EXI-Format (Efficient XML Interchange) übertragen, um die Größe auf dem begrenzten Powerline-Kanal zu minimieren.
| Format | Größe (typische Nachricht) | Menschenlesbar |
|---|---|---|
| Raw XML | ca. 800–2000 Byte | Ja |
| EXI | ca. 30–200 Byte | Nein |
XML-Signaturen: V2G-Nachrichten mit sensiblen Daten (z. B. AuthorizationReq) enthalten innerhalb der V2GTP-Nutzlast eine digitale XML-Signatur und bieten so zusätzlich zur Transportsicherheit per TLS auch Integrität auf Nachrichtenebene. Selbst wenn es einem Angreifer gelingt, sich in den Datenpfad einzuklinken, ist das unbemerkte Manipulieren signierter Nachrichten damit deutlich schwieriger, als sie lediglich mitzulesen.
Für die EXI-Decodierung wird das XML-Schema (XSD) benötigt, das die Nachrichtenstruktur definiert — ohne das passende Schema lassen sich EXI-Bytes nicht interpretieren.
ISO 15118-2 verwendet:
-
V2G_CI_MsgDef.xsd — oberste Nachrichtenhülle
-
V2G_CI_MsgBody.xsd — alle Request-/Response-Bodies
-
V2G_CI_MsgHeader.xsd — Session-ID, Signatur
-
V2G_CI_MsgDataTypes.xsd — gemeinsame Datentypen
-
V2G_CI_AppProtocol.xsd — SupportedAppProtocol-Nachrichten
Überblick über die Bedrohungslage
Mit dem vollständigen Kommunikations-Stack vor Augen lassen sich bekannte Angriffsklassen den jeweiligen V2G-Protokollschichten zuordnen. Viele davon sind direkte Analoga zu Verfahren, die aus der klassischen Netzwerksicherheit bekannt sind — neu ist hier vor allem die physische Zugänglichkeit des Ziels. Jede öffentliche Ladestation ist ein potenzieller Einstiegspunkt, erreichbar für jede Person mit einem kompatiblen EV oder einem PLC-Adapter.
| Schicht | Angriff | Auswirkung |
|---|---|---|
| SLAC / HPGP (physikalisch) | Gefälschtes CM_ATTEN_CHAR.IND → falsches EVSE-Pairing | Abrechnungsbetrug, MitM |
| SLAC / HPGP (physikalisch) | NMK-Sniffing aus CM_SLAC_MATCH.CNF | Beitritt zu jedem AVLN, Entschlüsselung von PLC-Verkehr |
| SLAC / HPGP (physikalisch) | DAK-Ableitung aus der MAC-Adresse | Remote-Neukonfiguration des NMK |
| SDP (Netzwerk) | Rennen gegen den SECC / gefälschte SDP-Antwort | Sitzungsübernahme |
| SDP (Netzwerk) | SecurityProtocol-Downgrade (TLS → Klartext) | Offenlegung der V2G-Sitzung im Klartext |
| SDP (Netzwerk) | ICMPv6-Neighbour-Discovery-Spoofing | Man-in-the-middle |
| ISO 15118-2 (Anwendung) | Protokoll-Namespace-Downgrade (ISO → DIN 70121) | Umgehung von Sicherheitsfunktionen |
| ISO 15118-2 (Anwendung) | Bypass der Zertifikatsvalidierung | Vortäuschen einer legitimen Station |
| ISO 15118-2 (Anwendung) | Manipulation von Ladeparametern | Energiediebstahl, Batteriebelastung |
| ISO 15118-2 (Anwendung) | Fuzzing von V2G-Nachrichten | Absturz/Hängenbleiben des Lade-Stacks |
Angriffe auf der physikalischen Ebene (SLAC/HPGP) erfordern ein Hardware-PLC-Kit und physische Nähe zum Ladekabel oder demselben Stromleitungssegment. Alles ab SDP aufwärts lässt sich in einem rein softwarebasierten Labor demonstrieren — genau dieses Setup bauen wir als Nächstes auf.![]()