Zum Inhalt springen
AutoST by Zyberum GmbH
Menü
GlossarCAN

CAN-Bus (Controller Area Network)

CAN (ISO 11898) ist der Broadcast-Bus, den sich die meisten Steuergeräte teilen: Identifier, Arbitrierung, Fehlerbehandlung. Was das für Security-Tests bedeutet.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

CAN (Controller Area Network) ist der serielle Bus aus ISO 11898, der die meisten Steuergeräte im Fahrzeug verbindet. Jeder Knoten sieht jeden Frame, Frames tragen statt einer Absenderadresse einen 11- oder 29-Bit-Identifier, und der niedrigste Identifier gewinnt die Arbitrierung. Klassisches CAN trägt bis zu 8 Datenbytes pro Frame. Das Protokoll hat weder Authentifizierung noch Verschlüsselung, jeder Knoten kann also jeden Identifier senden. Deshalb zählen Gateways, SecOC und Zugriffsschutz in der Diagnose.

Was ist CAN?

CAN ist ein Multi-Master-Broadcast-Bus. Jeder Frame trägt einen Identifier, einen Data Length Code (DLC), bei klassischem CAN bis zu 8 Datenbytes, einen 15-Bit-CRC und einen Acknowledge-Slot. Der Identifier benennt den Inhalt und legt die Priorität fest, nicht den Absender: Fangen zwei Knoten gleichzeitig an, gewinnt der mit dem niedrigeren Identifier die Arbitrierung, weil ein dominantes 0-Bit ein rezessives 1-Bit überschreibt.

In candump-Notation sieht ein UDS-Request an ein Motorsteuergerät so aus: 7E0#0322F19055555555, also Identifier 0x7E0 und acht Bytes, davon ist 03 22 F1 90 der ISO-TP-Single-Frame mit ReadDataByIdentifier für die VIN.

Wo ist es definiert?

ISO 11898-1 definiert die Sicherungsschicht und die physikalische Signalisierung, also Frame-Formate, Arbitrierung, Bit-Timing und Fault Confinement; ISO 11898-2 definiert die High-Speed-Bitübertragungsschicht. Die aktuelle ISO 11898-1:2015 deckt auch CAN FD ab. Diagnose auf CAN nutzt ISO 15765-2 (ISO-TP) als Transport und ISO 14229 (UDS) als Anwendungsschicht.

Was es in der Praxis bedeutet

Wer am Bus hängt, kann alles senden. Ein Gerät am OBD-Port, eine kompromittierte Telematikeinheit oder ein Tester am Prüfstand kann Frames mit jedem Identifier senden, und die Empfänger können nicht erkennen, von wem sie kommen. Dazu kommt Fault Confinement: Ein Knoten, der zu viele Sendefehler sieht, geht in den Zustand Error Passive und schließlich Bus-Off, und das kann ein Angreifer gezielt auslösen, um einen Knoten stummzuschalten.

Am Prüfstand zeigt sich das so: Steuergeräte reagieren auf jeden Frame mit dem richtigen Identifier, Diagnose-Identifier antworten aus jedem Bussegment, weil das Gateway sie weiterleitet, und Steuergeräte verhalten sich falsch, wenn eine Nachricht mit unerwartetem DLC oder Signalwerten außerhalb des Bereichs kommt. Eine falsche Bitrate oder ein falscher Sample Point ist der häufigste Aufbaufehler: Der Prüfstand füllt sich mit Error Frames, und das Steuergerät antwortet nie.

Wie AutoST es testet

AutoST spricht CAN über SocketCAN-Adapter unter Linux, zum Beispiel PEAK oder Kvaser, und Vector-Hardware unter Windows über die XL Driver Library, mit einstellbarer Bitrate und einstellbarem Sample Point. UDS läuft über ISO-TP auf CAN. Die CAN-Fuzzing-Engine schickt zufällige klassische und FD-Frames auf Arbitration-IDs aus deiner DBC, mit einem Seed für exakte Wiederholung, und meldet ein Steuergerät, das nicht mehr auf TesterPresent antwortet oder seine DTC-Anzahl ändert.

Häufige Missverständnisse

Ein CAN-Identifier ist keine Absenderadresse und beweist nichts über die Herkunft. Gateways verringern die Angriffsfläche, sind aber keine Authentifizierung. Und CAN ist nicht veraltet: CAN FD erweitert es, und der meiste Diagnosezugang zu Steuergeräten beginnt immer noch an einem CAN-Bus.

FAQ

Häufig gestellte Fragen

Hat CAN eingebaute Sicherheit?

Nein. CAN-Frames tragen keine Absenderidentität, keine Authentifizierung und keine Verschlüsselung. Schutz kommt von außerhalb des Protokolls: Gateways, die Bussegmente trennen, SecOC-Nachrichtenauthentifizierung auf ausgewählten Frames und Zugriffsschutz in der Diagnoseschicht.

Was ist der Unterschied zwischen 11-Bit- und 29-Bit-Identifiern?

Das Base Frame Format nutzt einen 11-Bit-Identifier (0x000 bis 0x7FF), das Extended Format einen 29-Bit-Identifier. Beide können sich einen Bus teilen. Diagnose nutzt beides; OBD auf 11 Bit verwendet 0x7DF für funktionale und 0x7E0 bis 0x7E7 für physische Requests.

Welche Bitraten sind üblich?

Antriebs- und Fahrwerksbusse laufen oft mit 500 kbit/s, Karosseriebusse oft mit 125 oder 250 kbit/s, klassisches CAN erlaubt bis 1 Mbit/s. Prüf immer den Bus, an dem du hängst: eine falsche Bitrate oder ein falscher Sample Point erzeugt Error Frames und kann andere Knoten stören.

Quellen

Passende Seiten

Sieh es auf deinem ECU

Ein Begriff, der für dein Steuergerät zählt?

In 15 Minuten sagen wir dir, wie AutoST ihn testet, wie ein Finding aussieht und was er für deinen ISO/SAE-21434-Nachweis bedeutet.

  • Direkte Antwort von einem ECU-Security-Engineer
  • Welcher Test den Begriff abdeckt
  • Kostenlos und unverbindlich
Tom Zaubermann

Deine Demo ist mitTom ZaubermannGründer von Zyberum, früher Leiter des VW InCar Security Testing Lab

Bereits im Einsatz bei Tier-1-, Tier-2-Zulieferern und OEMs. Referenzen auf Anfrage.

Ruf uns an: +49 176 439 17074automotive@zyberum.com

Oder schreib uns eine Nachricht

Wir antworten innerhalb eines Werktags.

Ruf uns anAutoST-Team fragen

Wähle einen Termin, der dir passt

In neuem Tab öffnen