CAN Bus (Controller Area Network)
CAN (ISO 11898) is the broadcast bus most ECUs share: identifiers, arbitration, error handling. Why any node can send any frame and what that means for security testing.
Updated This page as Markdown
In short
CAN (Controller Area Network) is the serial bus defined in ISO 11898 that connects most ECUs in a vehicle. Every node sees every frame, frames carry an 11-bit or 29-bit identifier instead of a sender address, and the lowest identifier wins arbitration. Classic CAN carries up to 8 data bytes per frame. The protocol has no authentication or encryption, so any node on the bus can send any identifier, which is why gateways, SecOC and diagnostic access control matter.
What is CAN?
CAN is a multi-master broadcast bus. Each frame carries an identifier, a data length code (DLC), up to 8 data bytes on classic CAN, a 15-bit CRC and an acknowledge slot. The identifier names the content and sets the priority, not the sender: when two nodes start at the same time, the one with the lower identifier wins arbitration because a dominant 0 bit overwrites a recessive 1.
In candump notation a UDS request to an engine ECU looks like 7E0#0322F19055555555: identifier 0x7E0, eight bytes, of which 03 22 F1 90 is the ISO-TP single frame with ReadDataByIdentifier for the VIN.
Where is it defined?
ISO 11898-1 defines the data link layer and physical signalling, including the frame formats, arbitration, bit timing and fault confinement; ISO 11898-2 defines the high-speed physical layer. The current ISO 11898-1:2015 also covers CAN FD. Diagnostics on top of CAN use ISO 15765-2 (ISO-TP) as transport and ISO 14229 (UDS) as application layer.
What it means in practice
Whoever is on the bus can send anything. A device on the OBD port, a compromised telematics unit or a tester on a bench can transmit frames with any identifier, and the receivers cannot tell who sent them. CAN also has fault confinement: a node that sees too many transmit errors goes error passive and finally bus-off, which an attacker can provoke on purpose to silence a node.
On the bench this shows up as ECUs that act on any frame with the right identifier, diagnostic identifiers that answer from every bus segment because the gateway forwards them, and ECUs that misbehave when a message arrives with an unexpected DLC or out-of-range signal values. A wrong bitrate or sample point is the most common setup error: the bench fills with error frames and the ECU never answers.
How AutoST tests it
AutoST talks to CAN through SocketCAN adapters on Linux, for example PEAK or Kvaser, and Vector hardware on Windows through the XL driver library, with configurable bitrate and sample point. UDS runs over ISO-TP on CAN. The CAN fuzzing engine sends random classic and FD frames on arbitration identifiers taken from your DBC, with a seed for exact replay, and flags an ECU that stops answering TesterPresent or changes its DTC count.
Common misunderstandings
A CAN identifier is not a sender address and proves nothing about origin. Gateways reduce exposure but are not authentication. And CAN is not obsolete: CAN FD extends it, and most diagnostic access to ECUs still starts on a CAN bus.
FAQ
Frequently asked questions
Does CAN have any security built in?
No. CAN frames carry no sender identity, no authentication and no encryption. Protection comes from outside the protocol: gateways that separate bus segments, SecOC message authentication on selected frames and access control in the diagnostic layer.
What is the difference between 11-bit and 29-bit identifiers?
The base frame format uses an 11-bit identifier (0x000 to 0x7FF), the extended format a 29-bit identifier. Both can share a bus. Diagnostics use either; OBD on 11-bit uses 0x7DF for functional requests and 0x7E0 to 0x7E7 for physical requests.
Which bitrates are typical?
Powertrain and chassis buses commonly run at 500 kbit/s, body buses often at 125 or 250 kbit/s, and classic CAN allows up to 1 Mbit/s. Always check the bus you are on: a wrong bitrate or sample point produces error frames and can disturb other nodes.
Sources
Related pages
- GlossaryCAN FD (CAN with Flexible Data Rate)CAN FD extends classic CAN to 64 data bytes and a faster data phase. How the DLC, BRS bit and bit timing work and what changes for diagnostics and fuzzing.
- GlossaryISO-TP (ISO 15765-2)ISO-TP (ISO 15765-2) splits UDS messages into CAN frames: single, first, consecutive and flow-control frames. How it works and why malformed frames crash ECUs.
- GlossarySecOC (Secure Onboard Communication)SecOC is the AUTOSAR mechanism that authenticates in-vehicle messages with a MAC and a freshness value. How it works on CAN and what a bus test can check.
- GlossaryGateway ECU (Central Gateway)The gateway ECU connects the vehicle networks and decides which messages cross between them. Why it is the key security boundary and how its diagnostic routing fails.
- InsightsChoosing a CAN interface for ECU security testingWhat matters in a CAN interface for security testing: SocketCAN vs Vector XL, CAN FD, timing control and error-frame visibility, and how to pick one for your bench.
- PlatformSpeaks the buses your ECUs speak.AutoST supports CAN, CAN FD, ISO-TP, UDS, XCP, CCP, DoIP and SOME/IP, with SocketCAN, Vector XL and comma.ai Panda adapters on Windows and Linux.
