# CAN Security Reference: full text > Every page of https://can-security.net concatenated as Markdown, for agents that prefer one document over following links. Per-page mirrors live at each page URL with `index.md` appended. --- # Securing CAN and CAN FD Systems This collection of security information is a practical reference for engineers and security architects working with CAN and CAN FD networks. It explains why cybersecurity has become a regulatory requirement even for CAN-based products and what attacks the protocol is exposed to. We review how to assess related risks and which countermeasures are available, including how these map to [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) security levels and EU Cyber Resilience Act obligations. Where used, higher-layer protocols such as CANopen CC ([CiA](https://can-security.net/resources/terms-and-definitions/#term-cia) 305, EN 50325-4), CANopen FD (CiA 1305), [J1939](https://can-security.net/resources/terms-and-definitions/#term-j1939), [FireCAN](https://can-security.net/resources/terms-and-definitions/#term-firecan), [CleANopen](https://can-security.net/resources/terms-and-definitions/#term-cleanopen) or other non-automotive protocols are taken into account. ## Why CAN Security Matters Now The EU Cyber Resilience Act ([CRA](https://can-security.net/resources/terms-and-definitions/#term-cra)), [NIS 2](https://can-security.net/resources/terms-and-definitions/#term-nis-2) Directive and the EU [Machinery Regulation](https://can-security.net/resources/terms-and-definitions/#term-machinery-regulation) - supported by IEC 62443 and related guidance - converge on a clear expectation: products with digital elements, including CAN nodes, need a documented security posture. [Read the regulatory case →](https://can-security.net/why-now/) ## Understanding the Threats Classical CAN was not designed with security in mind. Any node can transmit any CAN ID, there is no message authentication. Physical access enables sniffing, frame injection, replays and other attacks. CAN FD changes the picture: the larger frame size provides more room for cryptography information but which methods and algorithms to use in which cases is not standardized. [Survey the threats →](https://can-security.net/threats/) ## Assessing and Managing Risk Both the EU CRA and IEC 62443-3-2 require a documented risk assessment. Risk assessment is a process that frames the system and selects mitigations; this reference uses IEC 62443-3-2. Vulnerability scoring with [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0 is a separate, complementary activity, done per finding when reporting a specific weakness to ENISA or to customers. [Learn the methodology →](https://can-security.net/risk-assessment/) ## Solutions No single measure secures a CAN bus completely. The Solutions catalog lists the in-scope defensive controls for CAN and CAN FD: bus load monitoring, local injection detection, frame security, anomaly event monitoring, Secure Object Fieldbus Access, zoning and segmentation, and the secure bootloader that gates what code runs on the device in the first place. Each control answers one specific failure mode; the Defense in Depth section then explains how to combine them into layered protection for a given IEC 62443 security level. [Browse the Solutions catalog →](https://can-security.net/solutions/) ## Filling the Regulation–Standard Gap EU regulations such as the CRA spell out outcomes (risk assessment, secure update, vulnerability handling) but leave the technical methods to standards. CAN-specific security standards take years to mature through CiA or other standardization processes and several requirement areas are not yet fully covered. The pages here describe solutions that are available today and designed to fill those gaps: [CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) V2 / [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) (Small Packet Network Security) for CAN FD authentication and encryption, CANcrypt V1 for classical CAN, Secure Object Fieldbus Access ([SOFA](https://can-security.net/resources/terms-and-definitions/#term-sofa)) and the CANopen secure bootloader, both currently under definition at CiA. [Read the gap argument →](https://can-security.net/why-now/#gap) ## Where to Start Pick the situation that matches your task. Each goes straight to the most relevant page: - [Building a CRA case for a CAN-based product](https://can-security.net/why-now/) - [Picking countermeasures and matching them to IEC 62443 security levels](https://can-security.net/solutions/) - [Scoring a CAN vulnerability for ENISA reporting](https://can-security.net/risk-assessment/cvss-for-can/) - [Selecting cryptographic solutions for securing CAN communication](https://can-security.net/solutions/frame-security/) > ### EmSA Training — start with the free CRA-CAN intro > Self-paced and instructor-led courses on CRA compliance for CAN-based products. The free CRA-CAN-Opener introduces the series; deeper classes cover the lifecycle, threats, mapping, and risk assessment. > [Open the free intro →](https://emsa.courses/course/cra-can-opener) ## Frequently Asked Questions ### Does the EU Cyber Resilience Act apply to my CAN device? The EU CRA applies to almost every product with digital elements placed on the EU market, including CAN-based components. The full scope, timelines, and exemptions are covered on the [Why Now](https://can-security.net/why-now/) page. ### What CVSS score does a classical CAN node have by default? An unprotected classical CAN node scores 5.2 (Medium) under CVSS v4.0 with vector AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N. The full derivation is on the [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) page; source: EmSA-WP-103. ### Can CAN FD be encrypted? Yes. SPsec (CANcrypt 2.0) defines a security sublayer for CAN FD with authentication and encryption for ALL frames exchanged. See [Frame Security](https://can-security.net/solutions/frame-security/). ### Is physical isolation enough security for my CAN system? Physical access limitation is the foundational measure and supports IEC 62443 SL2, but it cannot fully prevent attacks. Network monitoring obligations were defined to at least recognize and capture possible attacks. See the [Risk Assessment](https://can-security.net/risk-assessment/) page. ### What IEC 62443 security level can I reach with CAN? Combining frame authentication (CANcrypt or SPsec) with anomaly event monitoring makes IEC 62443 SL3 reachable for many CAN systems. See the [Defense in Depth coverage matrix](https://can-security.net/risk-assessment/defense-in-depth/). --- # Contact EmSA Most of what we offer is described under [Solutions](https://can-security.net/solutions/) (off-the-shelf solutions mapped to EU CRA and IEC 62443 requirements) and at [emsa.courses](https://emsa.courses/) (training classes for EU CRA and CAN/CANopen related topics). For the two cases that do not fit, customizing a Solutions shell for your CAN system or reviewing your [risk assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment) record, reach us directly. ## Reach Us All written inquiries across the EmSA platforms go through our central contact point:[ Go to the ESAcademy contact form →](https://www.esacademy.com/en/contact-us.html?subject=cansecurity.net) ** Embedded Systems Academy GmbH**, Germany / Europe Phone: +49 5105 582 7897 **Embedded Systems Academy, Inc.**, US / Americas Phone: +1 877 812 6393 (toll-free, North America) ## Frequently Asked Questions ### How do I request a risk assessment review? Use the [ESAcademy contact form](https://www.esacademy.com/en/contact-us.html?subject=cansecurity.net) or call the number for your region and describe your CAN or CAN FD system. EmSA reviews your existing [risk assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment) record against EU CRA and IEC 62443 expectations and reports where the gaps are. ### Which EmSA product fits my CRA obligation? It depends on the threat you need to cover. The [Solutions](https://can-security.net/solutions/) catalog maps each control to the [CRA Annex I requirements](https://can-security.net/resources/cra-requirements/) it supports. If none fit your system as shipped, EmSA can customize a Solutions shell for your application. ### Do you offer training on CAN security and the EU CRA? Yes. EmSA runs scheduled and on-site classes on CAN, CANopen, and EU CRA topics. The current catalog and dates are listed at [emsa.courses](https://emsa.courses/). --- # Imprint Legal information about the operator of this website, as required under §5 TMG (German Telemedia Act) and §18 Abs. 2 MStV (Interstate Media Treaty), with notes on liability and copyright. [Diese Seite auf Deutsch →](https://can-security.net/imprint/de/) ## 1. Provider This website is operated by: **Embedded Systems Academy GmbH** Bahnhofstr 17 30890 Barsinghausen Germany Phone: +49 5105 582 7897 Email: ## 2. Register Entry Commercial register: Amtsgericht Hannover, HRB 204156. ## 3. VAT Identification Value-added tax identification number per §27a UStG: **DE 813075152**. ## 4. Authorized Representative Managing Director (Geschäftsführer): **Olaf Pfeiffer**. ## 5. Responsible for Content Responsible for the content of this website per §18 Abs. 2 MStV: Olaf Pfeiffer, address as above. ## 6. EU Online Dispute Resolution The European Commission provides a platform for online dispute resolution at [ec.europa.eu/consumers/odr](https://ec.europa.eu/consumers/odr/). Embedded Systems Academy GmbH does not offer online sales or contractual services through this website and is neither obliged nor willing to participate in dispute-resolution proceedings before a consumer arbitration board. ## 7. Liability for Content The contents of this website have been compiled with the greatest possible care. As a service provider, Embedded Systems Academy GmbH is responsible for its own content on these pages in accordance with §7 (1) TMG and general statutory provisions. Under §§8 to 10 TMG, however, we are not obliged to monitor transmitted or stored third-party information, nor to investigate circumstances that indicate unlawful activity. Obligations to remove or block the use of information under general statutory provisions remain unaffected. Liability in this respect is only possible from the point in time at which a concrete infringement of the law becomes known. Upon notification of any such infringements, we will remove the content concerned without delay. ## 8. Liability for External Links This website contains links to external third-party websites whose content we have no influence over. For this reason, we cannot accept any liability for this third-party content. The respective provider or operator of the linked pages is always responsible for their content. The linked pages were checked for possible legal infringements at the time of linking; unlawful content was not recognisable at that time. A permanent monitoring of the linked pages is not reasonable without concrete indications of an infringement. Upon notification of any such infringements, we will remove such links without delay. All external links on this site open in a new browser tab and use `rel="noopener"`. ## 9. Copyright The content of this website, including texts, illustrations, and structural arrangement, is © Embedded Systems Academy GmbH unless otherwise indicated. Reproduction of the textual content for **non-commercial educational purposes** is permitted, provided that: - attribution to "Embedded Systems Academy" is given, - a link back to the source page on this website is included, and - the content is not modified in a way that misrepresents EmSA's positions or recommendations. Any other use, in particular commercial reuse, redistribution, or inclusion in for-profit products, courses, or publications, requires prior written permission. Logos, product names, and brand assets (including but not limited to "CANcrypt", "SPsec", "CAN Dragon", "CANopenIA") are trademarks of Embedded Systems Academy GmbH and are not covered by this educational-reuse permission. Third-party trademarks and registered marks referenced on this site are the property of their respective owners. --- # Impressum Anbieterkennzeichnung gemäß §5 TMG (Telemediengesetz) und §18 Abs. 2 MStV (Medienstaatsvertrag) sowie Hinweise zu Haftung und Urheberrecht. [View this page in English →](https://can-security.net/imprint/) ## 1. Anbieter Diese Website wird betrieben von: **Embedded Systems Academy GmbH** Bahnhofstr 17 30890 Barsinghausen Deutschland Telefon: +49 5105 582 7897 E-Mail: ## 2. Registereintrag Handelsregister: Amtsgericht Hannover, HRB 204156. ## 3. Umsatzsteuer-Identifikationsnummer Umsatzsteuer-Identifikationsnummer gemäß §27a Umsatzsteuergesetz: **DE 813075152**. ## 4. Vertretungsberechtigte Geschäftsführer: **Olaf Pfeiffer**. ## 5. Inhaltlich Verantwortlicher Inhaltlich verantwortlich gemäß §18 Abs. 2 MStV: Olaf Pfeiffer, Anschrift wie oben. ## 6. EU-Online-Streitbeilegung Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung bereit unter [ec.europa.eu/consumers/odr](https://ec.europa.eu/consumers/odr/). Über diese Website werden keine Online-Verkäufe oder vertraglichen Leistungen angeboten. Die Embedded Systems Academy GmbH ist nicht verpflichtet und nicht bereit, an einem Streitbeilegungsverfahren vor einer Verbraucherschlichtungsstelle teilzunehmen. ## 7. Haftung für Inhalte Die Inhalte dieser Website wurden mit größtmöglicher Sorgfalt erstellt. Als Diensteanbieter sind wir gemäß §7 Abs. 1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen. Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden entsprechender Rechtsverletzungen werden wir diese Inhalte umgehend entfernen. ## 8. Haftung für externe Links Diese Website enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar. Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige Links umgehend entfernen. Alle externen Links auf dieser Website öffnen in einem neuen Tab und verwenden `rel="noopener"`. ## 9. Urheberrecht Die durch die Embedded Systems Academy GmbH erstellten Inhalte und Werke auf diesen Seiten, einschließlich Texte, Abbildungen und strukturelle Anordnung, unterliegen dem deutschen Urheberrecht. © Embedded Systems Academy GmbH, soweit nicht anders gekennzeichnet. Die Vervielfältigung der textlichen Inhalte zu **nicht-kommerziellen Bildungszwecken** ist gestattet, sofern - die Quelle "Embedded Systems Academy" genannt wird, - ein Link auf die jeweilige Quellseite dieser Website gesetzt wird und - der Inhalt nicht so verändert wird, dass die Position oder Empfehlung der EmSA verfälscht erscheint. Jede andere Nutzung, insbesondere die kommerzielle Verwendung, Weiterverbreitung oder Aufnahme in gewerbliche Produkte, Schulungen oder Veröffentlichungen, bedarf der vorherigen schriftlichen Zustimmung. Logos, Produktnamen und Markenzeichen (einschließlich, aber nicht beschränkt auf "CANcrypt", "SPsec", "CAN Dragon", "CANopenIA") sind Marken der Embedded Systems Academy GmbH und nicht von dieser Bildungs-Wiederverwendungs-Erlaubnis erfasst. Marken und Registrierungen Dritter, die auf dieser Website genannt werden, sind Eigentum ihrer jeweiligen Inhaber. --- # Key Management Every defensive control on this site eventually depends on a key. We wrote this section as a getting-started orientation for manufacturers and integrators who have not had to deal with key management before. It is deliberately not a recommendation for installing or integrating a full public-key infrastructure. The goal is to make the moving parts visible, name the standards that bound them, and show where the simplest workable option lies. ## Why Key Management Is the Hard Part Implementing the cryptography is a bounded engineering task. A device computes an AES-128-GCM authentication tag, verifies a signature, or derives a session key, and that code, once written and tested, simply runs. The lasting effort is everywhere else: deciding who generates each key, how it reaches the device without exposure, how a device proves it is genuine at handover, how authority is scoped and later revoked, and how key material is destroyed when a device leaves service. These are organizational processes, not algorithms, and they run for the entire life of the product. A manufacturer that ships a thousand devices has to know which key went to which unit, what to do when a service laptop is lost, and how to re-key a fleet that outlives its first integrator. In practice this is where most of the ongoing work and maintenance live. Treating key management as a process problem from the start, rather than an afterthought once the crypto compiles, is the single most useful decision a newcomer can make. Much of that process rests on one piece of hardware. A small [hardware security module](https://can-security.net/resources/terms-and-definitions/#term-hsm) holds the secret keys and performs operations with them inside a protected boundary, so the keys never appear in ordinary memory or in a database. The common pattern on a fieldbus is to keep a single root in the module and derive the per-device and firmware keys from it on demand, which keeps secure storage bounded however large the fleet grows. [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) shows how that derivation works. ## What This Section Covers The pages below move from what the regulations expect, through the basic choices, to the device-level functions and the lifecycle processes that surround them. Read them in order for an orientation, or jump to the one that matches the decision in front of you. ### [Regulations & Standards](https://can-security.net/key-management/regulations-standards/) What the EU Cyber Resilience Act and IEC 62443 actually require about keys. The short answer: a risk-based, mechanism-neutral baseline that per-device symmetric keys can satisfy at Security Level 2. [CRA](https://can-security.net/resources/cra-requirements/) [IEC 62443](https://can-security.net/resources/iec-62443-sl2-requirements/) ### [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) The core choice, in plain language. Shared secrets versus key pairs, what each costs to provision and verify, and the algorithms involved on each side. ### [Fieldbus Device](https://can-security.net/key-management/fieldbus-device/) The individual security functions a device should provide, and which keys each one needs, compared symmetric against asymmetric. ### [Handover](https://can-security.net/key-management/handover/) The security steps when a manufacturer hands a device to an integrator, and later when an integrator passes a whole system to an operator. ### [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) What a full public-key infrastructure entails and where it is documented, plus a minimal alternative that a smaller company can actually run. ### [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) Per-device key diversification, the options for storing or deriving keys, and the rotation, refresh, and revocation cycles that keep a fleet healthy. ## Where This Fits With the Rest of the Site Key management is the layer underneath the controls catalogued elsewhere. The [Frame Security](https://can-security.net/solutions/frame-security/) shell needs keys to authenticate bus traffic. [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/) needs an authentication key to gate Object Dictionary access. The [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) needs an Update Key to authenticate firmware. None of those controls is complete until the question of where its keys come from, and where they go, has an answer. This section provides that answer at an orientation level; the product pages cover how each control consumes the keys. > ### SPsec: A Secure Communication Layer for CAN FD > SPsec is the EmSA secure communication layer for CAN FD, published as an open specification set. It puts the key-management ideas in this section into practice: per-device keys established and rotated to authenticate, and where needed encrypt, the frames on the bus. The full specification, documents 101 through 302, is available on esacademy.com. > [Explore SPsec →](https://www.esacademy.com/en/library/spsec.html) ## Frequently Asked Questions ### Does the EU CRA or IEC 62443 require a full PKI for CAN devices? No. Both frameworks are risk-based and mechanism-neutral. Neither makes a manufacturer-rooted public-key infrastructure a baseline requirement. At IEC 62443 Security Level 2, unique per-device symmetric keys satisfy the component requirements for identification and authentication. A full PKI becomes worthwhile when scale, multiple integrators, or anti-counterfeiting needs justify the extra process. ### Why is key management harder than the cryptographic implementation? Writing an AES-128-GCM routine is a bounded task. Deciding who generates each key, how it reaches the device, how a device is claimed at handover, how a compromised credential is revoked, and how keys are destroyed at decommission are organizational processes that run for the life of the product. Those processes, not the algorithm, are where most of the ongoing work and maintenance sit. --- # Asymmetric Key Management Asymmetric key management is what most people picture when they hear public-key infrastructure: a certificate authority, device certificates, and a chain of trust. That full arrangement is powerful and well documented, but it is also a standing organizational commitment. This page outlines what a full PKI involves and where to read the detail, then describes a minimal version that a smaller manufacturer or integrator can run without a dedicated certificate team. ## What a Full PKI Involves A full public-key infrastructure separates a rarely-used signing root from the keys that do the daily work, so that a compromise of a working key does not compromise the root. The public half of that root, placed in every device, is the trust anchor they verify against. The structure is layered, and each layer has a clear job. ### Offline Signing Root The signing root kept offline and used only at infrequent ceremonies to sign the production keys below it. Its private half lives in a hardware security module, backed up under wrapping; its public half is the trust anchor placed in every device. A compromise of the signing root enables counterfeit signing, so it is protected accordingly. Losing or leaking it does not brick deployed devices, since a new root can serve future production, but recovery is not automatic: every device already carrying the old trust anchor keeps trusting anything signed under it until it is reached and re-anchored, whether by a field update that installs the replacement anchor or by physical service. Plan that reach-back path before you need it, and keep the registry of which unit holds which trust-anchor generation so the affected population can be identified. ### Production Signing Keys Warmer keys, also in a hardware security module, that sign at volume: one to sign each firmware release, one to sign per-device identity certificates. The signing root signs the public halves of these once, then returns to the safe. All high-volume signing uses these production keys. ### Per-Device Identity Each device receives an asymmetric identity key, generated on-chip so the private half never leaves, or injected from the production module. A certificate signed by the identity signing key binds the device public key to its serial and product line. On-chip generation depends on a hardware random number generator, and running the elliptic-curve operations is far faster where the part carries a public-key accelerator. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) reference lists CAN FD parts by these features. ### Public Registry A low-sensitivity record of public material: the trust anchor public key, the production certificates, and per-device serial, line, firmware version, and identity certificate. It never holds private keys, so it does not need the protection that the signing keys do. The mechanics here are industry-standard and documented. NIST SP 800-57 covers the key-management lifecycle of establishment, rotation, and destruction. FIPS 140-3 (which superseded FIPS 140-2 in 2026) and ISO/IEC 19790 set the requirements for the hardware security modules that hold private keys. IEEE 802.1AR describes one well-known form of device identity certificate, and the Software Updates for Internet of Things (SUIT) specifications, RFC 9019 and RFC 9124, describe a firmware-manifest architecture often paired with signed updates. Certificates can be encoded as X.509 or in more compact forms suited to constrained devices. The point for a newcomer is that this is a real, ongoing operation: ceremonies, module custody, registry maintenance, and revocation handling all become standing responsibilities. [NIST SP 800-57](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-57) [FIPS 140-2](https://can-security.net/resources/terms-and-definitions/#term-fips-140-2) [ISO/IEC 19790](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-19790) [IEEE 802.1AR](https://can-security.net/resources/terms-and-definitions/#term-ieee-802-1ar) [SUIT](https://can-security.net/resources/terms-and-definitions/#term-suit) ## A Minimal PKI a Small Manufacturer or Integrator Can Run Most of the benefit of public-key trust is available without standing up a full certificate authority. Two roles tend to ask whether they can run a smaller version: a small manufacturer, often with no staff dedicated to IT, security, or compliance, that still has to sign its own firmware, and a small integrator that owns a closed deployment. Both can, and the shape is the same in each case: one carefully kept signing root, a short record of what it signed, and revocation by signed statement rather than by re-keying devices. ### The Small Manufacturer Case A manufacturer without dedicated IT, security, or compliance staff does not need a certificate-authority team and should not pretend to run one. The work reduces to protecting one private key well and keeping a list. Generate a single signing-root key pair, where Ed25519 is a sound default, on an air-gapped machine or a hardware token, and keep it offline. Use it to sign the firmware signing key that the build process uses from day to day, and, where devices carry asymmetric identity at all, the key that signs device certificates. The public half of that root becomes the trust anchor placed in every device at manufacture. Everything else is bookkeeping rather than infrastructure. The record of which firmware version and which trust-anchor generation went to which serial can live in an ordinary database, because it holds only public material. The discipline that matters is custody of the one offline signing root: who holds the token, where the backup lives, and what happens if the person who set it up leaves. At this scale per-device asymmetric identity is often not worth it. Many small manufacturers stay with per-device symmetric keys for identity and use the minimal signing root only to sign firmware, which keeps the device side to AES-128-GCM and the office side to one key and a list. ### The Small Integrator Case A small integrator that owns a closed deployment runs the same idea from the other end. The arrangement keeps a single asymmetric signing root, held by the integrator, that governs the per-device operational keys rather than issuing a certificate for every device. The device holds only the integrator trust anchor, the public half of that root, and the per-device operational key is generated by the device and never leaves it, so the integrator database holds public material and references, never secrets. Authority is granted and revoked by signing short records with the integrator signing root. To withdraw a credential, the integrator signs a new record that marks the old one revoked, and tools and devices that hold the trust anchor refuse it from then on. Because a device trusts the most recent record it has seen, these signed records need a freshness marker, a monotonic sequence number or an expiry, and a way to reach the device, so that an attacker cannot replay an old record that still reads as authorized or simply withhold the revocation and leave a compromised credential looking valid. This delivers the properties that make asymmetric trust attractive, a leak-tolerant database and revocation without re-keying every device, while the day-to-day cost stays close to that of a symmetric system. The trade is honest, and it is the same for both roles. A minimal PKI gives up the deep, certificate-per-device identity that anti-counterfeiting and very large multi-party programs rely on. For a small manufacturer signing its own firmware, or a single integrator running a closed deployment, in our experience it is usually the right amount of infrastructure. Where this asymmetric governance layer sits on top of symmetric per-device keys, the result is a hybrid covered on the [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) page. If even the minimal signing root feels like more than you need, staying fully symmetric remains the lowest-burden option, a firmware update key plus a provisioning key, as described under [Fieldbus Device](https://can-security.net/key-management/fieldbus-device/). ## Frequently Asked Questions ### What does a full public-key infrastructure for devices involve? An offline signing root used only at infrequent signing ceremonies, whose public half is the trust anchor placed in devices, warmer production keys that sign firmware and per-device identity certificates at volume, a per-device identity key issued at manufacture, and a public registry that records which key and certificate went to which unit. Private key material lives in hardware security modules. Guidance for the lifecycle comes from NIST SP 800-57, and module security from FIPS 140-3 (which superseded FIPS 140-2) or ISO/IEC 19790. ### Can a small manufacturer or integrator run a minimal PKI? Yes, and it applies to both: a small manufacturer signing its own firmware, and a small integrator running a closed deployment. The minimal arrangement keeps one carefully protected signing root, offline on a token or air-gapped machine, that signs firmware and, where used, device certificates; its public half is the trust anchor devices carry. The device holds only public material, the registry of what went where can be an ordinary database, and authority is revoked by signing a short record rather than re-keying devices. An organization with no dedicated IT, security, or compliance function can run this; the discipline it demands is key custody, not IT scale. --- # What a Fieldbus Device Must Protect Over Its Life Security on a fieldbus device is not a single feature but a set of obligations that shift as the device ages. At manufacture it must protect its firmware and its first credentials; at handover it must prove its identity and accept a new owner; in operation it must guard both software updates and configuration; at end of life it must destroy its keys. This page organizes those obligations by lifecycle stage and shows which key answers each one, so the design follows the device rather than a single moment in it. ## Manufacture: Protect Firmware and First Credentials A device is born with keys, not blank. At build the manufacturer loads a firmware update key, used to encrypt and authenticate every firmware image, so that firmware confidentiality and integrity hold from the very first power-up. Alongside it goes the one-time credential that lets the first owner claim the device, often printed as a label on the unit or supplied on the delivery note. There is no standardized name for that credential, and both [provisioning key](https://can-security.net/resources/terms-and-definitions/#term-provisioning-key) and [device claim token](https://can-security.net/resources/terms-and-definitions/#term-device-claim-token) are in use for it; designs also differ on whether the manufacturer ships it or the integrator installs it as the first act of claiming. Where the design calls for asymmetric identity, the device also generates an Ed25519 key pair on-chip, keeping the private half forever and exporting only the public half for certification. The division of control set here lasts for the life of the product. The manufacturer holds the firmware signing or update key and therefore stays in control of the firmware file, and nothing else. The device leaves the factory locked, carrying only public anchors and its own secrets. Everything operational is installed later, by the owner, which is what keeps the manufacturer out of the day-to-day key business. ## Handover: Prove Identity and Accept an Owner The first transfer turns a generic unit into one that belongs to a specific integrator. The device proves it is genuine, and the integrator claims it using that one-time credential. That first activation is decisive: whoever performs it takes possession, must immediately assign new per-device symmetric keys, and from then on holds full responsibility for the device. The newly assigned key, not the credential that gated the claim, secures device identity, integrator authorization, and the update session from that point forward. The mechanics of claiming, the choice between trust on first use, a token, or a voucher, and the later transfer of a whole system to an operator are covered on the [Handover](https://can-security.net/key-management/handover/) page. ## Operation: Secure the Software Update Through its working life the device accepts firmware updates, and four things have to hold for each one to be safe. Each maps to a key. ### Device Identity The updater must know it is really talking to that device, not a substitute or an emulator. The device proves itself with a challenge-response using a key only it and the authorized party share: the assigned per-device key, or an Ed25519 identity key. ### File Authenticity and Anti-Rollback The image must be genuine, untampered, intended for this device or class, and not an older version rolled back to reintroduce a fixed flaw. AES-128-GCM under the firmware update key gives integrity and authenticity, and confidentiality where the image is encrypted; a monotonic version check blocks rollback. ### Integrator Authorization Authenticity of the file is not the same as permission to install it. Many designs require the presenting party to prove it is allowed to update this particular device, using the assigned per-device key, so a genuine image offered by an unauthorized party is still refused. Others rest the whole check on the image and the signed list that covers it, and accept it from whoever delivers it. ### Update Session Transfer and activation must be replay-protected and fail-safe. The session is bound so captured traffic cannot be replayed to force a re-flash, the device re-verifies the complete image before committing, and a failure partway through leaves the device recoverable rather than bricked. The bootloader that enforces this on the device is covered in depth under [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). ## Operation: Protect Configuration Configuration deserves the same care as firmware, because a malicious configuration change can be as damaging as malicious code. A remapped object, a widened limit, or a disabled check can defeat a perfectly secure firmware image. There are three clean ways to protect it, and a real system often uses more than one. ### Load the Whole Configuration as a File Treat the entire configuration as a single signed and authenticated object and load it exactly like a firmware image. It inherits the same guarantees as a software update, including authenticity, integrity, and anti-rollback, and it is protected under the same firmware or update key. ### Manual Configuration, Then Lock Where settings are entered by hand on the bench, commit them and then lock the configuration cryptographically, so it cannot be altered without the proper key. The device moves from an open, writable state to a sealed one, and the seal is what an audit can later check. ### Authenticated Per-Object Writes Where individual settings must change in the field, each write is authenticated and gated by the operational key, so only an authorized party can change a permitted object. This is the model behind [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/). Whichever method is used, two properties matter across the lifecycle. The device should verify its configuration at boot, so a tampered configuration is detected before it takes effect, and it should refuse an older configuration that would reopen a closed gap, the configuration equivalent of firmware anti-rollback. A configuration that the device cannot verify is a configuration an attacker can quietly rewrite. ## End of Life: Destroy the Keys The lifecycle closes where it is most often forgotten. When a device is reset, decommissioned, resold, or returned, its secret key material must be zeroized, that is, purged so it cannot be recovered from released storage. IEC 62443-4-2 CR 4.2 requires exactly this. The practical reason is ownership: a device that returns to an unowned state must not carry the previous owner's keys, or a later re-claim would inherit stale trust and a returned unit would leak the secrets of the fleet it came from. Designing the erase path at the start is far easier than retrofitting it when an audit asks where the old keys went. The erase can be graded: a routine reset wipes operational key material yet leaves the device owned, while a full [factory restore](https://can-security.net/resources/terms-and-definitions/#term-factory-restore) clears ownership so the unit is genuinely unowned again. [CR 4.2](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-4-2) ## The Symmetric Baseline in Practice Put end to end, the common practice keeps the device side small. The device needs only authenticated encryption with AES-128-GCM, and it holds at least two keys for most of its life: the firmware update key loaded at manufacture, and the operational key assigned at handover that secures identity, authorization, sessions, and locked configuration. That is enough to meet the obligations at every stage above without an on-device certificate authority. These are distinct keys held by distinct parties, the manufacturer and the owner, yet within one party's own key program each can be derived from a single root rather than stored separately: the firmware key from a fixed firmware label, a per-device key from the serial, as [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) describes. The reason this baseline is symmetric is cost, not security. The public-key primitives take considerably more time and resources than the symmetric ones: an Ed25519 signature or verification also pulls in SHA-512 on top of the SHA-256 a device already carries, and the elliptic-curve work runs in software even on parts that accelerate AES, so it costs far more flash, RAM, and time per operation than protecting a frame with AES-128-GCM. That gap is why most CAN and CAN FD devices stay symmetric. The [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page reports the measured code size, stack, and per-operation time for each primitive on representative CAN FD parts. We recommend reserving public-key methods for where your system genuinely needs open distribution or delegation. The [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) page weighs that choice, and [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) covers how the operational keys are diversified, rotated, and revoked. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) reference lists which CAN FD parts carry that hardware AES and where a hardware random number generator and public-key accelerator are available for on-chip key generation and signatures. > ### CAN Dragon: Symmetric Key Assignment for CAN > CAN Dragon is the EmSA tooling family for CAN and CAN FD, with functions for assigning and managing the per-device symmetric keys this lifecycle depends on, from the operational key set at handover through rotation in the field. > [Visit can-dragon.com →](https://can-dragon.com/) ## Frequently Asked Questions ### What keys does a device receive at manufacture, and what does it keep for life? At build the device receives a firmware update key, loaded by the manufacturer to encrypt and authenticate firmware images, and a one-time credential used to claim it at handover, which different products call a provisioning key or a device claim token. After the first owner claims the device, they assign new per-device keys that secure identity, authorization, and sessions from then on. The manufacturer keeps control only of the firmware update file; everything operational belongs to the owner. ### How is configuration protected across the lifecycle? Three ways, which can be combined. Load the whole configuration as a single signed and authenticated object, like a firmware image; enter it manually on the bench and then lock it cryptographically; or accept authenticated per-object writes gated by the operational key. In every case the device should verify its configuration on boot and refuse an older configuration that would reopen a closed gap, the configuration equivalent of firmware anti-rollback. ### What has to happen to a device's keys at end of life? They must be zeroized. IEC 62443-4-2 CR 4.2 requires that key material be purged so it cannot be recovered when a device is reset, decommissioned, resold, or returned. A device that goes back to an unowned state must not carry the previous owner's keys, which is what makes a later re-claim safe. --- # Handover Across the Supply Chain A device is rarely used by the company that built it. A manufacturer hands it to an integrator, who builds it into a system and later passes that system to an operator. Each transfer is a point where trust has to be established, keys have to move, and authority has to be scoped. This page describes the security steps and the realistic options at each handover, at a level that helps you plan the process rather than implement a specific product. ## Manufacturer to Integrator The first handover turns a generic, factory-fresh unit into a device that belongs to a specific integrator and carries that integrator's operational keys. The steps below are sequential, and the early ones can be skipped on minimal devices that do not carry an identity. ### 1. Verify Genuineness Before trusting a unit, the integrator confirms it is a genuine device of the expected type and serial. Where the device carries a manufacturer-issued identity, the integrator tool validates it against the manufacturer's public anchor. On minimal devices without an identity, this step is replaced by physical provenance and supply-chain controls. ### 2. Claim Ownership The integrator installs its own trust material and locks the device to itself. The device gates this by a [claim gate](https://can-security.net/resources/terms-and-definitions/#term-claim-gate) chosen at production: trust on first use, a printed one-time token, or a manufacturer-signed voucher. Each trades friction against assurance. The claim holds until the device is decommissioned. ### 3. Update Firmware The integrator brings the unit to the current manufacturer release. The device verifies the manufacturer signature or authentication tag and applies anti-rollback. Because the firmware protects itself, no integrator key is required for this step; it relies only on the manufacturer's verification anchor or Update Key. ### 4. Provision Operational Keys The heavy step: the integrator establishes the per-device operational keys the system will use. These can be delivered over an authenticated channel set up with the device's identity, or injected locally on a trusted bench. After this, routine traffic is symmetric and lightweight. Two further steps close out the handover. The integrator configures the device into the system, assigning its address and pushing any configuration, optionally signed so the device can verify its authority. Finally the integrator records the unit in its own database: which node sits where, its serial and firmware version, and the key material or derivation parameters appropriate to the chosen approach. That record is what makes later refresh, revocation, and audit possible. ## Two Ways to Anchor the Trust Behind these steps sits a single architectural choice: who installs the roots of trust, and when. The two ends of the spectrum are worth understanding before you pick a product or a process. ### Manufacturer-Rooted The device is born locked and already carrying identity and anchors installed at production. The integrator claims an already-trustworthy device and layers its keys on top. There is no window where the device is open and unprovisioned. This fits broad markets, multiple integrators, and anti-counterfeiting needs. ### Integrator-Rooted The device is born open, and the integrator installs all roots at first commissioning, then locks it. The manufacturer keeps only firmware-update authority. This is simpler for the manufacturer but creates a window, from factory to integrator lock, that must be closed by physical and supply-chain security. It fits a single integrator owning a closed deployment. ## Integrator to Operator The second handover is usually a delivery model rather than a transfer of ownership. The integrator keeps the roots and installs a scoped operator credential on the device, a [delegation](https://can-security.net/resources/terms-and-definitions/#term-delegation) of part of its own authority. The credential is deliberately limited: it may let the operator trigger manufacturer-signed firmware updates and write permitted configuration, while it may not change keys, transfer ownership, alter anchors, or install operator-authored firmware or configuration. The device enforces this scope per action, so an operator can keep the system running without ever gaining the authority to re-key or re-own it. How such a delegation is later withdrawn depends on the design. Replacing or erasing the credential that carries it is the direct route and needs no clock. Where the design carries a monotonic ownership counter, advancing that counter invalidates grants issued under an earlier value. Neither route relies on an expiry, which a device with no reliable clock cannot enforce. Firmware authenticity remains rooted in the manufacturer throughout; the operator only delivers signed images, it does not sign them. The mechanics of provisioning, scoping, and later revoking these credentials are covered on the two management pages. For symmetric deployments, see [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/); where an asymmetric governance layer is used to grant and revoke operator authority without re-keying devices, see [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/). ## Frequently Asked Questions ### What does it mean to claim ownership of a device at handover? Claiming ownership is the step where an integrator installs its own trust material onto a device and locks the device to that owner until it is decommissioned. The device gates this step by a method chosen at production: trust on first use, a printed one-time token, or a manufacturer-signed voucher. After a successful claim the device accepts operational keys only from its new owner. ### How is authority limited when a system is handed to an operator? The integrator installs a scoped operator credential. It may permit the operator to trigger manufacturer-signed firmware updates and to write permitted configuration, while denying key changes, ownership transfer, anchor changes, and operator-authored firmware. The device enforces the scope per action, so the operator can run the system without gaining the authority to re-key or re-own it. --- # Regulations & Standards for Key Management Newcomers often assume the regulations prescribe a particular key technology. They do not. The EU Cyber Resilience Act and IEC 62443 are both risk-based and mechanism-neutral. This page summarizes what each one expects about keys specifically, so you can choose a mechanism on its merits rather than on a misreading of the text. For the full requirement matrices, follow the cross-links to the Resources section. [CRA](https://can-security.net/resources/cra-requirements/) [IEC 62443-4-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ## The EU Cyber Resilience Act Sets Outcomes, Not Mechanisms The [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) (Regulation 2024/2847) states its essential cybersecurity requirements in Annex I as outcomes. Products must protect against unauthorized access, including by authentication; protect the confidentiality of stored and transmitted data by strong, current mechanisms; and protect integrity. The text names no algorithm, no key length, no certificate format, and no public-key infrastructure. Which mechanism is appropriate follows from the manufacturer's own risk assessment for the product and its intended use. For key management this has a practical consequence. There is no regulatory obligation to issue per-device certificates or to operate a certificate authority. A manufacturer who can show, through a documented risk assessment, that per-device symmetric keys provide authentication and integrity appropriate to the risk has met the requirement. The obligations that do bite are organizational: the ability to ship security updates, to handle vulnerability reports from September 2026, and to meet the full essential requirements as the regulation applies from 11 December 2027. [CRA Annex I](https://can-security.net/resources/cra-requirements/) ## What IEC 62443 Asks at Security Level 2 Where the CRA is deliberately abstract, [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)-4-2 is concrete. It states component requirements that, read at Security Level 2, give a clear and achievable target for a CAN device. The requirements that touch keys are the ones worth knowing before you choose a mechanism. [IEC 62443-4-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ### CR 1.2 and CR 1.14: Identification and Authentication A device must authenticate itself at SL2. CR 1.14 recognizes symmetric-key authentication using CMAC, GMAC, or GCM, and treats the requirement as satisfied when the secret is diversified per device. Uniqueness of identity does not require an asymmetric key pair. [CR 1.2](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-1-2) [CR 1.14](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-1-14) ### CR 1.5: Authenticator Management The device must support an initial key, allow detection that a default has not been changed, and offer a way to refresh the authenticator over its life. This is a lifecycle capability, not a one-time provisioning step. [CR 1.5](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-1-5) ### CR 4.3 and CR 3.1: Cryptographic Use Cryptographic mechanisms must follow internationally recognized and proven practice, with guidance pointing to NIST SP 800-57. Communication authentication can provide integrity and origin authenticity without confidentiality, so an authentication tag without encryption is compliant. [CR 4.3](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-4-3) [CR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-3-1) [NIST SP 800-57](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-57) ### CR 4.2: Zeroization Sensitive data, including key material, must be purged so that it cannot be recovered once storage is released or the device is decommissioned. Key destruction is an explicit requirement, not an optional courtesy. [CR 4.2](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-4-2) Asymmetric mechanisms appear in IEC 62443-4-2 only conditionally, in requirements that begin in effect with the phrase when a PKI is utilized. Hardware-backed key storage is likewise not an SL2 baseline; it is deferred to Security Level 3. The headline for a newcomer is therefore reassuring: unique per-device symmetric keys, properly managed across their lifecycle, satisfy the SL2 baseline. A public-key infrastructure is something you adopt when scale or governance makes it worthwhile, not because the standard forces it. ## Choosing a PKI Does Not Force the Full Nine Yards A common worry is that the moment you use public-key cryptography, IEC 62443 obliges you to stand up an enterprise certificate authority. It does not. The PKI-related component requirements, CR 1.8 for certificates and CR 1.9 for the strength of public-key authentication, set correctness conditions, not a scale requirement. When public-key authentication is used, the device has to validate the certificate signature, validate the chain to a trust anchor, check revocation status, ensure the holder controls the private key, and map the key to an identity. That is a floor on how well the mechanism works, not a floor on how large the organization behind it must be. [CR 1.8](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-1-8) [CR 1.9](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-1-9) A minimal PKI clears that floor with very little machinery. With a single root, chain validation is trivial, because the device verifies one leaf against the one anchor it holds. Revocation can be handled with short signed records checked against the anchor rather than a full revocation-list service, and on-chip key generation gives the device control of its private key. What the standard does close off is the middle option: a scheme that issues certificates but quietly skips revocation or chain validation. That fails CR 1.9 regardless of how small it is. The practical result is three honest positions, all of which the standard supports: no PKI with per-device symmetric keys under CR 1.14, a minimal PKI that meets CR 1.8 and CR 1.9 with a small footprint, or a full certificate authority justified by scale. The [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) page describes what the minimal and full versions involve. ## How This Page Relates to the Rest of the Site This page covers only the key-management reading of the two frameworks. For the complete, clause-by-clause matrices, use the dedicated reference pages: the [CRA Annex I Requirements](https://can-security.net/resources/cra-requirements/) quick-reference and the [IEC 62443 SL2 Requirements](https://can-security.net/resources/iec-62443-sl2-requirements/) list. For a worked example of running an IEC 62443-style assessment on a CAN device, see the [IEC 62443-Style Assessment](https://can-security.net/risk-assessment/iec-62443/) walkthrough. Once you know what the rules ask, the [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) page helps you pick the mechanism that meets them with the least lasting overhead. ## Frequently Asked Questions ### Does the EU CRA mandate asymmetric cryptography or device certificates? No. The CRA states essential requirements in terms of outcomes: protection from unauthorized access including authentication, confidentiality by strong, current mechanisms, and integrity. It names no specific algorithm, no certificate format, and no public-key infrastructure. The appropriate mechanism follows from the manufacturer's own risk assessment. ### Do per-device symmetric keys satisfy IEC 62443 at Security Level 2? Yes. CR 1.14 explicitly recognizes symmetric-key authentication using mechanisms such as CMAC, GMAC, and GCM, and treats the requirement as met when the secret is diversified per device. Asymmetric mechanisms appear only conditionally, when a PKI is utilized. Unique per-device identity does not imply asymmetric identity. ### If we use a PKI, does IEC 62443 require a full certificate authority? No. The PKI-related requirements, CR 1.8 for certificates and CR 1.9 for the strength of public-key authentication, set correctness conditions rather than a scale requirement. When public-key authentication is used, the device must validate the certificate signature and chain, check revocation status, ensure the holder controls the private key, and map the key to an identity. A minimal PKI with a single trust anchor can meet all of these, so the choice is not between no PKI and a full enterprise authority. What the standard rules out is a partial scheme that issues certificates but skips revocation or chain validation. --- # Symmetric Key Management Symmetric key management is the lower-burden path for most CAN and CAN FD products, and it is where the day-to-day discipline lives. The cryptography is light; the work is in giving every device its own key, deciding whether to store or derive those keys, and running the rotation and revocation cycles that keep a fleet healthy. This page lays out the approaches at a framework level so you can match one to your deployment. ## Before You Diversify, Ask What the Key Is For Whether every device needs its own symmetric key depends on what the key is for, so start with purpose rather than with a rule. Two questions settle most of it. Is this the only key on the device, carrying identity, firmware protection, and session traffic at once? If not, are firmware protection and device identification handled by separate keys? A key that is the sole means of trust, and whose job is to tell one device from another, has to be unique per device, because a single shared value would let one extracted secret stand in for the whole fleet. A key whose only job is to protect a firmware image for a product family does not carry that requirement, because it is not what distinguishes one unit from the next. Per-device diversification is therefore core in one specific case, when the key identifies and authenticates the individual device. IEC 62443-4-2 makes the same point from the compliance side, treating the authentication requirement as met when the secret that carries identity is diversified per device. The sections below follow that order: decide what each key is for, diversify the keys that carry identity, and let a firmware or family key stay common where its purpose calls for it. [IEC 62443-4-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ## One Root, Two Kinds of Key The decision to diversify does not force a separately stored key for every purpose. One root key can produce both kinds at once, because the derivation input decides what comes out. Feed in a device serial number and the root yields a per-device key that identifies and authenticates that one unit. Feed in a fixed string that names a firmware version or a product family and the same root yields a firmware protection key shared across that family. Both come from the one root, differing only in the input mixed in. A label bound into each derivation keeps the two purposes cryptographically separate, so the identity key and the firmware key can never stand in for one another even though they share a parent. A single stored secret therefore answers the opening question two ways at once: unique where the key carries identity, common where it protects a shared image. The mechanics of holding that one secret, and deriving the rest on demand, are the subject of the sections that follow. ## Where the Randomness Comes From Every key on this page is only as unpredictable as the source that generated it. A per-device key drawn from a weak or unseeded generator is guessable no matter how carefully it is stored afterward. Generate keys from a hardware random number generator feeding a deterministic random bit generator of the kind specified in NIST SP 800-90A, with an entropy source assessed and health-tested along the lines of SP 800-90B. On a microcontroller that means using the on-chip TRNG rather than a software pseudo-random function seeded from predictable state such as a timer or a serial number. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) page lists the CAN FD parts that carry a hardware random number generator for exactly this purpose. [NIST SP 800-90A](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-90a) [NIST SP 800-90B](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-90b) ## Three Ways to Manage the Keys *Three ways to manage symmetric keys, and where each fits.* | Approach | How It Works | Trade-Off | Potential Use Cases | | --- | --- | --- | --- | | Store Per-Device Keys | Generate a random key for each device and keep it in an integrator database, organized by serial. | Simplest to build, but the database becomes a crown jewel: a leak exposes every device it lists, and refreshing one device means rewriting its key. | Closed, low-Security-Level systems with tight database control, and small fleets where the database stays manageable. | | Derive From a Root | Hold one root key in a small hardware module and derive each device key on demand from public inputs such as the serial and a key-revision counter. | No per-device database, a leak exposes no secrets, and refreshing a device is a counter bump, but the root must be backed up. | Most CAN and CAN FD fleets meeting the SL2 baseline with low maintenance, and larger fleets where a key database would be a liability. | | Add an Asymmetric Governance Layer | Keep the derived-from-root scheme and place a lightweight asymmetric signing key above the root, distributing its public half as a trust anchor, to sign which root generation is current. | Adds the ability to revoke a root generation and to check currency, which pure symmetric derivation cannot do, at the cost of an asymmetric signing key to protect. | Deployments that must revoke a root generation or verify currency, and systems that combine symmetric efficiency with governed authority. | The derivation in the second and third options uses a standard key-derivation function, with HKDF (specified in RFC 5869) the usual choice, fed with values that are not secret. The technique of deriving many keys from one root and tracking generations has long-standing prior art in ANSI X9.24-3, the DUKPT (Derived Unique Key Per Transaction) scheme from the payments world. The lifecycle discipline around all of this, generation, rotation, and destruction, follows NIST SP 800-57. [RFC 5869](https://can-security.net/resources/terms-and-definitions/#term-rfc-5869) [ANSI X9.24-3](https://can-security.net/resources/terms-and-definitions/#term-ansi-x9-24-3) [NIST SP 800-57](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-57) ## Producing Many Keys From Bounded Secure Storage Deriving keys from one root removes most per-key storage, yet two storage questions remain. Where is the root itself held, and what happens when a program needs several base keys, one per product line or one per security domain, rather than a single one? A hardware security module protects what it holds, yet it holds only a handful of slots. Storing every base key in a secure database can seem the appropriate answer at first glance, yet there are better ones that keep secure storage constant no matter how many base keys the program uses. ### Derive a Key Ladder Hold one root in the module and derive every working key beneath it on demand, so only the root occupies secure storage and everything else is recomputed when it is needed. As the section above describes, the derivation input sets the purpose: a serial yields a per-device identity key, a firmware or family label yields a shared firmware key. Extending the same idea, the root can derive base keys as an intermediate tier, one per product line or purpose, and those base keys derive the working keys beneath them, so a whole program of keys reduces to one stored secret. NIST SP 800-108 defines the counter-mode derivation this uses. [NIST SP 800-108](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-108) ### Wrap Keys for External Storage When the individual keys must be independent random values rather than branches of one root, keep a single key-encryption key in the module and store each key encrypted under it in ordinary storage. The module unwraps a key only at the moment it is used, so secure storage holds one key-encryption key however many keys exist. AES key wrap is the standard construction. The trade against a ladder is that the wrapped material is the only copy, so it must be backed up. [NIST SP 800-38F](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-38f) ### The following animation illustrates how symmetric keys can be managed by the manufacturer using USB-HSMs (Hardware Security Modules): The symmetric key management described here can be used in a similar fashion on the integrator level. The following cryptographic solutions depend on such symmetric keys: - [Frame Security](https://can-security.net/solutions/frame-security/) authenticates each frame on the bus. - [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/) protects object-level reads and writes. - [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) authenticates firmware updates. ## Rolling, Rotation, Refresh, and Revocation A symmetric deployment is not finished when the keys are provisioned; it runs for the life of the fleet. Four mechanisms keep it healthy, and it pays to keep them distinct, because the first two sound alike yet differ in which key they touch and how often: ### Rolling The short-lived session key changes automatically on a fixed time base, with no human action. SPsec, for example, rolls the session key continuously this way, so the key protecting traffic is never the same for long. Rolling limits how much data any single key ever protects, and it is part of normal running rather than maintenance. ### Rotation The longer-lived operational or root key is replaced on a planned schedule, far less often than the session key rolls. Where rolling is continuous and automatic, rotation is deliberate and policy-driven. It is the periodic re-keying of the keys that persist across sessions and that the rolling layer is derived from. ### Refresh An operational key is replaced on demand, for hygiene or after a suspected exposure. With a derived scheme this is a key-revision bump that the device re-derives from; with a stored scheme it is a rewrite plus a database update. ### Revoke Authority is withdrawn after a credential is compromised. Where an asymmetric governance layer is present, a technician or operator grant can be denied without re-keying devices; in a pure stored or derived scheme, revocation means refreshing the affected devices. One more obligation closes the lifecycle. IEC 62443-4-2 CR 4.2 requires that key material be zeroized, that is, purged so it cannot be recovered, when a device is reset, decommissioned, or has its storage released. Key destruction is as much a part of symmetric key management as key creation, and it is easy to forget until an audit asks for it. [CR 4.2](https://can-security.net/resources/iec-62443-sl2-requirements/#cr-4-2) ## Frequently Asked Questions ### Does every device need its own symmetric key? It depends on what the key is for. A key that identifies and authenticates the individual device has to be unique per device, because it is what tells one unit from another and one extracted secret would otherwise stand in for the whole fleet. A key whose only job is to protect a firmware image for a product family does not need per-device diversification, because it does not distinguish one unit from the next. IEC 62443-4-2 treats the authentication requirement as met when the secret that carries identity is diversified per device, so per-device keys are the baseline for identity even where a shared firmware key is acceptable. ### Can one root key both protect firmware and identify devices? Yes. One root can derive both kinds of key, because the derivation input sets the purpose. A device serial number yields a per-device identity key unique to that unit, and a fixed firmware or family label yields a firmware protection key shared across the family. A label bound into each derivation keeps the two cryptographically separate, so neither can stand in for the other. ### Is it better to store per-device keys or derive them from a root? Deriving from a root held in a small hardware module usually wins for maintenance. There is no per-device key database to protect, a database leak exposes no secrets because the derivation inputs are public, and a single device can be refreshed by bumping its key-revision counter. The trade is that the root must be backed up, since its loss means the fleet's keys can no longer be derived. --- # Symmetric vs Asymmetric Keys This is the first real decision in key management, and it shapes every process that follows. The two families are not ranked by strength; they trade different costs. Symmetric cryptography keeps the device light but pushes the work into secure provisioning. Asymmetric cryptography solves key distribution but asks more of the hardware and of the organization that runs the trust anchors. This page explains the difference in plain language and names the algorithms on each side. ## The Essential Difference A symmetric key is a single shared secret. The two parties that use it hold the same value, and anyone holding that value can both produce and verify protected messages. An asymmetric key is a pair: a private half that never leaves its holder, and a public half that can be handed to anyone. What the private half produces, the public half verifies, and vice versa. That asymmetry is the whole point, because it lets a device publish its public half openly while keeping the private half secret. For a fieldbus device the consequence is concrete. With symmetric keys, every device that must be individually identifiable needs its own distinct key, and that key has to be placed on the device and recorded somewhere secure. With asymmetric keys, a device can carry a private identity key it generated itself, and the rest of the system only ever needs the public half. The trade is between the simplicity of one shared value and the distribution freedom of a published public half. ## What Each Side Costs The two families trade their costs in opposite directions: ### Symmetric: Cheap on the Device, Careful in Provisioning Verification is a fast tag check, well within reach of a small microcontroller, often with hardware acceleration. The cost moves to logistics: every secret must be generated, transported, and stored without exposure, and diversified per device so that one extracted key does not unlock the fleet. A leaked key database compromises every device whose key it held. ### Asymmetric: Heavier Compute, Easier Distribution Signature and key-agreement operations are heavier and use larger keys, which matters on constrained parts and at session-setup time. In return, key distribution is largely solved: public halves can be published freely, and trust is established by verifying a chain to a known trust anchor. The concentrated risk shifts to the offline signing key behind that anchor, which signs everything. ## The Algorithms Involved Both families draw on a small, well-established set of primitives. None of these are exotic, and all are documented in international standards, which matters for the IEC 62443 requirement that cryptography follow recognized practice. [IEC 62443-4-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ### Symmetric Primitives AES-128 or AES-256 in GCM mode provides authenticated encryption, giving confidentiality and integrity together. AES-GMAC and CMAC provide authentication without encryption, which IEC 62443 accepts for communication integrity. HKDF derives per-purpose keys from a root secret, and SHA-256 is the standard hash underneath them. ChaCha20-Poly1305 is a common lightweight alternative to AES-GCM. ### Asymmetric Primitives Ed25519 signs and verifies, and X25519 performs key agreement; both are modern, compact, and fast as elliptic-curve schemes go, and make sensible defaults. RSA-2048 and ECDSA P-256 remain in use where existing toolchains or certificate infrastructures require them. These pair naturally with the symmetric primitives: an asymmetric handshake establishes a session, then symmetric keys carry the routine traffic. Whichever set you pick, treat the algorithm as replaceable rather than permanent. An industrial device stays in the field for a decade or more, longer than any single primitive is guaranteed to stand, so the update mechanism should be able to carry a new algorithm and the protocol should identify which one a message uses. This crypto-agility matters most on the asymmetric side, where the migration to post-quantum signature and key-agreement schemes is already on the standards horizon; the symmetric side is more durable, since AES-256 and SHA-256 retain a comfortable margin. Designing the field-update path to change primitives now is far cheaper than retrofitting it once a curve or key length is deprecated. ## How to Decide For most CAN and CAN FD products entering compliance for the first time, symmetric keys are the lower-burden path that still meets the Security Level 2 baseline described on the [Regulations & Standards](https://can-security.net/key-management/regulations-standards/) page. Asymmetric mechanisms earn their extra cost when you need open distribution of trust, [delegated authority](https://can-security.net/resources/terms-and-definitions/#term-delegation) that can be revoked without re-keying every device, or anti-counterfeiting identity that a manufacturer signs at scale. Many real systems use both: an asymmetric handshake to set up trust, and symmetric keys for everything afterward. The [Fieldbus Device](https://can-security.net/key-management/fieldbus-device/) page shows which device functions pull in which kind of key, and the two management pages cover the lifecycle of each. The table below sketches four common capability tiers, from a very constrained controller to a part with a dedicated security subsystem, and the key-management infrastructure that fits each. The device capability and the infrastructure escalate together, so most products settle on one row rather than mixing across them. The tiers follow the ordered [device capability ladder](https://can-security.net/resources/terms-and-definitions/#term-device-capability-level): symmetric only, verify a signature it is given, sign with an identity of its own, and agree a key. Frameworks number these tiers differently and the numbering is not interchangeable, so each row below is named by what the device can do rather than by a level number. *Device capability and the key-management infrastructure that matches each tier.* | Device Class | On-Device Cryptography | Key-Management Infrastructure | What It Enables | | --- | --- | --- | --- | | **Symmetric only**: Very constrained. Little budget to spare for security. | Symmetric only. AES-128-GCM authenticated encryption, with per-purpose keys derived by HKDF. The device verifies tags and never a signature. | Minimal. One root in a small [hardware security module](https://can-security.net/resources/terms-and-definitions/#term-hsm), from which a key ladder derives per-device identity keys and firmware keys on demand. | The IEC 62443 SL2 baseline, per-device identity, and firmware protected by a symmetric tag. | | **Can also verify a signature**: Mid-range. Headroom for verification, from a hardware AES block or from clock margin. | Symmetric traffic, plus verification of a manufacturer signature over firmware and configuration. Only a public key sits on the device. | The ladder above, plus signed files. The manufacturer holds a signing key and publishes the matching public key to devices. | Firmware origin proof and anti-rollback through a signature, with no private key on the device. | | **Can sign under its own identity**: Capable. Headroom for signing, on a public-key accelerator or a fast core. | Symmetric traffic plus a device identity of its own. The device holds its own private identity key and uses Ed25519 to sign, so it can attest what it is and authorize actions under its own name. | A registry of device public keys, or a minimal PKI. The identity can be distributed as a raw public key recorded against the serial, or wrapped in a certificate where a PKI is already in play. | Self-generated device identity, open trust distribution, and delegated authority. | | **Full asymmetric operation**: State of the art. Ample headroom, usually with secure key storage. | Full asymmetric operation adding X25519 key agreement, so a fresh session key is agreed for each session and confidential key install becomes possible. | A full PKI. Certificate hierarchies, revocation, and lifecycle governance. | Dynamic re-keying, revocation without re-provisioning devices, and large delegated deployments. | Each row points to a deeper page. The symmetric ladder and its key derivation are covered on [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/), the signature option for firmware is covered on [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/), and the PKI tiers are covered on [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/). Reaching a tier depends on the compute budget the application can spare, not on a specific accelerator: acceleration helps on a tight time budget, but a fast core with clock margin can do without it. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) reference lists CAN FD controllers by the hardware security features they carry. The [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page measures what each primitive costs in flash, stack, and time on those parts. > ### CANcrypt: A Symmetric-First Layer for CAN > CANcrypt implements the symmetric path end to end for CAN and CAN FD: per-device keys, secure grouping, and rotation, sized for the constrained controllers typical on a fieldbus. It is the practical option when you want the lighter device burden without standing up a public-key infrastructure. > [Explore CANcrypt →](https://www.cancrypt.net/) ## Frequently Asked Questions ### Is asymmetric cryptography more secure than symmetric for CAN? Not inherently. Both can meet the same security goals. Asymmetric cryptography solves key distribution by letting the public half be published, at the cost of larger keys and heavier verification. Symmetric cryptography is lighter on the device but requires every secret to be provisioned securely and diversified per device. The right choice depends on scale, governance, and the constraints of the hardware. ### Which algorithms are typical on each side for CAN devices? On the symmetric side: AES-128 or AES-256 in GCM for authenticated encryption, AES-GMAC or CMAC for authentication only, HKDF for key derivation, and SHA-256 for hashing. On the asymmetric side: Ed25519 for signatures and X25519 for key agreement as modern defaults, with RSA-2048 or ECDSA P-256 where legacy interoperability is needed. --- # Privacy Notice This is a static informational website. It sets no cookies, runs no analytics, embeds no third-party scripts or fonts, and contains no contact forms. The notice below explains the limited processing that does occur, your rights under the GDPR, and how to exercise them. [Diese Seite auf Deutsch →](https://can-security.net/privacy/de/) ## 1. Controller The controller for the processing of personal data on this website within the meaning of Art. 4 No. 7 GDPR is: **Embedded Systems Academy GmbH** Bahnhofstr 17 30890 Barsinghausen Germany Phone: +49 5105 582 7897 Email: For the full legal-entity record (commercial register, VAT identification, managing director), see the [Imprint](https://can-security.net/imprint/). ## 2. Scope of this Notice This notice applies **only** to the CAN Security Reference website, served from the primary domain `can-security.net`, with the secondary domain `cansecurity.net` redirecting to it. Other Embedded Systems Academy properties, including esacademy.com, esacademystore.eu, emsa.courses, cancrypt.net, and canopenmagic.com, operate under their own privacy notices. Following any external link will leave the scope of this notice. ## 3. What This Site Does Not Do For clarity, this website explicitly does **not**: - set any cookies, including no consent or session cookies; - use `localStorage`, `sessionStorage`, or any other client-side persistent storage; - load analytics, tag managers, or tracking pixels (no Google Analytics, no Plausible, no Matomo, no Meta Pixel, etc.); - load fonts, scripts, stylesheets, images, or media from third-party content delivery networks, including no Google Fonts, no Cloudflare, no jsDelivr, no Gravatar; - embed videos, social-media widgets, or maps; - contain HTML `
` elements or collect input from visitors; - collect email addresses or operate a mailing list. You can verify these claims by inspecting the site with your browser's developer tools (Network tab, Application tab); there should be no third-party requests and no client-side storage entries. ## 4. What Is Processed: Server Logs This website is hosted at **Amazon Web Services EMEA SARL**, 38 Avenue John F. Kennedy, L-1855 Luxembourg, in the AWS region *eu-central-1* (Frankfurt am Main, Germany). AWS acts as our data processor under Art. 28 GDPR on the basis of the AWS GDPR Data Processing Addendum. The hosting infrastructure automatically records technical request data in server logs, which may include: - the IP address from which the request was made, - the date and time of the request, - the requested URL and HTTP method, - the HTTP response status, - the user-agent string identifying your browser and operating system, - the HTTP referer (the page you came from), if your browser sends one. **Legal basis:** Art. 6 (1) (f) GDPR, our legitimate interest in operating a stable, secure, and abuse-resistant website. **Retention:** log entries are kept for the period required for security analysis and operational diagnostics, typically not longer than 30 days, after which they are deleted or anonymized. Logs are not used for analytics, profiling, or marketing. ## 5. Contact by Email If you contact us using the obfuscated email link in the [contact](https://can-security.net/contact/) or [imprint](https://can-security.net/imprint/) pages, your browser opens your local email client. Embedded Systems Academy GmbH only receives the data you voluntarily include in the message you send. The address is technically obfuscated (assembled by JavaScript at page load) to deter automated scraping; this is a security measure, not a tracking measure. Email content is processed on the basis of Art. 6 (1) (b) or (f) GDPR depending on the nature of your inquiry, and is retained for as long as necessary to handle your request and for any subsequent legal-record-keeping obligations. ## 6. External Links This site contains links to external resources, for example esacademy.com, cancrypt.net, emsa.courses, the European Commission ODR platform, eur-lex.europa.eu, iec.ch, etsi.org, csrc.nist.gov, and bsi.bund.de. We have no control over the privacy practices of these third parties. Following an external link is governed by the destination's own privacy notice. All external links open in a new browser tab and use `rel="noopener"`. ## 7. Your Rights under the GDPR Subject to the conditions set out in the GDPR, you have the following rights with respect to personal data we process about you: - **Right of access** (Art. 15 GDPR) — confirmation whether we process personal data concerning you and, if so, a copy of that data; - **Right to rectification** (Art. 16 GDPR) — correction of inaccurate or incomplete data; - **Right to erasure** (Art. 17 GDPR) — deletion of your data, subject to legal retention obligations; - **Right to restriction of processing** (Art. 18 GDPR); - **Right to data portability** (Art. 20 GDPR), where applicable; - **Right to object** (Art. 21 GDPR) to processing based on Art. 6 (1) (e) or (f) GDPR, including the server-log processing described in section 4. To exercise any of these rights, write to the contact address in section 1. ## 8. Right to Lodge a Complaint You have the right to lodge a complaint with a data-protection supervisory authority. The competent authority for Embedded Systems Academy GmbH is: **Die Landesbeauftragte für den Datenschutz Niedersachsen** Prinzenstraße 5 30159 Hannover Germany Web: [lfd.niedersachsen.de](https://www.lfd.niedersachsen.de/) You may also lodge a complaint with the supervisory authority of your habitual residence, your place of work, or the place of the alleged infringement (Art. 77 GDPR). ## 9. Changes to this Notice This notice was last updated on **8 May 2026**. Material changes will be reflected by an updated date; please re-read this page from time to time. The current version is always the version published at `/privacy/`. --- # Datenschutzerklärung Diese Website ist eine statische Informationsseite. Sie setzt keine Cookies, betreibt keine Analyse, lädt keine Skripte oder Schriften von Drittanbietern und enthält keine Kontaktformulare. Die folgenden Hinweise erläutern die wenigen Verarbeitungsvorgänge, die dennoch stattfinden, sowie Ihre Rechte nach der DSGVO. [View this page in English →](https://can-security.net/privacy/) ## 1. Verantwortlicher Verantwortlicher im Sinne von Art. 4 Nr. 7 DSGVO für die Verarbeitung personenbezogener Daten auf dieser Website ist: **Embedded Systems Academy GmbH** Bahnhofstr 17 30890 Barsinghausen Deutschland Telefon: +49 5105 582 7897 E-Mail: Den vollständigen Datensatz der juristischen Person (Handelsregistereintrag, USt-ID, Geschäftsführer) finden Sie im [Impressum](https://can-security.net/imprint/de/). ## 2. Geltungsbereich Diese Datenschutzerklärung gilt **ausschließlich** für die Website CAN Security Reference, erreichbar über die primäre Domain `can-security.net`; die sekundäre Domain `cansecurity.net` leitet per 301 dorthin weiter. Andere Angebote der Embedded Systems Academy, darunter esacademy.com, esacademystore.eu, emsa.courses, cancrypt.net und canopenmagic.com, verfügen über eigene Datenschutzerklärungen. Externe Links verlassen den Geltungsbereich dieser Erklärung. ## 3. Was diese Website nicht tut Zur Klarstellung: Diese Website - setzt **keine** Cookies, weder Einwilligungs- noch Sitzungs-Cookies; - nutzt **kein** `localStorage`, `sessionStorage` oder andere persistente Client-Speicher; - lädt **keine** Analyse-Tools, Tag-Manager oder Tracking-Pixel (kein Google Analytics, kein Plausible, kein Matomo, kein Meta Pixel etc.); - lädt **keine** Schriften, Skripte, Stylesheets, Bilder oder Medien von externen Content-Delivery-Networks, also keine Google Fonts, kein Cloudflare, kein jsDelivr, kein Gravatar; - bindet **keine** Videos, Social-Media-Widgets oder Karten ein; - enthält **keine** HTML-``-Elemente und erfasst keine Eingaben; - erfasst **keine** E-Mail-Adressen und betreibt keinen Newsletter. Sie können dies in den Entwicklerwerkzeugen Ihres Browsers (Reiter "Netzwerk" und "Anwendung") überprüfen; es sollten keine Anfragen an Drittanbieter und keine Client-Speicher-Einträge erscheinen. ## 4. Was verarbeitet wird: Server-Logs Diese Website wird gehostet bei **Amazon Web Services EMEA SARL**, 38 Avenue John F. Kennedy, L-1855 Luxemburg, in der AWS-Region *eu-central-1* (Frankfurt am Main, Deutschland). AWS handelt als Auftragsverarbeiter gemäß Art. 28 DSGVO auf Grundlage des AWS GDPR Data Processing Addendum. Die Hosting-Infrastruktur protokolliert technische Anfragedaten in Server-Logs. Diese können enthalten: - die IP-Adresse, von der die Anfrage erfolgt, - Datum und Uhrzeit der Anfrage, - die angeforderte URL und HTTP-Methode, - den HTTP-Statuscode, - den User-Agent (Browser- und Betriebssystem-Kennung), - den HTTP-Referer (zuvor besuchte Seite), sofern vom Browser übermittelt. **Rechtsgrundlage:** Art. 6 Abs. 1 lit. f DSGVO, unser berechtigtes Interesse am stabilen, sicheren und missbrauchsresistenten Betrieb der Website. **Speicherdauer:** Log-Einträge werden nur für den zur Sicherheits- und Betriebsanalyse erforderlichen Zeitraum aufbewahrt, in der Regel nicht länger als 30 Tage, und danach gelöscht oder anonymisiert. Die Logs werden nicht für Analyse-, Profiling- oder Marketingzwecke verwendet. ## 5. Kontaktaufnahme per E-Mail Wenn Sie über den verschleierten E-Mail-Link auf der [Kontaktseite](https://can-security.net/contact/) oder im [Impressum](https://can-security.net/imprint/de/) Kontakt aufnehmen, öffnet Ihr Browser Ihren lokalen E-Mail-Client. Die Embedded Systems Academy GmbH erhält dabei nur die Daten, die Sie freiwillig in Ihrer Nachricht übermitteln. Die Adresse ist technisch verschleiert (sie wird durch JavaScript zur Laufzeit zusammengesetzt), um automatische Auslesung zu erschweren; dies ist eine Sicherheits-, keine Tracking-Maßnahme. Der Inhalt Ihrer E-Mail wird auf Grundlage von Art. 6 Abs. 1 lit. b oder lit. f DSGVO verarbeitet, je nach Art Ihrer Anfrage, und so lange aufbewahrt, wie es zur Bearbeitung Ihrer Anfrage und zur Erfüllung etwaiger gesetzlicher Aufbewahrungspflichten erforderlich ist. ## 6. Externe Links Diese Website enthält Links zu externen Ressourcen, etwa esacademy.com, cancrypt.net, emsa.courses, der EU-Plattform zur Online-Streitbeilegung, eur-lex.europa.eu, iec.ch, etsi.org, csrc.nist.gov und bsi.bund.de. Auf die Datenschutzpraktiken dieser Dritten haben wir keinen Einfluss. Beim Folgen eines externen Links gilt die Datenschutzerklärung des jeweiligen Zielangebots. Alle externen Links öffnen in einem neuen Tab und verwenden `rel="noopener"`. ## 7. Ihre Rechte nach DSGVO Vorbehaltlich der in der DSGVO genannten Voraussetzungen stehen Ihnen bezüglich der Sie betreffenden personenbezogenen Daten folgende Rechte zu: - **Auskunftsrecht** (Art. 15 DSGVO) — ob und welche personenbezogenen Daten wir über Sie verarbeiten; - **Recht auf Berichtigung** (Art. 16 DSGVO) — Korrektur unrichtiger oder unvollständiger Daten; - **Recht auf Löschung** (Art. 17 DSGVO) — vorbehaltlich gesetzlicher Aufbewahrungspflichten; - **Recht auf Einschränkung der Verarbeitung** (Art. 18 DSGVO); - **Recht auf Datenübertragbarkeit** (Art. 20 DSGVO), soweit anwendbar; - **Widerspruchsrecht** (Art. 21 DSGVO) gegen Verarbeitungen auf Grundlage von Art. 6 Abs. 1 lit. e oder lit. f DSGVO, einschließlich der in Abschnitt 4 beschriebenen Server-Log-Verarbeitung. Zur Ausübung dieser Rechte wenden Sie sich an die in Abschnitt 1 genannte Kontaktadresse. ## 8. Beschwerderecht bei der Aufsichtsbehörde Sie haben das Recht, sich bei einer Datenschutz-Aufsichtsbehörde zu beschweren. Zuständige Aufsichtsbehörde für die Embedded Systems Academy GmbH ist: **Die Landesbeauftragte für den Datenschutz Niedersachsen** Prinzenstraße 5 30159 Hannover Deutschland Web: [lfd.niedersachsen.de](https://www.lfd.niedersachsen.de/) Sie können die Beschwerde zudem bei der Aufsichtsbehörde Ihres gewöhnlichen Aufenthaltsorts, Ihres Arbeitsplatzes oder des Orts des mutmaßlichen Verstoßes einlegen (Art. 77 DSGVO). ## 9. Änderungen dieser Erklärung Diese Erklärung wurde zuletzt am **8. Mai 2026** aktualisiert. Wesentliche Änderungen werden durch ein aktualisiertes Datum kenntlich gemacht; bitte lesen Sie diese Seite gelegentlich erneut. Maßgeblich ist stets die unter `/privacy/` bzw. `/privacy/de/` veröffentlichte Fassung. --- # CAN Security Resources and Further Reading A curated set of white papers, standards references, and a glossary supporting the rest of this reference. White paper PDFs are hosted on [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). ## EmSA White Papers ### EmSA-WP-105: Secure Object Fieldbus Access (SOFA) Hosted at [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). Specifies how compact secure protocols can be tunneled generically through fieldbus transports, the basis for the [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) control described under Solutions. Covers authenticated access to selected object dictionary entries using AEAD. [Download PDF →](https://www.esacademy.com/en/library/security-white-papers/emsa-wp-105-sofa-secure-object-fieldbus-access.html) ### EmSA-WP-104: Key Provisioning for Minimal Fieldbus Systems Hosted at [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). Covers security key lifecycles and key handling for constrained fieldbus devices: how provisioning, update, and storage of keys are managed on nodes with very limited resources. [Download PDF →](https://www.esacademy.com/en/library/security-white-papers/emsa-wp-104-key-provisioning-for-minimal-fieldbus-systems.html) ### EmSA-WP-103: CVSS for CAN Hosted at [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). A practical method for scoring CAN vulnerabilities under [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0, with worked examples for an unprotected classical CAN node and the score reductions achieved by physical access limitation, system monitoring, and cryptographic measures. Establishes the 5.2 (Medium) baseline reused throughout this reference. [Download PDF →](https://www.esacademy.com/en/library/security-white-papers/common-vulnerability-scoring-system-cvss-for-can.html) ### EmSA-WP-102: Interface Driven Security Evaluation for Sensors Hosted at [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). An interface-driven method for evaluating the security of sensor interfaces, comparing the exposure of the memory bus, SPI, I2C, and CAN connections that bring sensor data into a system. [Download PDF →](https://www.esacademy.com/en/library/security-white-papers/wp102.html) ### EmSA-WP-101: Security Justification for Classical CAN Hosted at [esacademy.com](https://www.esacademy.com/en/library/security-white-papers.html). Discusses when a documented security justification can serve in place of a full risk assessment for low-risk classical CAN systems with strong physical access controls, including the documentation auditors expect. [Download PDF →](https://www.esacademy.com/en/library/security-white-papers/wp101.html) ## Regulations - **EU Cyber Resilience Act** — official text on EUR-Lex: [Regulation (EU) 2024/2847](https://eur-lex.europa.eu/eli/reg/2024/2847/oj). See also the [CRA Annex I requirements matrix](https://can-security.net/resources/cra-requirements/) for a CAN-focused mapping of each requirement to the defensive measures on this site. - **EU [NIS 2](https://can-security.net/resources/terms-and-definitions/#term-nis-2) Directive** — official text on EUR-Lex: [Directive (EU) 2022/2555](https://eur-lex.europa.eu/eli/dir/2022/2555/oj). - **EU [Machinery Regulation](https://can-security.net/resources/terms-and-definitions/#term-machinery-regulation)** — official text on EUR-Lex: [Regulation (EU) 2023/1230](https://eur-lex.europa.eu/eli/reg/2023/1230/oj). - **EU [Radio Equipment Directive (RED)](https://can-security.net/resources/terms-and-definitions/#term-red)** — official text on EUR-Lex: [Directive 2014/53/EU](https://eur-lex.europa.eu/eli/dir/2014/53/oj). Its delegated regulation activates cybersecurity requirements for radio-equipped products, addressed by the EN 18031 series. ## Standards and Guidelines - **[IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)** — series overview at [IEC Cyber Security](https://www.iec.ch/cyber-security). - **ETSI [EN 303 645](https://can-security.net/resources/terms-and-definitions/#term-en-303-645)** — Cybersecurity for consumer IoT: [ETSI EN 303 645](https://www.etsi.org/deliver/etsi_en/303600_303699/303645/). - **[NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82)** — Guide to Operational Technology Security: [NIST SP 800-82 Rev. 3](https://csrc.nist.gov/pubs/sp/800/82/r3/final). - **[BSI TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102)** — Cryptographic recommendations: [BSI TR-02102](https://www.bsi.bund.de/EN/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/Technische-Richtlinien/TR-nach-Thema-sortiert/tr02102/tr02102_node.html). - **[NIST SP 800-57](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-57)** — Recommendation for Key Management: [NIST SP 800-57 Part 1 Rev. 5](https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final). - **[NIST SP 800-30](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-30)** — Guide for Conducting Risk Assessments: [NIST SP 800-30 Rev. 1](https://csrc.nist.gov/pubs/sp/800/30/r1/final). - **[FIPS 140-2 / 140-3](https://can-security.net/resources/terms-and-definitions/#term-fips-140-2)** — Security Requirements for Cryptographic Modules: [FIPS 140-3](https://csrc.nist.gov/pubs/fips/140-3/final). ## SPsec Specification Documents The full [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) specification set (documents 101 through 302) is published on esacademy.com. [SPsec specifications →](https://www.esacademy.com/en/library/spsec.html) ## Hardware Reference Cryptographic CAN protection depends on the controller underneath it. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) table lists microcontroller families that pair a CAN FD interface with hardware security features, true random generation, secure key storage, and crypto accelerators, as a starting point when selecting silicon for a secured node. Once the silicon is chosen, the [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page reports measured code size, stack, and timing for the core primitives (SHA-256, HKDF, AES-128-GCM, Ed25519, and X25519) on three representative parts, so the flash, RAM, and CPU budget can be sized before committing to an approach. ## Frequently Asked Questions ### Where can I download the EmSA white papers? All EmSA security white papers are listed at [esacademy.com/en/library/security-white-papers.html](https://www.esacademy.com/en/library/security-white-papers.html) with PDF download links. Direct deep links may change as new revisions are published; the library page is the stable entry point. ### Are the SPsec specifications publicly available? Yes. The [SPsec project page](https://www.esacademy.com/en/library/spsec.html) on esacademy.com hosts the specification documents (SPsec 101 through 302). They are intended for public review and implementation. --- # CRA Annex I Requirements The EU Cyber Resilience Act (Regulation EU 2024/2847) sets thirteen essential cybersecurity requirements in Annex I, point 1, plus the umbrella requirement in Article 13 that the product offer a cybersecurity level appropriate to its intended use. The matrix below maps each requirement to the primary and secondary defensive measures available for CAN-based products on this site. Wording in the second column is a short paraphrase for matrix use; the binding text is the regulation itself. ## Requirement-to-Measure Matrix Each row names a CRA requirement, a short description, and the controls that address it. Primary is the most direct control on CAN; secondary is the most common complement. The individual [Solutions](https://can-security.net/solutions/) entries list further mappings that do not fit a single row. *EU CRA Annex I cybersecurity requirements mapped to defensive measures available for CAN-based products.* | CRA Req. | Requirement (short) | Measures | | --- | --- | --- | | **I-1** | Appropriate cybersecurity level | Primary: [Risk Assessment (IEC 62443-3-2)](https://can-security.net/risk-assessment/) Secondary: [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) | | **I-2a** | No known exploitable vulnerabilities | Primary: [CVSS tracking](https://can-security.net/risk-assessment/cvss-for-can/) Secondary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) (to deploy fixes) | | **I-2b** | Secure-by-default configuration | Primary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) (configuration locking) Secondary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) | | **I-2c** | Vulnerabilities addressed via updates | Primary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) | | **I-2d** | Protect data integrity, report issues | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **I-2e** | Protect confidentiality of data | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) | | **I-2f** | Data minimization only necessary data | Out of scope (for CAN) | | **I-2g** | Protect availability essential functions | Requires in-depth (pen) testing | | **I-2h** | Protect availability of other services | Primary: [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) Secondary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **I-2i** | Limit attack surfaces / interfaces | Primary: [Access Limitation](https://can-security.net/risk-assessment/access-limitation/) Secondary: [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) | | **I-2j** | Reduce incident impact mitigation | Primary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) (with appropriate reaction) Secondary: [Zoning / Segmentation](https://can-security.net/solutions/zoning-segmentation/) | | **I-2k** | Record and monitor internal activity | Primary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) (security event log) Secondary: [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) | | **I-2l** | Allow deletion and factory reset | Primary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) | | **I-2m** | Protect data from unauthorized access | Primary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) Secondary: [Frame Security](https://can-security.net/solutions/frame-security/) | The official CRA text is available on EUR-Lex: [Regulation (EU) 2024/2847](https://eur-lex.europa.eu/eli/reg/2024/2847/oj). Annex I, point 1 carries the I-2a to I-2m enumeration in the order shown above. > ### EmSA Training — Compliance Planning & Risk Assessment for CAN > Worked-example training that walks through CRA-compliant risk assessments for a single CAN device and an entire CAN system, including how each Annex I requirement maps to the controls listed in this matrix. > [Open this course →](https://emsa.courses/course/cra-can-assessment) ## Frequently Asked Questions ### Where do the requirement numbers I-1 and I-2a to I-2m come from? They follow the structure of Annex I of the EU Cyber Resilience Act (Regulation EU 2024/2847). I-1 is the umbrella requirement that the product must offer a cybersecurity level appropriate to its intended use and risk. I-2a through I-2m enumerate the thirteen essential security properties from Annex I, point 1. The shortened phrasings on this page paraphrase the official wording for matrix use; the binding text is [the regulation itself](https://eur-lex.europa.eu/eli/reg/2024/2847/oj). ### Why does each requirement list only a primary and a secondary measure? Defense in depth typically combines several controls per requirement. The matrix is a quick-reference shortlist: the primary measure is the control most directly addressing the requirement on CAN, the secondary measure is the most common complement. The individual [Solutions](https://can-security.net/solutions/) entries list additional mappings and constraints that do not fit a single-row summary. ### Are these mappings legally binding? No. The mappings are guidance derived from the EmSA reference architecture and the [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) alignment work. Conformity assessment under the CRA is the responsibility of the manufacturer (and the notified body where applicable). Use this matrix to scope the design discussion, not as a substitute for a documented [Risk Assessment](https://can-security.net/risk-assessment/). --- # MCU Crypto Benchmarks Cryptographic protection has a price in flash, RAM, and time, and on a microcontroller that budget is tight. This page reports measured code size, peak stack, and per-operation time for the cryptographic primitives taken into consideration when securing a CAN FD node: SHA-256, HKDF, AES-128-GCM, Ed25519, and X25519. The figures come from the EmSA CryptoEval harness running on representative parts, so a designer can size the cost before committing to an approach. ## Cryptographic Primitives and Acceptable Truncation The overview below lists each primitive with its key material, its nonce or salt, and the size of the value it produces. The final column gives an output size that can be acceptable in a constrained node, where a shorter value trades security margin for bandwidth or storage. Truncation is sound only where the relevant standard permits it, and two of these primitives cannot be truncated at all. | Function | Key size | Nonce / salt | Full output | Acceptable truncation* | | --- | --- | --- | --- | --- | | [SHA-256 hash](https://can-security.net/resources/terms-and-definitions/#term-sha-256) | – | – | 32 B digest | 16 B (128-bit) | | [HKDF-SHA-256 derive](https://can-security.net/resources/terms-and-definitions/#term-hkdf) | IKM (variable) | 12 B salt (+7 B info) | 32 B key | 16 B (derive only what the key needs) | | [AES-128-GCM (enc / dec / auth)](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm) | 16 B (128-bit) | 12 B nonce | 16 B tag | 8 B (64-bit)† | | [Ed25519 (sign / verify)](https://can-security.net/resources/terms-and-definitions/#term-ed25519) | 32 B seed / 32 B public | – (deterministic) | 64 B signature | none (fixed structure) | | [X25519 (keygen / ECDH)](https://can-security.net/resources/terms-and-definitions/#term-x25519) | 32 B secret (+32 B peer) | – | 32 B shared secret | none (use full via a KDF) | * Truncate only where the standard permits. A SHA-256 digest may be cut to 128 bits (NIST SP 800-107), and HKDF derives only the bytes the key needs (RFC 5869). Ed25519 signatures and X25519 secrets cannot be truncated at all.† NIST SP 800-38D permits a 64-bit GCM tag only under strict per-key limits on message count and length (Appendix C). Treat it as a last resort, not a default. The measurements use two portable software libraries, both at a pinned version so the figures stay reproducible: **Mbed TLS 3.6.5** for SHA-256, HKDF, and AES-128-GCM, and **Monocypher 4.0.2** for Ed25519 and X25519. Both are open-source C libraries built from unmodified upstream sources, Mbed TLS under Apache-2.0 and Monocypher in the public domain under CC0, with no algorithm-level patches. Any figure here can therefore be traced to a specific released version rather than to a local variant. On the STM32H573 the hardware hash and AES paths run through the ST Mbed-TLS ALT drivers over the on-chip HASH and AES peripherals. ## How to Read the Benchmark Tables Every figure in the tables that follow is an Arm Compiler build at optimization level -O2, timed on a 64-byte input, taken as the minimum of twelve repeats with the measurement overhead subtracted. Each table lists the devices down the page in ascending order of core clock, three rows per device, and the functions across it. **Code** is the flash footprint in bytes, **stack** is the peak stack high-water mark in bytes, and **64 B** is the time for one operation in milliseconds. Code and stack do not depend on the payload size. A new part adds rows rather than columns, so the tables grow downward as the harness covers more devices. Some functions share a code object, so the size appears once, in the column that owns it, and the remaining columns are marked as shared. Ed25519 sign and verify share one object, carried in the verify column. For AES-128-GCM, decrypt and authenticate-only reuse the encrypt object, and the init and setup step, which builds the key schedule and the GHASH table, has no separate code of its own. X25519 has a single column because keygen and ECDH are the same operation: deriving a public key is a scalar multiplication against the curve base point, agreeing a shared secret is the same scalar multiplication against the peer public key, and the implementation runs identical constant-time code for both. A key agreement therefore costs two of these scalar multiplications per side, one to produce the ephemeral public key and one to consume the peer's. The devices span a low-end Cortex-M4F at 40 MHz, a mid Cortex-M33 at 120 MHz, a Cortex-M33 at 240 MHz that carries a hardware AES and HASH accelerator, and both cores of a dual-core part: an i.MX RT1186 whose Cortex-M33 at 240 MHz reaches its EdgeLock enclave through a mailbox rather than driving a peripheral directly, and whose Cortex-M7 at 792 MHz sets the upper bound of the set. Listing both cores of one chip is deliberate: it separates what the silicon costs from what the core running the code costs, and the two differ by roughly a factor of six on the curve operations. Between those two cores sits a sixth device: a Renesas RA8M1, a Cortex-M85 at 480 MHz whose RSIP-E51A security engine covers Ed25519 as well as AES and SHA-256. It is the first part here that offers a hardware path for the curves at all, and what that path costs is the most surprising result on this page. ## Hash, KDF, and Signature Cost The table reports code (B), stack (B), and the 64-byte time (ms) for each hash, KDF, and signature primitive at Arm Compiler -O2. On the STM32H573 the hash and derivation figures use the on-chip HASH accelerator; the curve operations have no hardware path and run in software on all boards. | Device | Metric | SHA-256 hash | HKDF-SHA-256 derive | Ed25519 verify | Ed25519 sign | X25519 scalar mult§ | | --- | --- | --- | --- | --- | --- | --- | | NXP LPC54618Cortex-M4F · 40 MHz | code (B) | 2816 | 4687 | 29916 | shared | 24632 | | stack (B) | 752 | 936 | 2228 | 1684 | 1172 | | | 64 B (ms) | 0.309 | 1.582 | 74.469 | 28.147 | 51.720 | | | NXP LPC55S16Cortex-M33 · 120 MHz | code (B) | 2836 | 4707 | 29754 | shared | 24444 | | stack (B) | 752 | 936 | 2208 | 1664 | 1152 | | | 64 B (ms) | 0.120 | 0.604 | 27.603 | 10.711 | 19.115 | | | ST STM32H573Cortex-M33 · 240 MHz · HASH accel | code (B) | 2050 | 3923 | 29754 | shared | 24444 | | stack (B) | 684 | 580 | 2208 | 1664 | 1152 | | | 64 B (ms) | 0.008‡ | 0.075‡ | 8.599 | 3.448 | 5.790 | | | NXP i.MX RT1186 M33Cortex-M33 · 240 MHz · XIP¶ | code (B) | 2836 | 4707 | 29754 | shared | 24444 | | stack (B) | 768 | 952 | 2208 | 1672 | 1152 | | | 64 B (ms) | 0.031 | 0.142 | 8.632 | 4.120 | 5.823 | | | Renesas RA8M1Cortex-M85 · 480 MHz | code (B) | 2844 | 4729 | 29424 | shared | 24526 | | stack (B) | 536 | 720 | 1996 | 1532 | 972 | | | 64 B (ms) | 0.011 | 0.056 | 2.792 | 1.053 | 1.903 | | | NXP i.MX RT1186 M7Cortex-M7 · 792 MHz · TCM | code (B) | 2966 | 4877 | 29994 | shared | 24618 | | stack (B) | 768 | 952 | 2208 | 1688 | 1144 | | | 64 B (ms) | 0.005 | 0.024 | 1.476 | 0.553 | 1.029 | | ‡ STM32H573 SHA-256 and HKDF figures use the on-chip HASH accelerator through the ST Mbed-TLS ALT driver.§ The harness times the scalar multiplication against a fixed secret key held in flash, so the figure excludes the random draw that generating a real ephemeral key needs. Budget the entropy source separately; its cost depends on the part, not on the curve.¶ The i.MX RT1186 has no internal program flash. Its M33 executes in place from external QSPI flash through a cache, so a short operation varies widely from run to run and the figure shown is the warm-cache cost. The M7 cannot fetch from that window at all: an M33 launcher copies its firmware into tightly-coupled memory first, so nothing in the measured path touches a cache or the serial flash and its figures are steady to within about two percent. Both i.MX RT1186 rows are the software path. ## AES-128-GCM Cost The software AES implementation needs a lookup table of **8892 bytes**, and where that table lives is the one configuration choice that moves these numbers. The two tables below are the same measurement under the two placements, so read them as a pair: the columns are aligned deliberately, and only the placement changes between them. Putting the table in flash costs roughly **7.4 KB more flash** and saves the **8.9 KB of RAM**, and because the table is then read through flash wait states every operation also runs slower, by 21 percent on the LPC54618 and 46 percent on the LPC55S16. RAM is the default and the faster path; flash is the option you reach for when RAM is the binding constraint. The RA8M1 shows what actually drives that penalty. It has a data cache, the flash-resident table lands in it, and the flash build comes out a few percent *faster* than the RAM build rather than slower. The rule is therefore not that flash placement is slow; it is that flash placement is slow on a part that reads flash through wait states with nothing caching it. Where a data cache is present, the placement costs almost nothing in time and the decision is only about which memory you can spare. The i.MX RT1186 appears only in the RAM table. It has no internal program flash, so the flash-table build would put the table in external QSPI, which is a different experiment rather than the same one on another part. On that part the table sits in tightly-coupled memory. The STM32H573 column in the RAM table is its on-chip AES peripheral rather than a software path, so its code figure includes the HAL AES driver. AES-CCM has no hardware path on any of these parts. **Table 1 of 2 · lookup table in FLASH** (Mbed-TLS `MBEDTLS_AES_ROM_TABLES`) Table costs 8892 B of flash, 0 B of RAM. Encrypt code about 16.5 KB. Slower than the RAM placement on a part with no data cache. *AES-128-GCM with the lookup table in flash. Code (B), stack (B), and 64-byte time (ms), Arm Compiler -O2.* | Device | Metric | init / setup | encrypt | decrypt | auth-only | | --- | --- | --- | --- | --- | --- | | NXP LPC54618Cortex-M4F · 40 MHz | code (B) | n/a | 16488 | shared | shared | | stack (B) | 840 | 496 | 512 | 448 | | | 64 B (ms) | 0.312 | 0.475 | 0.480 | 0.234 | | | NXP LPC55S16Cortex-M33 · 120 MHz | code (B) | n/a | 16608 | shared | shared | | stack (B) | 840 | 496 | 512 | 448 | | | 64 B (ms) | 0.117 | 0.244 | 0.246 | 0.107 | | | ST STM32H573Cortex-M33 · 240 MHz | code (B) | n/a | 16608 | shared | shared | | stack (B) | 840 | 496 | 512 | 448 | | | 64 B (ms) | 0.052 | 0.057 | 0.058 | 0.028 | | | Renesas RA8M1*Cortex-M85 · 480 MHz | code (B) | n/a | 16624 | shared | shared | | stack (B) | 640 | 288 | 304 | 232 | | | 64 B (ms) | 0.012 | 0.012 | 0.013 | 0.006 | | * Code runs in place from internal flash in both builds; only the lookup table moves. The RA8M1 has a data cache, so the flash-resident table costs it nothing in time, unlike the two parts here that have none. **Table 2 of 2 · lookup table in RAM** (the Mbed-TLS default) Table costs 8892 B of RAM, 0 B of flash. Encrypt code about 9.1 KB, roughly 7.4 KB less than the flash build. Faster, and the default choice. *AES-128-GCM on each device's fastest path: the lookup table in RAM on the LPC parts and in tightly-coupled memory on the i.MX RT1186 (the default software path), and the on-chip accelerator on the STM32H573. Code (B), stack (B), and 64-byte time (ms), Arm Compiler -O2.* | Device | Metric | init / setup | encrypt | decrypt | auth-only | | --- | --- | --- | --- | --- | --- | | NXP LPC54618Cortex-M4F · 40 MHz | code (B) | n/a | 9114 | shared | shared | | stack (B) | 840 | 496 | 512 | 448 | | | 64 B (ms) | 0.291 | 0.392 | 0.397 | 0.217 | | | NXP LPC55S16Cortex-M33 · 120 MHz | code (B) | n/a | 9152 | shared | shared | | stack (B) | 840 | 496 | 512 | 448 | | | 64 B (ms) | 0.098 | 0.167 | 0.169 | 0.092 | | | ST STM32H573Cortex-M33 · 240 MHz · AES accel | code (B) | n/a | 16530 | shared | shared | | stack (B) | 456 | 444 | 532 | 444 | | | 64 B (ms) | 0.010 | 0.010 | 0.011 | 0.008 | | | NXP i.MX RT1186 M33Cortex-M33 · 240 MHz · XIP¶ | code (B) | n/a | 9152 | shared | shared | | stack (B) | 856 | 512 | 528 | 464 | | | 64 B (ms) | 0.020 | 0.048 | 0.049 | 0.029 | | | Renesas RA8M1Cortex-M85 · 480 MHz | code (B) | n/a | 9386 | shared | shared | | stack (B) | 632 | 280 | 296 | 224 | | | 64 B (ms) | 0.012 | 0.013 | 0.013 | 0.006 | | | NXP i.MX RT1186 M7Cortex-M7 · 792 MHz · TCM | code (B) | n/a | 9502 | shared | shared | | stack (B) | 1296 | 512 | 528 | 464 | | | 64 B (ms) | 0.003 | 0.007 | 0.007 | 0.004 | | ¶ Both i.MX RT1186 rows are the software path. The part does carry an EdgeLock enclave that performs AES-128-GCM, but each call crosses a mailbox to a separate security core, which costs 0.074 ms against 0.048 ms in software on a 64-byte payload. Only the M33 may call it: the enclave is granted to one core at a time. An enclave earns its place by holding keys the application core never sees, not by speed. ## What AES-256-GCM Changes Every figure above is AES-128-GCM. The harness also measured AES-256-GCM on all six cores, and the result is worth stating plainly because it is easy to assume the stronger key costs more than it does. Across every build, at both optimization levels and under both compilers, **AES-256-GCM needs exactly the same code and exactly the same stack as AES-128-GCM**. Not approximately: the same byte counts, because one AES core serves both key lengths and only the length of the key schedule differs. The whole cost lands in time, and it is modest. A 256-bit key runs 14 rounds where a 128-bit key runs 10, but the GHASH half of GCM does not change, so the penalty on a 64-byte payload settles between 11 and 14 percent on every core measured, and the RA8M1 sits inside that band at 13 percent. Loading the key costs a little more too, since the schedule is longer. For a design that is choosing between the two, the practical reading is that key length is close to free here. AES-256 does not change the flash budget, does not change the RAM budget, and leaves the frame-rate headroom essentially intact. If the reason to prefer a 256-bit key is a policy requirement, a longer service life, or a margin against future analysis, none of those has to be argued against a memory cost, because there is not one. The argument is only ever about the roughly one-eighth of extra time per operation. ## What a Hardware Accelerator Changes Three of these parts do cryptographic work in dedicated hardware, and how the core reaches that hardware matters more than whether the datasheet lists an accelerator. The STM32H573 exposes HASH and AES as memory-mapped peripherals: the core writes the data, reads the result, and pays little overhead. The i.MX RT1186 puts cryptography inside an EdgeLock enclave, a separate security core reached by passing messages through a mailbox, so every call pays a fixed round trip. The RA8M1 sits between the two: its RSIP-E51A is a register-mapped engine like the STM32 peripheral, but it works only on keys wrapped inside it, so every keyed operation reloads a key that the core never sees. The three arrangements do not merely differ in degree. One is several times faster than software, one is slower at small payloads, and one is both, depending on the primitive. | Device | Path | SHA-256, 64 B | AES-128-GCM encrypt, 64 B | Code, SHA / AES | | --- | --- | --- | --- | --- | | STM32H573 | software | 0.046 ms | 0.046 ms | 2836 / 9152 B | | STM32H573 | on-chip peripheral | **0.008 ms** | **0.010 ms** | 2050 / 16530 B | | i.MX RT1186 M33 | software | **0.031 ms** | **0.048 ms** | 2836 / 9152 B | | i.MX RT1186 M33 | EdgeLock enclave | 0.103 ms | 0.074 ms | 43224 / 47894 B | | Renesas RA8M1 | software | 0.011 ms | **0.013 ms** | 2844 / 9386 B | | Renesas RA8M1 | RSIP-E51A engine | **0.004 ms** | 0.022 ms | 52154 / 57340 B | The RT1186 and RA8M1 code figures are one shared driver, not per-primitive code: a command interface to a separate security processor rather than a register-mapped peripheral. Count it once, not once per row. The peripheral wins outright: SHA-256 about six times faster, AES-128-GCM about four and a half, HKDF from 0.228 to 0.075 ms, and lower stack as well. Its one cost is flash, because that code figure includes the ST HAL driver. The enclave buys something a peripheral cannot. It is a true on-chip hardware security module: a separate core with its own memory that will not accept a plaintext key at all. Keys are generated inside it and referenced only by a handle, so application firmware never holds one and cannot surrender it when that firmware is compromised. That is a higher assurance level than an accelerator the core has to feed with the key, and it costs about 0.140 ms per 64-byte operation. Because the round trip is fixed rather than proportional, it also fades as payloads grow: at 256 bytes the enclave already beats software on AES-GCM. Let it hold and derive key material, then run per-frame protection elsewhere. The RA8M1 engine splits the difference, and the split is instructive. On SHA-256 it wins comfortably, and its lead grows with payload because a hash takes no key: 0.004 ms against 0.011 in software at 64 bytes, and five times faster at 256 bytes. On AES-GCM it loses at 64 bytes and wins at 256, for the same reason the enclave does. Each call spends roughly ten thousand cycles before it touches the data, because the engine takes its wrapped key at every operation and the driver offers no way to leave a key loaded, while the software path builds its key schedule once. Read those two rows as a fixed cost plus a rate, not as a single verdict. The curves are where the assumption breaks. Until this part, no device in the set had a hardware path for Ed25519 or X25519, so there was nothing to measure. The RSIP-E51A does implement Ed25519, and it is **eight to eleven times slower than software on the same chip**: 11.1 ms to sign against 1.1 ms, and 22.7 ms to verify against 2.8 ms. The figure does not move with payload size, so it is a fixed property of the engine rather than an artifact of the measurement, and verify costs almost exactly twice sign, which is the ratio the mathematics predicts. A Cortex-M85 running well-tuned software is simply quicker at this than the security engine beside it. The lesson is not that security engines are slow. It is that **an accelerator is worth what it accelerates on your part, and nothing more**. Check the primitive you actually depend on, at the payload size you actually send, before you plan a design around the block diagram. What these engines reliably offer is key custody: on both the RT1186 and the RA8M1 the key is generated inside the hardware and the application firmware never holds it, so compromising the firmware does not surrender the key. That is worth paying for on its own terms. It is not a speed argument. ## Compiler and Optimization Level The tables above are Arm Compiler (armclang) builds at -O2. The harness also builds the same sources with GNU gcc (arm-none-eabi-gcc), and both compilers at -O3, which makes it possible to say what the toolchain contributes rather than the silicon. The short version is that the compiler moves code size far more than it moves speed, that neither compiler wins across the board, and that -O3 is not the free improvement it looks like. **Code size splits sharply by primitive.** On the same part and the same sources, armclang emits 29754 bytes for the shared Ed25519 object against 16368 under gcc, and 24444 for X25519 against 12520, so armclang is 80 to 95 percent larger on the elliptic-curve code, because it inlines and unrolls the 25519 field arithmetic. AES-128-GCM follows the same direction, 9152 against 6084. The permutation-heavy primitives reverse it completely, and by more: for Ascon-AEAD128 armclang emits 13656 bytes against 23296 under gcc, and for Ascon-Hash256 4746 against 13928, so gcc is nearly three times the size there. SHA-256 and HKDF sit close either way, within about five and twelve percent respectively, small either way in absolute terms. **Whether that size buys speed depends on the core.** On the Cortex-M33 parts it largely does not: on the LPC55S16 armclang spends 82 percent more flash on the Ed25519 object and verifies a signature in 27.603 ms against gcc's 26.548, slightly slower for much more code, while the STM32H573 and the i.MX RT1186 M33 land within about one percent either way. The Cortex-M7 is the exception that explains the strategy: there armclang verifies in 1.476 ms against gcc's 1.735 and runs X25519 in 1.029 against 1.226, a lead of 17 to 19 percent, because a dual-issue core fetching from tightly-coupled memory can actually use the unrolled field arithmetic. The Cortex-M4F reverses it once more, with gcc 11 to 13 percent faster on the LPC54618. Ascon is the one primitive where armclang is both smaller and faster on every part measured. **-O3 costs code and returns very little.** Under armclang it grows the Ed25519 object from 29754 to 31984 bytes, X25519 from 24444 to 26522 and AES-128-GCM encrypt from 9152 to 10038, while the 64-byte times move by a couple of percent in either direction, including one clear regression: X25519 on the STM32H573 slows from 5.790 to 6.742 ms, about 16 percent worse for 8 percent more flash. Under gcc the code growth is far steeper, Ed25519 from 16368 to 22908 bytes and Ascon-AEAD128 from 23296 to 36524, and there the extra size does sometimes buy speed, with AES-128-GCM on the STM32H573 dropping from 0.056 to 0.048 ms and Ascon on the LPC55S16 from 0.147 to 0.122. Those gains are not consistent either: gcc at -O3 speeds X25519 up by 6 percent on the LPC55S16 while slowing it by 7 percent on the STM32H573. Two conclusions follow for a constrained node. Keep -O2 as the default: these primitives are already compute-bound, and on a wait-stated flash a larger binary can cost more than the extra inlining saves. Then, if one primitive genuinely sits on the critical path, measure that primitive under both compilers rather than trusting a general reputation, because the direction of the difference changes from one algorithm to the next. ## Which Primitive for Which Job The tables above price each primitive; this section says where each one earns that cost. On a constrained CAN node the rule of thumb is to reach for the symmetric primitives first, since they run two to three orders of magnitude faster than the curves, and to add public-key operations only where a shared secret cannot do the job. The table maps each function to the work it suits and the work it does not. | Function | Reach for it when | Not the tool for | | --- | --- | --- | | [SHA-256 hash](https://can-security.net/resources/terms-and-definitions/#term-sha-256) | You need a fixed fingerprint of data with no secret involved: a firmware image digest, a secure-boot measurement, or the hash that HKDF and Ed25519 build on. | Authentication on its own. A bare hash carries no key, so anyone can recompute it; give it a key through HKDF or a MAC. | | [HKDF-SHA-256 derive](https://can-security.net/resources/terms-and-definitions/#term-hkdf) | You hold one secret and need several: per-device and per-purpose keys from a single root, or session keys expanded from an X25519 shared secret. | Protecting data in transit. It produces keys, not ciphertext or tags; feed its output to AES-128-GCM. | | [AES-128-GCM](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm) | You need authenticated encryption, or authentication alone through GMAC, on the wire: per-frame protection, protected object access, or an encrypted and authenticated firmware image. This is the default symmetric choice on CAN. | Reusing a nonce. Every message under one key needs a fresh nonce; a single repeat breaks both confidentiality and integrity (see the per-key limits in NIST SP 800-38D). | | [Ed25519 (sign / verify)](https://can-security.net/resources/terms-and-definitions/#term-ed25519) | One party signs and many verify, with no shared secret to distribute: manufacturer firmware signing, device identity certificates, or any claim that must hold up to a third party. | Routine per-frame traffic. At about 16 to 30 KB of flash and software-only on these parts, reserve it for update and identity, not the hot path. | | [X25519 (keygen / ECDH)](https://can-security.net/resources/terms-and-definitions/#term-x25519) | Two parties must agree a fresh secret over an untrusted channel, giving forward secrecy without a pre-shared key. | Using the raw output as a key. Always pass the shared secret through HKDF first, and never truncate it or use it directly. | In practice the two families combine rather than compete. A capable node uses X25519 to agree a session secret and Ed25519 to authenticate the peer, then hands the secret to HKDF and carries the traffic under AES-128-GCM. A very constrained node skips the curves entirely: one root in a hardware module, HKDF for the key ladder, and AES-128-GCM for every protected frame and object. The [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) page weighs that choice in full. Two properties are worth designing for from the start. Nonce uniqueness under AES-128-GCM is a correctness requirement, not a tuning option, so the same message counter that provides replay protection should also supply the nonce and trigger a key refresh before the counter wraps. The second is crypto-agility: because a fielded device outlives any single algorithm, keep the choice replaceable: the symmetric primitives hold a comfortable margin at AES-256 and SHA-256, while the curves are the ones most likely to migrate to post-quantum successors, so the update path should be able to carry a new algorithm. [BSI TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102) [RFC 5869](https://can-security.net/resources/terms-and-definitions/#term-rfc-5869) [NIST SP 800-108](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-108) ## Frequently Asked Questions ### How much flash does public-key crypto need on a CAN node? The elliptic-curve primitives dominate. In these builds Ed25519, with sign and verify sharing one object, is about 30 KB of flash and X25519 about 24 KB, plus around 2 KB of stack. By comparison SHA-256 and HKDF together fit in under 8 KB, and AES-128-GCM in 9 to 17 KB depending on whether the lookup table sits in RAM or flash. A node that only needs symmetric protection is far cheaper than one that also verifies signatures. ### Is a hardware crypto accelerator worth it? It depends on how the accelerator is reached. A memory-mapped peripheral is a clear win: on the STM32H573 the on-chip HASH and AES blocks run SHA-256 about six times faster than software and AES-128-GCM about four and a half times, on less stack. An enclave reached through a mailbox is a different trade: on the i.MX RT1186 each call pays a fixed round trip, so a 64-byte AES-128-GCM operation takes about 55 percent longer than software and SHA-256 more than three times as long. That cost fades as payloads grow, and it buys a true hardware security module: the enclave will not accept a plaintext key, so a key generated inside it is never held by application firmware. Isolation, not speed, is what it delivers. A third kind sits between them: the RA8M1 security engine is register-mapped, yet it takes its key on every call, so it runs SHA-256 nearly three times faster than software and AES-128-GCM slower at 64 bytes. Its Ed25519 is the sharpest warning in the set, at eight to eleven times slower than software on the same chip. Check the primitive and the payload size you actually use before planning around an accelerator. ### Why report time for a 64-byte payload? Sixty-four bytes is the maximum payload of a single CAN FD frame, so it is the natural unit for per-frame protection on this bus. The harness also measured 8-byte and 256-byte inputs; 64 bytes is reported here as the representative frame-sized case. For the public-key primitives the time is effectively independent of payload size, because they operate on fixed-size keys and hashes. --- # IEC 62443-3-3 SL2 Requirements [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)-3-3 defines a set of system requirements (SRs), grouped under seven Foundational Requirements (FRs), and specifies which SRs and which requirement enhancements apply at each Security Level (SL1 to SL4). The matrix below covers **only the CAN-relevant SRs at SL2**, mapped to the primary and secondary defensive measures available for CAN-based products on this site. SRs that govern human-user account management, session locks, mobile code, portable device controls, and PKI-style authentication apply to the surrounding control system rather than to the CAN bus and are deliberately omitted here. Wording in the second column is a short paraphrase for matrix use; the binding text is the standard itself. ## Requirement-to-Measure Matrix Each row names an IEC 62443-3-3 SR identifier, the Foundational Requirement it belongs to, a short paraphrase of the SL2 obligation, and the controls that address it on CAN. Primary is the most direct control; secondary is the most common complement. Full text and the exact SL1-to-SL4 enhancement pattern are in IEC 62443-3-3 itself. *CAN-relevant IEC 62443-3-3 system requirements at Security Level 2, mapped to defensive measures available for CAN-based products.* | SR | Requirement (short) | Measures | | --- | --- | --- | | **SR 1.2** | Identify and authenticate every device and process | Primary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) Secondary: [Frame Security](https://can-security.net/solutions/frame-security/) | | **SR 1.5** | Manage authenticators across full lifecycle | Primary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) Secondary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) | | **SR 1.13** | Authenticate access via untrusted networks | Primary: [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) Secondary: [Access Limitation](https://can-security.net/risk-assessment/access-limitation/) | | **SR 2.1** | Enforce authorization on all use | Primary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) Secondary: [Frame Security](https://can-security.net/solutions/frame-security/) | | **SR 2.8** | Generate audit records for security events | Primary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 2.11** | Timestamp audit records reliably | Primary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 2.12** | Non-repudiation of security-relevant actions | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 3.1** | Protect integrity of transmitted information | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [Local Injection Detection](https://can-security.net/solutions/local-injection-detection/) | | **SR 3.4** | Protect software and information integrity | Primary: [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) Secondary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) | | **SR 3.8** | Protect session integrity including replay | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 4.1** | Protect confidentiality of information | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) | | **SR 4.3** | Use recognized cryptographic mechanisms | Primary: [Frame Security](https://can-security.net/solutions/frame-security/) Secondary: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) | | **SR 5.1** | Partition system into zones and conduits | Primary: [Zoning and Segmentation](https://can-security.net/solutions/zoning-segmentation/) | | **SR 5.2** | Protect each zone boundary | Primary: [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) | | **SR 6.2** | Continuously monitor security events | Primary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 7.1** | Protect against denial of service | Primary: [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) Secondary: [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | | **SR 7.6** | Minimize network and security exposure | Primary: [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) Secondary: [Access Limitation](https://can-security.net/risk-assessment/access-limitation/) | The full IEC 62443-3-3 text, including the binding wording of every SR and the exact SL1-to-SL4 enhancement pattern, is published by the IEC. The series overview is at [iec.ch/cyber-security](https://www.iec.ch/cyber-security). For methodology context on how these system requirements relate to the risk-assessment process that produces a target SL, see [IEC 62443-Style Assessment](https://can-security.net/risk-assessment/iec-62443/). ## Component Requirements (IEC 62443-4-2) The matrix above lists system requirements from IEC 62443-3-3. IEC 62443-4-2 states the parallel *component* requirements that a single device must meet, and the Key Management section refers to these by their CR identifiers. The CAN-relevant ones at Security Level 2 are collected here so those references resolve to a definition. The numbering mirrors the system requirements, so CR 1.2 corresponds to SR 1.2, and so on. *CAN-relevant IEC 62443-4-2 component requirements at Security Level 2, with the Key Management pages that cover each.* | CR | Requirement (short) | Covered under | | --- | --- | --- | | **CR 1.2** | Identify and authenticate the device | [Regulations & Standards](https://can-security.net/key-management/regulations-standards/) | | **CR 1.5** | Manage authenticators across the lifecycle | [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) | | **CR 1.8** | PKI certificates, when a PKI is used | [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) | | **CR 1.9** | Strength of public-key authentication | [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) | | **CR 1.14** | Symmetric-key authentication | [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) | | **CR 3.1** | Communication integrity | [Frame Security](https://can-security.net/solutions/frame-security/) | | **CR 4.2** | Zeroize keys at end of life | [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) | | **CR 4.3** | Use of proven cryptography | [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) | > ### EmSA Security Consulting > For the two cases not covered by the off-the-shelf catalog and the courses, we review how the CAN-relevant SRs map to your risk-assessment record, or customize a Solutions shell where the SL2 baseline needs reinforcement at SL3 with cryptographic frame authentication. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### Which SRs from IEC 62443-3-3 are shown on this page? Only the system requirements at Security Level 2 that have a meaningful application to CAN or CAN FD bus security. IEC 62443-3-3 also includes SRs about human-user account management, session locks, mobile code, portable device controls, and PKI-style authentication that do not apply at the bus level and are out of scope for this reference. The skipped SRs remain relevant for the surrounding control system, just not for the CAN-specific shells cataloged on this site. ### What does Security Level 2 mean? IEC 62443 SL2 is the second of four Security Levels. SL1 protects against incidental misuse; SL2 protects against intentional violation using simple means with low resources, generic skills, and low motivation. SL3 raises the bar to moderate resources with technology-specific skills, and SL4 to extended resources. For most industrial CAN products, SL2 is the practical baseline; reaching SL3 typically requires cryptographic frame authentication via [Frame Security](https://can-security.net/solutions/frame-security/). ### Are these mappings binding? No. The mappings are guidance derived from the EmSA reference architecture. [IEC 62443-3-3](https://www.iec.ch/cyber-security) itself is the binding text; compliance is the responsibility of the manufacturer or integrator and, where applicable, the certifying body. Use this matrix to scope the design discussion, not as a substitute for a documented [Risk Assessment](https://can-security.net/risk-assessment/). --- # Secure CAN FD Microcontrollers Cryptographic protection of CAN traffic starts with the silicon. The controls cataloged on this site assume a device that can both speak CAN FD and hold a key where firmware cannot read it back. This page lists microcontroller families that meet both conditions, so a designer scoping a secured CAN node can see which parts carry the hardware to support it. A family appears only when it has at least one CAN FD interface and at least one hardware security feature. ## Microcontroller Families with CAN FD and Hardware Security The table below is sorted by core architecture, weakest performance first, then by top clock speed within each architecture. Read it as an orientation aid, not a recommendation: it records what each family offers on paper, compiled from public product pages and datasheets. Once a part is in view, the [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page measures what the cryptographic primitives actually cost in flash, stack, and time on parts like these. *Microcontroller families combining at least one CAN FD interface with at least one hardware security feature, sorted by core architecture (weakest first) then top clock speed. Compiled from public datasheets; neutral orientation aid, not an endorsement. Last reviewed 30 July 2026.* | Mfr | Family | Architecture | Max MHz | CAN FD | Security features | | | | --- | --- | --- | --- | --- | --- | --- | --- | | TRNG | Key store | Accelerators | | | | | | | Microchip | [PIC32CM JH](https://www.microchip.com/en-us/products/microcontrollers/32-bit-mcus/pic32-sam/pic32cm-jh) | Cortex-M0+ | 48 | 2 | – | – | SHA-256 | | Microchip | [dsPIC33C MPT](https://www.microchip.com/en-us/products/microcontrollers/dspic-dscs/dspic33c/secure-dscs) | dsPIC33 DSC (16-bit) | 100 | 2 | ✓ | ✓ | AES-256, ECC, SHA-2/3 | | NXP | [MCX E24](https://www.nxp.com/products/MCX-E24) | Cortex-M4F | 112 | 3 | ✓ | ✓ | AES-128 (CSEc) | | Microchip | [SAM E5x](https://www.microchip.com/en-us/solutions/technologies/motor-control-and-drive/motor-control-products/32-bit-microcontrollers-for-motor-control-applications/sam-d5x-and-e5x) | Cortex-M4F | 120 | 2 | ✓ | – | AES-256, RSA/ECC (PUKCC), SHA | | Infineon | [PSoC 6](https://www.infineon.com/products/microcontroller/32-bit-psoc-arm-cortex/psoc-6-m4-mcu) | Cortex-M4F | 150 | 1 | ✓ | ✓ | AES, 3DES, RSA, ECC, SHA | | ST | [STM32G4](https://www.st.com/en/microcontrollers-microprocessors/stm32g4-series.html) | Cortex-M4 | 170 | 3 | ✓ | – | AES-256 (crypto line) | | Nuvoton | [M467](https://www.nuvoton.com/products/microcontrollers/arm-cortex-m4-mcus/m467-ethernet-crypto-series/) | Cortex-M4F | 200 | 4 | ✓ | ✓ | AES-256, RSA, ECC, SHA-2, HMAC | | Renesas | [RX26T](https://www.renesas.com/en/products/rx26t) | RXv3 | 120 | 1 | ✓ | ✓ | AES-256, SHA (TSIP-Lite) | | Espressif | [ESP32-C5](https://www.espressif.com/en/products/socs/esp32-c5) | RISC-V (RV32) | 240 | 2 | ✓ | ✓ | AES, RSA, ECC, SHA-2, HMAC | | Renesas | [RA4C1](https://www.renesas.com/en/products/ra4c1) | Cortex-M33 | 80 | 1 | ✓ | ✓ | AES, ECC, SHA (RSIP) | | ST | [STM32L5](https://www.st.com/en/microcontrollers-microprocessors/stm32l5-series.html) | Cortex-M33 | 110 | 1 | ✓ | ✓ | AES-256, RSA/ECC (PKA), SHA | | ST | [STM32C5](https://www.st.com/en/microcontrollers-microprocessors/stm32c5-series.html) | Cortex-M33 | 144 | 2 | ✓ | ✓ | AES, SAES, PKA (RSA/ECC), SHA | | NXP | [LPC55Sxx](https://www.nxp.com/products/processors-and-microcontrollers/arm-microcontrollers/general-purpose-mcus/lpc5500-arm-cortex-m33:LPC5500_SERIES) | Cortex-M33 (dual) | 150 | 2 | ✓ | ✓ | AES, RSA, ECC (CASPER), SHA | | NXP | [MCX N94x](https://www.nxp.com/products/MCX-N94-N54-N53-N52-N24) | Cortex-M33 (dual) | 150 | 2 | ✓ | ✓ | AES-256, ECC, SHA-2 (EdgeLock) | | ST | [STM32U5](https://www.st.com/en/microcontrollers-microprocessors/stm32u5-series.html) | Cortex-M33 | 160 | 1 | ✓ | ✓ | AES, RSA/ECC (PKA), SHA | | Infineon | [PSoC Control C3](https://www.infineon.com/products/microcontroller/32-bit-psoc-arm-cortex/32-bit-psoc-control-arm-cortex-m33-mcu) | Cortex-M33 | 180 | 2 | ✓ | ✓ | AES-128, RSA, ECC, SHA-256 | | GigaDevice | [GD32E5xx](https://www.gigadevice.com/product/mcu/high-performance-mcus/gd32e5xx-series) | Cortex-M33 | 180 | 3 | ✓ | ✓ | AES, 3DES, RSA/ECC, SHA | | GigaDevice | [GD32F5xx](https://www.gigadevice.com/product/mcu/high-performance-mcus/gd32f5xx-series) | Cortex-M33 | 200 | 2 | ✓ | ✓ | AES, 3DES, RSA/ECC, SHA | | Renesas | [RA6](https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus?field-series-name=RA6) | Cortex-M33 | 200 | 2 | ✓ | ✓ | AES, RSA, ECC, SHA, GHASH | | GigaDevice | [GD32G5xx](https://www.gigadevice.com/product/mcu/high-performance-mcus/gd32g5xx-series) | Cortex-M33 | 216 | 3 | ✓ | ✓ | AES, 3DES, SHA | | NXP | [MCX A26](https://www.nxp.com/products/MCX-A265-A266) | Cortex-M33 | 240 | 2 | ✓ | ✓ | AES-256 (SGI), RSA/ECC (PKC) | | ST | [STM32H5](https://www.st.com/en/microcontrollers-microprocessors/stm32h5-series.html) | Cortex-M33 | 250 | 2 | ✓ | ✓ | AES, SAES, RSA/ECC (PKA), SHA | | Nordic | [nRF54H20](https://www.nordicsemi.com/Products/nRF54H20) | Cortex-M33 (multi-core) | 320 | 1 | ✓ | ✓ | AES, ChaCha20, ECC, Ed25519, SHA-2/3 | | TI | [C2000 F28P65x](https://www.ti.com/product/TMS320F28P650DK) | C28x DSP (dual) | 200 | 2 | – | ✓ | AES | | NXP | [S32K3](https://www.nxp.com/products/S32K3) | Cortex-M7 | 240 | 8 | ✓ | ✓ | AES, RSA, ECC, SHA-2 (HSE) | | Microchip | [SAM E7x/V7x](https://www.microchip.com/en-us/products/microcontrollers/32-bit-mcus/pic32-sam/sam-e) | Cortex-M7 | 300 | 2 | ✓ | – | AES-256, SHA | | Microchip | [PIC32CZ CA](https://www.microchip.com/en-us/products/microcontrollers/32-bit-mcus/pic32-sam/pic32cz-ca) | Cortex-M7 | 300 | 6 | ✓ | ✓ | AES, 3DES, ChaCha20, RSA, ECC, SHA (HSM) | | Infineon | [XMC7000](https://www.infineon.com/products/microcontroller/32bit-industrial-arm-cortex-m/xmc7000-m7) | Cortex-M7 (dual) | 350 | 2 | ✓ | ✓ | AES, RSA, ECC, SHA | | ST | [STM32H7](https://www.st.com/en/microcontrollers-microprocessors/stm32h7-series.html) | Cortex-M7 | 550 | 3 | ✓ | – | AES-256, 3DES, SHA (crypto line) | | GigaDevice | [GD32H7xx](https://www.gigadevice.com/product/mcu/high-performance-mcus/gd32h7xx-series) | Cortex-M7 | 600 | 3 | ✓ | ✓ | AES, 3DES, SHA | | ST | [STM32H7R/S](https://www.st.com/en/microcontrollers-microprocessors/stm32h7rs-series.html) | Cortex-M7 | 600 | 2 | ✓ | ✓ | AES, ECC (PKA), SHA (S line) | | NXP | [i.MX RT1170](https://www.nxp.com/products/i.MX-RT1170) | Cortex-M7 + M4 | 1000 | 3 | ✓ | ✓ | AES, 3DES, RSA-4096, ECC, SHA (PUF) | | Infineon | [AURIX TC3xx](https://www.infineon.com/products/microcontroller/32-bit-tricore/aurix-tc3xx) | TriCore (multi-core) | 300 | 3 | ✓ | ✓ | AES-128, ECC, SHA-2 (HSM) | | Infineon | [AURIX TC4x](https://www.infineon.com/products/microcontroller/32-bit-tricore/aurix-tc4x) | TriCore (multi-core) | 500 | 5 | ✓ | ✓ | AES, ECC, SHA (HSM + CSRM) | | Nuvoton | [M55M1](https://www.nuvoton.com/products/microcontrollers/arm-cortex-m55-mcus/m55m1-series/) | Cortex-M55 | 220 | 2 | ✓ | ✓ | AES-256, RSA-4096, ECC-571, SHA-512 | | ST | [STM32N6](https://www.st.com/en/microcontrollers-microprocessors/stm32n6-series.html) | Cortex-M55 | 800 | 3 | ✓ | ✓ | AES ×2 (DPA-hard), ECC (PKA), SHA | | Renesas | [RA8](https://www.renesas.com/en/products/microcontrollers-microprocessors/ra-cortex-m-mcus?field-series-name=RA8) | Cortex-M85 | 480 | 2 | ✓ | ✓ | AES, RSA, ECC, SHA-2/3, Ed25519 (RSIP) | | TI | [AM263x](https://www.ti.com/product/AM2632) | Cortex-R5F | 400 | 4 | ✓ | ✓ | AES, 3DES, RSA/ECC (PKA), SHA-2 (HSM) | | TI | [AM243x](https://www.ti.com/product/AM2434) | Cortex-R5F (+M4F) | 800 | 2 | ✓ | ✓ | AES, 3DES, RSA/ECC (PKA), SHA-2 (SA2UL) | | Renesas | [RZ/T2M](https://www.renesas.com/en/products/rz-t2m) | Cortex-R52 (dual) | 800 | 2 | ✓ | ✓ | AES, RSA, ECC, SHA (RSIP) | ## Frequently Asked Questions ### Why does this table list only CAN FD parts? Cryptographic frame protection needs room for an authentication tag and a freshness counter, and the classical CAN payload of eight bytes leaves almost none. CAN FD carries up to 64 bytes per frame, which is what makes authenticated and encrypted CAN traffic practical. A controller that pairs a CAN FD interface with on-chip security is therefore the natural target for the controls cataloged on this site, so the table is scoped to that combination. A part qualifies only when it has at least one CAN FD interface and at least one hardware security feature. ### What counts as secure key storage? Any on-chip mechanism that holds key material so that firmware and an attacker with debug access cannot read it back. In practice this ranges from a simple write-only or one-time-programmable key region, through immutable secure-boot root keys, to a physically unclonable function or a separate security subsystem such as an HSM or secure enclave that performs cryptographic operations without ever exposing the key. The table marks the feature as present when the datasheet documents such a mechanism; the note names which kind. ### Does listing a part imply a recommendation? No. The table is a neutral orientation aid compiled from public product pages and datasheets. It records what the silicon offers, not a judgment of fitness for any particular design, and inclusion is not an endorsement. EmSA has no commercial relationship with the manufacturers listed. Confirm every specification against the current datasheet before making a selection, because vendors revise part lineups and feature sets over time. --- # Terms and Definitions Common terms used across this reference: the CAN protocols and higher-layer protocols, the EU regulations that drive cybersecurity obligations for industrial products, the standards and guidelines that operationalize those obligations, and the cryptographic primitives that the CAN-specific defensive controls rely on. Entries cite their source standard or specification where one exists. ## CAN Protocols and Higher-Layer Protocols - **CAN**. Controller Area Network. A multi-master, message-oriented serial bus standardized in ISO 11898, widely deployed in machinery, industrial automation, and embedded systems. Classical CAN supports 8-byte payloads at up to 1 Mbit/s. - **CAN FD**. CAN with Flexible Data-rate. Extension of classical CAN with payloads up to 64 bytes and a higher bit rate during the data phase. Standardized in ISO 11898-1:2015. - **CAN XL**. Third-generation CAN, sitting above CAN FD in the CAN family. Payloads up to 2048 bytes and higher data-phase bit rates than CAN FD. Standardized in ISO 11898-1:2024. The cryptographic security extension defined for the CAN XL data-link layer is CANsec. - **CANopen**. Higher-layer protocol on top of CAN, maintained by CiA. **CANopen CC** (for Classical CAN) is specified in **CiA 301**; **CANopen FD** (for CAN FD) is specified in **CiA 1301**. Both define object dictionaries, PDOs, SDOs, and network management primitives. - **CiA** (CAN in Automation). International users' and manufacturers' group based in Nuremberg, Germany. Maintains the CANopen specifications (CiA 301 for Classical CAN, CiA 1301 for CAN FD) and the broader CiA document series, including many device and application profiles. - **J1939**. SAE higher-layer protocol on CAN used in off-highway, agricultural, construction and some stationary applications. Uses 29-bit identifiers and PGN-based message structure supporting source and destination adressing. - **FireCAN**. CAN-based higher-layer protocol used in fire fighting equipment. Original version was "loosely based" on CANopen, now standardization process is underway to harmonize it with CANopen. - **CleANopen**. CANopen application profile for municipal special-purpose vehicles (refuse collection, street cleaning, winter service). Standardizes the device profiles and process-data exchange between truck body, chassis, and operator console. Specified in **CiA 422**. ## Regulations - **CRA** (Cyber Resilience Act). EU Regulation 2024/2847 establishing horizontal cybersecurity requirements for products with digital elements. Annex I lists the essential cybersecurity requirements. See [Why Now](https://can-security.net/why-now/). - **NIS 2** (Network and Information Security Directive). Directive (EU) 2022/2555. Cybersecurity obligations for essential and important entities across critical sectors. See [Why Now](https://can-security.net/why-now/). - **Machinery Regulation**. Regulation (EU) 2023/1230, applicable from 20 January 2027. Replaces the Machinery Directive and adds explicit cybersecurity-related essential health and safety requirements for machinery, including protection of safety-relevant control signals carried over CAN. See [Why Now](https://can-security.net/why-now/). - **RED** (Radio Equipment Directive). Directive 2014/53/EU. Activated for cybersecurity by Commission Delegated Regulation (EU) 2022/30, which adds essential requirements for connected radio equipment. Harmonized standards EN 18031-1/-2/-3:2024 specify the risk-assessment and risk-reduction process. See [Why Now](https://can-security.net/why-now/). ## Standards and Guidelines - **IEC 62443**. Series of international standards for security of industrial automation and control systems. Defines Security Levels SL1–SL4 and detailed system and component requirements. Part 3-2 covers risk assessment, 3-3 system requirements, 4-1 product development lifecycle, 4-2 component requirements. See [IEC 62443-Style Assessment](https://can-security.net/risk-assessment/iec-62443/). - **ISO/IEC 27005**. Information security risk management. IT-leaning; oriented to enterprise information assets rather than control-system equipment. - **ISO/IEC 27019**. Energy-sector control-systems overlay on ISO/IEC 27002. Used where the deployment is specifically a power-utility installation. - **NIST SP 800-30**. NIST Special Publication 800-30. US federal guidance for information-system risk assessments. Documentation-heavy, common in government and government-supplier contexts. - **NIST SP 800-82**. NIST Special Publication 800-82, the Guide to Operational Technology Security. The leading US reference for industrial control system cybersecurity, complementary to IEC 62443. - **EN 303 645**. ETSI EN 303 645: cybersecurity baseline for consumer Internet of Things devices. - **EN 18031**. Harmonized standards EN 18031-1/-2/-3:2024 under the Radio Equipment Directive 2014/53/EU as activated by Commission Delegated Regulation (EU) 2022/30. Includes a risk-assessment and risk-reduction process for connected radio equipment. - **BSI TR-02102**. BSI Technical Guideline on cryptographic mechanisms: recommended algorithms, key lengths, and operating modes. The reference for "BSI-approved" in this site. - **ISO/IEC 9798**. Entity authentication. Multi-part international standard defining mechanisms by which two parties prove their identities to each other. Part 1 covers the general model; **Part 2 (ISO/IEC 9798-2)** specifies mechanisms using symmetric encipherment algorithms, including the one-pass, two-pass, and three-pass challenge/response constructions. Used by [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/). - **NIST SP 800-57**. NIST recommendation for key management: the full lifecycle of cryptographic keys, including generation, establishment, storage, rotation, and destruction. The reference for key-management practice cited throughout this site. - **NIST SP 800-108**. NIST recommendation for key derivation using pseudorandom functions. Defines the counter-mode, feedback-mode, and double-pipeline constructions that derive many purpose-specific keys from one root key by binding a label and context into each step. The reference for the key-ladder derivation used in symmetric key management. - **NIST SP 800-38F**. NIST recommendation for key wrapping: encrypting cryptographic keys under a key-encryption key for protected storage or transport. Specifies the AES key wrap constructions (KW and KWP). The reference for holding root keys outside a hardware module. - **NIST SP 800-90A**. NIST recommendation for random number generation using deterministic random bit generators (DRBGs). Specifies the approved DRBG constructions that expand a small seed of entropy into cryptographically strong key material. The reference for how a device turns raw entropy into keys. - **NIST SP 800-90B**. NIST recommendation for the entropy sources that seed a DRBG: how to design a noise source, estimate its entropy, and run the health tests that confirm it keeps producing unpredictable output. The reference for validating the hardware random number generator behind key generation. - **ISO/IEC 27001**. International standard specifying the requirements for an information-security management system (ISMS): the organizational processes for managing security risk, distinct from the product and component controls of IEC 62443. - **FIPS 140-2**. US federal standard of security requirements for cryptographic modules, covering key storage and protection. Superseded by FIPS 140-3 in 2026, though 140-2 validations remain widely referenced. Commonly cited alongside its international counterpart ISO/IEC 19790. - **ISO/IEC 19790**. International standard of security requirements for cryptographic modules, the counterpart to FIPS 140-2. The reference for hardware-backed key storage above Security Level 2. - **IEEE 802.1AR**. Secure Device Identifier (DevID) standard: a per-device identity credential and certificate provisioned at manufacture. One well-known form of asymmetric device identity. - **SUIT** (Software Updates for Internet of Things). IETF firmware-update architecture and manifest information model (RFC 9019 and RFC 9124), often paired with signed firmware updates on constrained devices. - **ANSI X9.24-3**. Financial-industry standard for symmetric key management, the home of DUKPT (Derived Unique Key Per Transaction): deriving a unique key per device from a shared root key. Prior art for the derive-from-root approach used on fieldbuses. ## Risk-Assessment Vocabulary - **Risk Assessment**. Structured process covering identification of assets, threats, attack paths, risk derivation, and treatment selection, as required by CRA Article 13. The CRA does not prescribe a specific methodology. See [Risk Assessment](https://can-security.net/risk-assessment/). - **Vulnerability Scoring**. A per-finding severity metric for a specific weakness, distinct from risk assessment. See [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/). - **CVSS** (Common Vulnerability Scoring System). Industry-standard scoring scheme for the severity of software vulnerabilities. CVSS v4.0 is the version expected for CRA vulnerability reporting to ENISA. See [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/). - **SL** (Security Level). IEC 62443 categorization of attacker capability. SL1 is incidental misuse; SL2 is intentional, low resources; SL3 is intentional, moderate resources with technology-specific skills; SL4 is intentional, extended resources with technology-specific skills. See [IEC 62443 SL2 Requirements](https://can-security.net/resources/iec-62443-sl2-requirements/). - **SBOM** (Software Bill of Materials). Machine-readable list of all software components in a product, in formats such as SPDX or CycloneDX. Required by the CRA. - **Defense in Depth**. Security architecture principle of combining multiple, overlapping defensive measures so that the failure of any single measure does not expose the asset. Endorsed by IEC 62443 (zone-and-conduit + SR layering) and NIST SP 800-82. See [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/). - **Zone and Conduit**. IEC 62443-3-2 partitioning model. A zone groups components that share security requirements and exposure; a conduit is a communication path that crosses a zone boundary. See [Zoning and Segmentation](https://can-security.net/solutions/zoning-segmentation/). - **EmSA-WP-103**. EmSA white paper that establishes a default CVSS v4.0 baseline for an unprotected CAN node, used as the scoring reference throughout this site. See the [EmSA security white papers](https://www.esacademy.com/en/library/security-white-papers.html). ## Threats and Attacks - **Frame Injection**. Transmitting CAN frames with arbitrary CAN IDs from a node not authorized to use those IDs, exploiting the absence of source authentication on classical CAN. See [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/). - **Spoofing / Masquerading**. Transmitting CAN frames under another node's CAN ID to impersonate a legitimate sender. Closely related to frame injection: injection is the act of transmitting unauthorized frames, spoofing or masquerading is doing so under a borrowed identity. See [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/). - **Replay Attack**. Re-sending previously captured legitimate frames to cause unintended state changes. Classical CAN has no native replay protection. See [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/). - **Sniffing**. Passive observation of bus traffic by a node with physical or logical access to the medium. CAN is a broadcast bus, so every node on a segment sees every frame by design; sniffing requires no privilege escalation, only access. T See [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/). - **Bus Flooding**. Transmitting frames at higher priority than legitimate traffic, or forcing error frames, to deny legitimate communication on the bus. On CAN the dynamic is inverted relative to internet DoS: a single malicious node can overload an entire network because every node sees every frame. See [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/). ## Cryptographic Primitives and Keys - **AES-128-GCM**. Advanced Encryption Standard with 128-bit key in Galois/Counter Mode. Authenticated encryption (AEAD) algorithm, recommended by BSI TR-02102 and the AEAD primitive used by SPsec on CAN FD, Secure Object Fieldbus Access (SOFA) at the application layer, and the CANopen secure bootloader. - **AEAD** (Authenticated Encryption with Associated Data). A cryptographic mode that provides confidentiality, integrity, and authenticity in a single operation. Supports multiple algorithms including AES-128-GCM , Ascon and ChaCha20-Poly1305. - **SHA-256**. Secure Hash Algorithm producing a 256-bit (32-byte) digest, specified in FIPS 180-4. A one-way fingerprint of data with no key involved: the same input always yields the same digest, and any change to the input changes it unpredictably. On CAN security it underpins firmware image digests, secure-boot measurements, HKDF derivation, and Ed25519 signatures. - **HKDF-SHA-256** (HMAC-based Key Derivation Function). Key-derivation function built on HMAC-SHA-256, specified in RFC 5869. Expands one root secret into several purpose-specific keys by binding a salt and a context label into each derivation, so a device can hold a single root and derive per-device, per-purpose, or per-session keys on demand. See [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/). - **Ed25519**. Edwards-curve Digital Signature Algorithm over Curve25519, specified in RFC 8032. A compact, fast public-key signature scheme: one party signs with a private key and any holder of the 32-byte public key can verify, with no shared secret to distribute. Suited to firmware signing and device identity, where open verification or non-repudiation is needed. - **X25519**. Elliptic-curve Diffie-Hellman key agreement over Curve25519, specified in RFC 7748. Lets two parties derive a shared secret over an untrusted channel without a pre-shared key, giving forward secrecy when ephemeral keys are used. The shared secret is passed through a key-derivation function such as HKDF rather than used directly. - **Ascon**. NIST-standardized lightweight cryptography family (selected 2023, published as the NIST Lightweight Cryptography standard). Includes Ascon-AEAD and Ascon-Hash variants. Designed for resource-constrained devices. - **ChaCha20-Poly1305**. AEAD construction combining the ChaCha20 stream cipher with the Poly1305 message-authentication code. Specified in RFC 8439. Often faster than AES-GCM in software when AES hardware acceleration is unavailable; widely used in TLS 1.3 and SSH. - **HMAC** (Hash-based Message Authentication Code). RFC 2104. Used for short message authentication tags when full AEAD encryption is not feasible. - **MAC** (Message Authentication Code). Cryptographic tag attached to a message to authenticate its origin and integrity. Distinct from "MAC address" (Media Access Control address). - **KDF** (Key Derivation Function). Cryptographic function that derives one or more working keys from a root secret, typically combining the secret with a salt and context information. Common KDFs include HKDF (RFC 5869). Used in CAN security to derive per-session, per-channel, or per-purpose keys from a long-term pre-shared key without weakening or exposing the long-term key. - **Nonce**. Number used once. Value (random or counter-based) that must not be reused with the same key in AEAD constructions. Reuse breaks the cryptographic guarantees of the construction. Nonce management is the trickiest correctness concern in AEAD-based CAN protocols. - **Salt**. Value combined with the input to a key derivation function so the same secret produces a different derived key in different contexts. Does not need to be confidential, only unpredictable in the relevant scope. Prevents derived-key collisions across products, deployments, or protocol versions. This is the generic sense; specific salts in this reference name their scope, so see [Session Salt](https://can-security.net/resources/terms-and-definitions/#term-session-salt) and [Key-Specific Pre-Shared Salt](https://can-security.net/resources/terms-and-definitions/#term-key-specific-salt). - **Session Salt**. A non-secret salt written once per power cycle into a write-once-after-reset slot on the server, then combined with a base key to derive the session key. Its security rests on being written once and refreshed each power cycle rather than on secrecy, and the slot may be read back for diagnostics. The session mechanism that uses it is defined by SOFA in EmSA-WP-105; the base-key model beneath it is EmSA-WP-104. - **Key-Specific Pre-Shared Salt**. A pre-shared, write-only salt bound one-to-one to a particular key and assigned together with it, used where a cryptographic function needs a salt or nonce longer than the available counters or timestamps can supply. Defined per key in SPsec. - **PSK** (Pre-Shared Key). Symmetric key established out-of-band between communicating parties. This reference names each PSK by its function rather than by an internal alias: the **Update Key** for software-update and configuration-update operations; the **Provisioning Key** that bootstraps the operational keys; the **Integrator Key** for system-level access. - **Update Key**. Pre-shared key used to protect software updates and, depending on the system, also configuration updates where a whole configuration table is loaded at once. On CANopen, the Update Key authenticates and (where configured) encrypts the firmware image with AES-128-GCM, and gates entry into the bootloader's update mode via challenge/response. See [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). - **Provisioning Key**. Pre-shared key installed before the device enters service, used to bootstrap further keys in the field. Distinct from operational keys, so that runtime keys can be loaded or derived securely once trust is established. Designs differ on who installs it and when: it may be loaded at manufacture, or installed by the integrator as the first act of claiming the device. There is no standardized name for the credential that gates a device's first key install. Provisioning Key and [Device Claim Token](https://can-security.net/resources/terms-and-definitions/#term-device-claim-token) are both in use for it, and some designs separate the two, using the token to gate the install of the key. Read either term against the product that uses it. - **Integrator Key**. Pre-shared key established by the system integrator, distinct from the Provisioning Key that bootstrapped it. Lets the integrator gate runtime access at the system level without exposing the manufacturer's keys. Aligns with the IEC 62443-3-2 split of responsibilities between manufacturer and integrator. - **TLS-PSK**. TLS (Transport Layer Security) profile authenticated by pre-shared keys (RFC 4279). Suitable for constrained CAN gateways' external interfaces where certificate handling is impractical. - **cTLS**. Compact TLS: IETF draft profile of TLS 1.3 designed for resource-constrained environments and small frames. - **RFC 5869**. Specification of HKDF, the HMAC-based key-derivation function used to derive per-purpose keys from a shared secret. The common choice for the key-derivation function referenced under Symmetric Key Management. - **Hardware Security Module (HSM)**. A small hardware module that stores cryptographic keys and performs operations with them inside a protected boundary, so the keys never appear in ordinary memory. On a fieldbus it typically holds one root from which per-device and firmware keys are derived on demand, keeping secure storage bounded. A secure element is the same idea in a single chip. FIPS 140-2 and ISO/IEC 19790 certify these modules. See [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/). - **Root Key**. The single top-level secret of a symmetric key hierarchy, held in a hardware security module and never exported. Every other key is derived from it on demand, so protecting the root protects the whole program. There is exactly one root per scheme; its asymmetric counterpart is the offline signing key whose public half is distributed as a trust anchor. - **Base Key**. A generic term for a key that other keys are derived from, rather than one used directly to protect traffic. The exact meaning depends on the scheme, so the term is qualified where it is used. In a manufacturer-side derivation hierarchy a base key sits beneath the root, one per product line or purpose (for example a Production Base Key), and working keys derive from it. In a device-side pre-shared hierarchy (SPsec, EmSA-WP-104) the base keys are the persistent keys a device holds, such as the Provisioning and Integrator keys, from which per-session keys derive. - **Trust Anchor**. The public key a verifier holds in order to check a certificate or signature, as defined in RFC 6024. It is the public half that tools and devices carry; the matching private signing key is kept offline by its owner. Compromise of that signing key forges trust for the whole deployment, so it is guarded most carefully. The trust anchor itself is not secret. - **Session Key**. The symmetric key that protects traffic on the wire, derived on both peers from a base key and a [session salt](https://can-security.net/resources/terms-and-definitions/#term-session-salt) rather than transmitted. It is short-lived, typically renewed each power cycle, so compromise of one session does not expose the base key it came from. Used this way in SPsec and EmSA-WP-104. - **Key ID**. A readable, non-secret identifier associated one-to-one with an installed key. Because base keys are write-only and cannot be read back, a tool has no way to ask a device which key it currently holds; the Key ID closes that gap. It names the key without revealing anything about the key material. Defined per key in SPsec and EmSA-WP-104. - **Factory Device Identity**. A manufacturer-installed asymmetric signature keypair that gives a device a permanent, verifiable identity. The private half never leaves the device and the public half is verified against the manufacturer's trust anchor. It is independent of the operational keys and survives a factory restore, so a device can prove what it is at any point in its life. IEEE 802.1AR calls this credential an IDevID. Introduced for the manufacturer-rooted model in EmSA-WP-104. - **Local Device Identity**. An integrator-installed asymmetric signature keypair, layered on top of the factory device identity once an integrator has claimed a device. Unlike the factory identity it is erased by a factory restore, along with the rest of the integrator's credentials. IEEE 802.1AR calls it an LDevID. See EmSA-WP-104. - **IDevID**. The IEEE 802.1AR name for a manufacturer-installed initial device identity. On this reference it is the [factory device identity](https://can-security.net/resources/terms-and-definitions/#term-factory-device-identity). - **LDevID**. The IEEE 802.1AR name for a locally significant device identity installed by the owner. On this reference it is the [local device identity](https://can-security.net/resources/terms-and-definitions/#term-local-device-identity). - **Ownership Voucher**. A short, manufacturer-signed statement that binds one device serial to one integrator public key, so an uncommissioned device accepts its first key install only from the integrator the voucher names. It is not secret; its value is that it cannot be forged, and a device verifies it against the manufacturer trust anchor it already carries. Adapted in EmSA-WP-104 from the voucher of RFC 8995 (BRSKI), reduced to what a device with no network stack and no clock can verify. - **Owner Epoch**. A monotonic counter carried in an ownership voucher and stored on the device across a factory restore. A device refuses any voucher at or below the highest epoch it has already accepted, so a previous owner cannot re-claim a resold device with an older voucher. See EmSA-WP-104. ## Key Provisioning and Lifecycle - **Uncommissioned State**. The state a device ships in and returns to after a factory restore. It holds no operational credentials and refuses every bus command except the one that installs the first credential, so the device state, not a secret, controls what it will accept. See EmSA-WP-104. - **Device Claim Token**. The value a device recognizes while uncommissioned, used only to accept the first credential install. Depending on the [claim gate](https://can-security.net/resources/terms-and-definitions/#term-claim-gate) in force it is a well-known default or a per-device secret printed on the unit. It is not an operational key and not a runtime password, and it becomes invalid once provisioning completes. Naming it explicitly matters for audit: a device that ships in an uncommissioned state accepting one documented command reads as a state machine rather than a default-password violation. See EmSA-WP-104. - **Commissioning Environment**. The controlled setting in which provisioning is performed: an isolated bench, or a new-machine bus with no other node powered. The isolation is what protects the first, unauthenticated key install on a device that has no trust established yet. See EmSA-WP-104. - **Factory Restore**. The deliberate, destructive return of a device to its uncommissioned state. It erases the base keys, the local device identity, and all configuration, and leaves operational input and output disabled until a new credential is installed. The factory device identity and, where used, the owner epoch counter survive it. The reset is graded, from a routine wipe of operational key material that leaves the device owned, up to a full release that clears ownership so the device is unowned again. Good practice ties the full release to a deliberate local physical action, a recessed button held for several seconds or a jumper that requires opening the enclosure, so that no bus command alone can return a fleet to an unowned state. See EmSA-WP-104. - **Integrator-Rooted**. The anchoring model in which a device is born open: it leaves the factory carrying no credential, the integrator installs every root of trust at first commissioning, and the device locks itself afterward. It needs no asymmetric primitive and suits a single integrator running a closed deployment. Its cost is a window between production and commissioning in which only physical and supply-chain control protect the device. See EmSA-WP-104. - **Manufacturer-Rooted**. The anchoring model in which a device is born locked: it leaves production already carrying a factory device identity and the manufacturer's trust anchor, so there is no open, unprovisioned window. The integrator verifies an already-trustworthy device, claims it with an ownership voucher, and layers its own keys on top. It suits broad markets and cases where counterfeit devices are a concern, at the cost of a production-line signature and a trust anchor to maintain. See EmSA-WP-104. - **Printed One-Time Token**. A per-device secret value printed on the unit, its label, or its packaging, as a code or a QR code, which an integrator's tool must present to claim the device before it will install operational keys. It is the middle option among the claim-ownership gates: stronger than trust on first use, because an attacker on the bus alone cannot claim the device, and lighter than a manufacturer-signed ownership voucher, because it needs no signing infrastructure. Being a printed shared secret, it can be photographed or leaked, so it is only as good as the control of the printed value. It is distinct from the Provisioning Key, which is the credential its presentation gates the install of. See [Handover](https://can-security.net/key-management/handover/). - **RFC 8995**. Bootstrapping Remote Secure Key Infrastructure (BRSKI). IETF standard for automated, secure device onboarding using a manufacturer-signed voucher to establish ownership. EmSA-WP-104 adapts its voucher construct to the ownership voucher, reduced to what a constrained fieldbus device with no network stack and no clock can verify. - **Claim Gate**. The method by which an uncommissioned device decides whom to accept its first key install from. The token gate accepts an installer that presents the correct Device Claim Token, whether a well-known default or a printed one-time token; the voucher gate accepts only the integrator named in a manufacturer-signed ownership voucher. See EmSA-WP-104. - **Device Capability Level**. The ordered classification of what a device's cryptography can do, from symmetric only up to full asymmetric operation. Each level is a superset of the one below. Declaring one value lets a tool decide what to expect from a device before any security exists, and it bounds which claim gates and protection choices the device can use. The boundary that matters most is between verifying a signature and signing one, because it separates authorizing an action from proving the device's own identity. Frameworks number these levels differently, so a level number means something only together with the framework that defines it. See EmSA-WP-104. - **Security Profile**. A named, recommended combination of capability level, claim gate, and protection choices, so a device can declare one value and a tool can decide what to expect without inspecting every capability. A profile is a convenience rather than a source of truth: everything it bundles is normally also reported individually, so a tool that needs one specific property reads that property instead. See EmSA-WP-104. - **Delegation**. An owner-signed grant that gives a maintenance tool a scoped subset of the owner's authority, so the tool can act without holding the ownership credential itself. It is one level deep, bound to specific operations and to a device serial or group. How it is withdrawn depends on the design. Replacing or erasing the credential that carries it is the direct route and needs no clock. Where the design carries a monotonic ownership counter, advancing that counter invalidates grants issued under an earlier value. Neither route relies on an expiry, which a clockless device cannot enforce. See EmSA-WP-104. ## Security Measures and Mitigations - **Anomaly Detection**. Monitoring for deviations from a learned or specified baseline of bus traffic, including timing, frame counts, or content patterns. A measure rather than a specification: applied on top of whichever frame-level controls are in place to surface what slipped through. See [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). - **SPsec** (CANcrypt V2.0). Security sublayer specification for classical CAN (with limitations) and CAN FD providing authentication and encryption. Specification documents 101–302 are published on esacademy.com. See [Frame Security](https://can-security.net/solutions/frame-security/). - **CANcrypt**. Authentication and encryption layer for classical CAN and CANopen, with a published book and reference implementation at [cancrypt.net](https://cancrypt.net). See [Frame Security](https://can-security.net/solutions/frame-security/). - **SOFA** (Secure Object Fieldbus Access). Application-layer cryptographic shell for CAN-based fieldbuses. For CANopen, SOFA provides authenticated read or write access to selected Object Dictionary entries. Operational access is protected by a session key derived from an operational base key and a session salt, not by the Provisioning Key. SOFA offers a session-based protocol aligned with **TLS-PSK (RFC 4279)** and a per-transfer challenge-response protocol, **FBsec**, aligned with **ISO/IEC 9798-2**. Where a device can afford it, an optional Ed25519 identity binds a control-plane access to a specific device rather than to mere key possession. See [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/). - **CANsec**. Cryptographic security extension defined for the CAN XL and potentially CAN FD data-link layer, adding frame-level authentication and optional confidentiality. Analogous in role to MACsec for Ethernet. AES-GCM based. The specification is currently under definition. See [Frame Security](https://can-security.net/solutions/frame-security/). - **Secure Boot**. Boot process that verifies firmware authenticity and integrity before execution, typically using a manufacturer-controlled signing key. See [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). ## Frequently Asked Questions ### How is this glossary scoped? Industrial CAN and CAN FD security only. Entries cover the protocols (CAN, CAN FD, CAN XL, CANopen, J1939, FireCAN, CleANopen), the regulations that drive security obligations in the EU (CRA, NIS 2, Machinery Regulation), the standards that operationalize those obligations (IEC 62443, NIST SP 800-82, EN 303 645, ISO/IEC 9798), the threats and attacks the controls address (frame injection, spoofing / masquerading, replay, sniffing, bus flooding), and the security measures and mitigations on the CAN side (anomaly detection, SPsec, CANcrypt, SOFA, CANsec, secure boot) along with the cryptographic primitives and keys involved (AES-128-GCM, Update Key, Provisioning Key, Integrator Key, authentication key). Automotive vocabulary is deliberately excluded. ### Where do these definitions come from? Each term cites its source standard or specification where one exists. Where a term has multiple meanings across communities (for example MAC, which can mean Message Authentication Code or Media Access Control), the definition here is the one used by this reference and the disambiguation is called out. --- # Risk Assessment for CAN and CAN FD Systems A documented risk assessment is now mandatory under the EU [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra), [NIS 2](https://can-security.net/resources/terms-and-definitions/#term-nis-2), the Machinery Regulation, and [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443). Risk assessment and vulnerability scoring are two distinct activities. Risk assessment is a process that frames the system, identifies threats, and selects mitigations; this reference uses IEC 62443-3-2 throughout. Vulnerability scoring with [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0 is what you do later, per finding, when reporting a specific weakness to ENISA or to customers. This page introduces both. ## Why Risk Assessment Is Mandatory CRA Article 13(2) requires manufacturers to undertake and document a cybersecurity risk assessment for each product with digital elements before placing it on the market. The regulation does not mandate a specific methodology; manufacturers may choose any approach that produces a defensible, traceable analysis. This reference uses IEC 62443-3-2 throughout because it is the methodology that fits industrial and other non-automotive applications best, which is the scope of this site. IEC 62443-4-1 SM-3 mandates equivalent process discipline for industrial suppliers, and IEC 62443-3-2 specifies the system-level risk-assessment process itself. [CRA Art. 13](https://can-security.net/resources/cra-requirements/) [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ## What a Risk Assessment Covers A risk assessment per IEC 62443-3-2 is a structured process: identify assets, define damage scenarios, enumerate threat scenarios and attack paths, rate attack feasibility, compute risk, and select risk treatment. The output is a documented, traceable analysis from assets to treatment decisions, the same shape of artifact CRA Article 13 expects. The [Machinery Regulation](https://can-security.net/resources/terms-and-definitions/#term-machinery-regulation) similarly requires the cybersecurity-related safety analysis to be documented and methodologically defensible. Several established methodologies could be used; the [IEC 62443-Style Assessment](https://can-security.net/risk-assessment/iec-62443/) page names the alternatives in common use ([ISO/IEC 27005](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27005), NIST SP 800-30, [ISO/IEC 27019](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27019), [EN 18031](https://can-security.net/resources/terms-and-definitions/#term-en-18031) under the Radio Equipment Directive) and explains why this reference settled on IEC 62443-3-2 for industrial CAN. [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) ## Vulnerability Scoring with CVSS — A Separate, Complementary Activity Vulnerability scoring is not risk assessment. Where a risk assessment frames the entire system before release, vulnerability scoring produces a comparable severity number for one specific weakness, typically discovered later. CVSS v4.0 is the de facto scoring system the CRA expects when reporting vulnerabilities to ENISA and to customers. CAN-specific vector choices are not obvious; the [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) page, based on EmSA-WP-103, walks through them with worked examples. Scores from individual findings feed back into the living risk-assessment record, but they do not replace it. ## How Defensive Measures Reduce Risk Score Every defensive measure maps to one or more CVSS v4.0 metric changes; the per-control mapping with worked examples is on [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/). The strategy of combining several measures into layered protection is covered on [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/), and the per-threat coverage of individual shells at IEC 62443 Security Levels is cataloged on the [Solutions overview](https://can-security.net/solutions/). ## How Much Security Is Enough The purpose of the assessment is not to pile on every available control; it is to invest in proportion to the risk. IEC 62443-3-2 ends in a risk-treatment step where each identified risk is reduced, accepted, or transferred, and the CRA frames the same principle as security appropriate to the risk. A node behind a locked cabinet on an isolated segment may rationally accept risks that a gateway on an exposed diagnostic port must mitigate. The target Security Level sets the height of the bar: an SL2 baseline is a light symmetric layer, while heavier machinery such as a full public-key infrastructure or hardware-backed key storage enters only at SL3 and above, or where scale and anti-counterfeiting justify it. Security bought beyond the assessed risk is cost without a matching reduction in risk. ## Getting Started For a typical CAN product team, a pragmatic starting point is: (1) document the assets and external interfaces, (2) score the unprotected baseline using CVSS (see worked examples), (3) decide on mitigations to reach an acceptable residual score, and (4) maintain the assessment under change control. > ### EmSA Training — Compliance Planning & Risk Assessment > Worked examples of CRA-compliant risk assessments for a single CAN device and an entire CAN system, plus a modular approach for re-using assessments across product lines. > [Open this course →](https://emsa.courses/course/cra-can-assessment) > ### EmSA Security Consulting > For the two cases not covered by the off-the-shelf catalog and the courses, we review CAN risk-assessment records and CVSS scoring choices, or customize a Solutions shell when the off-the-shelf configuration does not match the assessment. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### Is a risk assessment required for every CAN product under CRA? Yes. CRA Article 13(2) requires manufacturers to undertake a cybersecurity risk assessment before placing a product with digital elements on the market and to document the result. CAN nodes shipping firmware fall in scope. ### Is CVSS a risk-assessment methodology? No. Risk assessment and vulnerability scoring are two distinct activities. A risk assessment per IEC 62443-3-2 is a process that frames the system: identify assets, threats, attack paths, derive risk, and choose treatment. CVSS v4.0 is a per-finding severity metric used when reporting a specific vulnerability to ENISA or to customers. The risk assessment frames the system; CVSS scores findings within it. ### Can I use a documented security justification instead of a full risk assessment? For low-risk classical CAN systems with strong physical access controls, a documented security justification (per EmSA-WP-101) can be a proportionate alternative to a full risk assessment. Whether this satisfies a specific regulator depends on the product category, the assessed risk, and the conformity-assessment route chosen. ### Do I have to implement security at all costs? No. The CRA requires protection appropriate to the risk, not the maximum possible. IEC 62443-3-2 makes this explicit through its risk-treatment step: each risk is either reduced with a control, accepted with a documented rationale, or transferred, weighing the cost against the reduction it buys. A low-risk node behind a locked cabinet may accept risks that a gateway on an exposed diagnostic port must actively mitigate. The assessment is what tells you where that line falls. ### How much should CAN security cost? It scales with the target Security Level the assessment sets, not with a fixed shopping list. An IEC 62443 SL2 baseline is a lightweight symmetric layer that fits ordinary CAN controllers; the more expensive elements, a full public-key infrastructure or hardware-backed key storage, become necessary only at SL3 and above, or where scale or anti-counterfeiting justify them. Spending beyond the assessed risk buys no additional compliance. --- # Access Limitation — Perimeter Shell (Out of Scope) Physical and logical access limitation around a CAN network is a *perimeter shell* rather than a CAN-specific control. It is out of scope for this reference because general industrial cybersecurity standards apply directly. The [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) page under [Risk Assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment) lists it as one of the perimeter areas acknowledged but not detailed here. ## Where to Look Apply the standard industrial cybersecurity practice around the CAN segments rather than within them. IEC 62443-3-3 SR 1.x (Identification and authentication control), SR 2.x (Use control), and SR 5.x (Restricted data flow / zone-and-conduit) cover the system-level controls. NIST SP 800-82 Section 6 (physical security) and its OT firewalling and remote-access guidance complement this for operational-technology contexts. ISO/IEC 27001 Annex A.5–A.9 give the management-system view (asset inventory, access control policy, identity lifecycle). The bus-side shells covered in this reference assume access limitation is in place; see [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) for the CAN-specific shells. [IEC 62443-3-3](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) [ISO/IEC 27001](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27001) > ### EmSA Security Consulting > EmSA consulting covers the bus-side portion only: reviewing the CAN-relevant parts of your [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) zone-and-conduit risk assessment, or customizing a Solutions shell to align with the zone boundaries you have defined. The perimeter itself remains in the hands of the broader IACS standards above. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### Why is access limitation out of scope for this reference? Access limitation, including physical enclosure, logical gating at gateways, and diagnostic-port authentication, is a perimeter shell around the CAN network rather than a CAN-specific control. General industrial cybersecurity standards (IEC 62443-3-3, NIST SP 800-82, ISO/IEC 27001) cover it well; this reference focuses on the bus-side, CAN-specific shells where less mature guidance exists. ### Which standards should I consult for access limitation on a CAN system? IEC 62443-3-3 SR 1.x (Identification and authentication control), SR 2.x (Use control), and SR 5.x (Restricted data flow / zone-and-conduit) for the system-level controls. NIST SP 800-82 for OT firewalling and remote-access guidance. ISO/IEC 27001 Annex A.5–A.9 for the management-system view. Apply these around the CAN segments rather than within them. --- # Applying CVSS v4.0 to CAN and CAN FD Vulnerabilities [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) is vulnerability scoring, not risk assessment; the two are distinct activities. The EU [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) requires manufacturers to score vulnerabilities consistently when reporting to ENISA and to customers. CAN technology does not map cleanly to standard CVSS categories; there is no IP address, no port, no privilege model. EmSA white paper WP-103 establishes a CAN-specific scoring convention; this page summarizes and applies it. [CRA Art. 13](https://can-security.net/resources/cra-requirements/) [EmSA-WP-103](https://can-security.net/resources/terms-and-definitions/#term-emsa-wp-103) ## Vulnerability Scoring vs. Risk Assessment Risk assessment and vulnerability scoring are two distinct activities, and confusing them obscures what each is for. A **risk assessment** is a process: identify assets, frame threats, rate exposure and impact, select mitigations, document residual risk. It is done up front, at system or product scope, and produces a traceable analysis. **Vulnerability scoring** is what you do per finding: given one specific weakness, produce a comparable severity number that can be communicated to ENISA, to customers, and to the wider community. CVSS v4.0 is the de facto scoring scheme the CRA expects. The risk assessment frames the system; CVSS scores findings within it, both during development and across the product lifecycle as new vulnerabilities surface. See [IEC 62443-Style Risk Assessment](https://can-security.net/risk-assessment/iec-62443/) for the process side. ## Why CVSS Matters for CAN Product Manufacturers CRA Article 13 requires vulnerability handling, including communication of severity to users. CVSS is the industry standard for severity scoring. For CAN-based products, scoring inconsistently across the industry would defeat the purpose; WP-103 proposes conventions that have been used in real CAN vulnerability disclosures. ## How CVSS v4.0 Works — A CAN-Specific Primer CVSS v4.0 has four metric groups: Base (intrinsic to the vulnerability), Threat (exploitation maturity), Environmental (deployment-specific), and Supplemental. Base metrics produce the headline score. The Base metrics most relevant to CAN are AV (Attack Vector, typically Physical), AC (Complexity, typically Low for CAN bus access), AT (Attack Requirements), PR (Privileges Required, typically None on classical CAN), and the impact triad VC/VI/VA on the vulnerable system plus SC/SI/SA on subsequent systems. ## Scoring a Classical CAN Node: Baseline (5.2 / Medium) An unprotected classical CAN node baseline is: Rationale: physical attack vector (AV:P) with low complexity (AC:L) and no special prerequisites (AT:N, PR:N, UI:N). Confidentiality of the typical control payload is rated N because the data itself is usually not confidential. Integrity (VI:H) and availability (VA:H) are High because frame injection and DoS are unconstrained. The Subsequent System metrics are None for a single CAN node; they would change if the analysis covered the wider system the CAN node controls. ## How Defense-in-Depth Layers Reduce the Score Each layer of [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) reduces a different CVSS metric. The reductions stack; that is the point of layering: - **Access Limitation (physical enclosure, perimeter shell):** Eliminates the attack vector entirely for the common case, reducing AV from P to "not exploitable", effectively dropping the score to 0 for that scenario, though insider and supply-chain risk remain documented separately. - **[Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/):** Reduces VA from H to L for flooding and error-frame attacks; availability events are surfaced and operators can respond. - **[Local Injection Detection](https://can-security.net/solutions/local-injection-detection/):** Reduces VI from H to L by giving the legitimate sender a way to detect impersonation of its own CAN IDs. - **[Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/):** Reduces VI/VA from H to L for many attack classes; the attack is no longer silent and operators can respond. - **[Frame Security](https://can-security.net/solutions/frame-security/) ([CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) / [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec)):** Reduces VC, VI, and VA all to N for in-band CAN attack scenarios. The score drops near 0; residual risk is on the cryptographic implementation and key management. - **[Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/) (configuration locking, protected OD entries):** Reduces VA from H to L or N for configuration-tampering scenarios specifically. - **[Secure Bootloader](https://can-security.net/solutions/secure-bootloader/):** Closes the firmware-tampering vector, removing the highest-impact subsequent-system scenarios from scope. ## Who Scores What The component manufacturer scores the vulnerability against its own product. The integrator may re-score it in the context of the integrated system using Environmental metrics. The operator may further adjust based on deployment-specific compensating controls. WP-103 recommends that manufacturers publish the Base score and clearly state the assumptions, leaving Environmental refinement to the integrator. ## Reference: EmSA-WP-103 The full derivation of vector strings and worked examples is in EmSA-WP-103, available from the [esacademy.com white papers library](https://www.esacademy.com/en/library/security-white-papers.html). > ### EmSA Consulting on CVSS Scoring > For the two cases not covered by the off-the-shelf catalog and the courses, we review CVSS vector choices and scoring justifications in your risk-assessment record, or customize a Solutions shell when the score points to gaps the current configuration cannot close. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) > ### EmSA Training — CRA Requirement Mapping (incl. CVSS) > Walks teams through how CRA requirements apply to CAN devices, with detailed treatment of the vulnerability handling process and CVSS v4.0 vector decisions for CAN-specific scenarios. > [Open this course →](https://emsa.courses/course/cra-can-mapping) > ### White Paper — EmSA-WP-103 > The reference white paper underpinning this page. Available alongside the broader EmSA security white paper library. > [Library on esacademy.com →](https://www.esacademy.com/en/library/security-white-papers.html) ## Frequently Asked Questions ### What CVSS score does an unprotected classical CAN node get? 5.2 (Medium) under CVSS v4.0, with vector `CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N`. Source: EmSA-WP-103. ### Does the CRA require CVSS specifically or just "a scoring system"? The CRA requires manufacturers to use a recognized vulnerability scoring scheme and to communicate severity with each reported vulnerability. CVSS is the de facto scoring scheme for this purpose, and the version expected at the time of writing is CVSS v4.0. ENISA's reporting templates assume CVSS. ### Can I reduce my CVSS score by adding a security event monitor? Yes. A security event monitor that detects and reports anomalies reduces the integrity and availability impact metrics from High to Low for many threat classes, because the attack is no longer silent. The total score drops accordingly. See [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ### What is the CVSS score if CAN FD with SPsec encryption is used? When SPsec authenticated encryption is in place across the bus, the integrity, availability, and confidentiality impact metrics for the typical CAN-borne attack scenarios all drop to None, yielding a baseline near 0.0. Residual risk shifts to attacks against SPsec itself or its key material; those are scored separately. --- # Defense in Depth for CAN and CAN FD No single measure secures a CAN network completely. Defense in depth, endorsed by [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) and [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82), is the strategy of combining multiple defensive measures across the network layers so that the failure of any one still leaves the asset protected by the others. This page is the strategy layer; the individual measures are cataloged under [Solutions](https://can-security.net/solutions/). The focus here is how to compose them, where the perimeter areas fit, and how zoning and the secure bootloader sit alongside the per-node shells. ## Layers and Shells The graphic below shows how OSI *network layers* (orange, left) can be protected by dedicated shells. The *shells* (green and gray) describe the defensive controls applied *across* those layers. A shell may cover a single layer or span several. Calling both "layers" would be ambiguous, so this reference uses **shells** for the controls and **layers** for the network stack. Each green shell in the graphic links to its full description in the Solutions catalog: click a shell to open its page. ## Composing the Per-Node Shells The per-node shells are deliberately complementary, not interchangeable. Detective shells (bus load monitoring, anomaly event monitoring, local injection detection) surface events but do not stop them. Preventive shells (frame security, Secure Object Fieldbus Access) stop the attack from succeeding but do not by themselves tell the operator that anything was attempted. A workable combination pairs at least one detective shell with the preventive shells whose threats it can observe, so detection has the backstop of prevention and prevention has the visibility of detection. Local Injection Detection is the special case: it raises an alarm on the impersonated node, but the alarm needs a reporting channel that reaches beyond that node, which in practice might not always be available (simple sensor module will not have an alternate communication channel). In such cases, a cryptographic secure heartbeat (part of frame security) is an option: a node who detected a local injection simply stops transmitting its secure heartbeat. The secure heartbeat loss is an indication for a security event detected by that node. For shell-by-shell coverage of specific threats at IEC 62443 Security Levels, see the threats × shells matrix on the [Solutions overview](https://can-security.net/solutions/). That matrix is the catalog view of what each individual shell contributes; the strategy view here is about which shells to combine and why. ## Perimeter Areas (Out of Scope) The gray boxes in the graphic are perimeter areas around the CAN network rather than CAN-specific controls. General industrial cybersecurity practice applies and is well covered by existing standards. This reference does not duplicate that coverage. Selected perimeter areas have summary stubs under [Risk Assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment) for context; physical access protection is covered by external standards only: - [IEC 62443-3-3 SR 2.11](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-2-11) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) **Physical access protection:** enclosures, locked cabinets, tamper-evident seals, controlled wiring runs. For further info, see IEC 62443-3-3 SR 2.11 (least privilege physical access) and NIST SP 800-82 Section 6 (physical security). - [IEC 62443-3-3 SR 5.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) **[Gateways, routers, bridges, repeaters](https://can-security.net/risk-assessment/secure-gateways/):** every link leaving the CAN segment is a conduit risk. For further info, see IEC 62443-3-3 SR 5.x (restricted data flow / zone-and-conduit) and NIST SP 800-82 on OT firewalling. - [IEC 62443-3-3 SR 1.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [ISO/IEC 27001](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27001) **[Login / diagnostic access control](https://can-security.net/risk-assessment/access-limitation/):** user and service-port authentication, including diagnostic interfaces. For further info, see IEC 62443-3-3 SR 1.x (identification and authentication control) and ISO/IEC 27001 Annex A.5–A.9 for the management-system view. ## System-Level Architectural Measures The per-node shells assume each node on a segment enables the same controls. [Zoning and Segmentation](https://can-security.net/solutions/zoning-segmentation/) is the architectural lever for cases where uniform per-node controls are the wrong answer: divide the CAN system into segments by exposure profile, keep classical CAN inside protected zones, and put CAN FD with frame security on segments whose wiring leaves the protected enclosure. Zoning is not a per-node shell; it is a system-level architectural pattern from IEC 62443-3-2 that composes with the shells rather than competing with them. ## Composite Measures: Secure Bootloader Firmware update has its own threat model and its own combination of primitives: pre-shared key, potentially frame authentication during the update window, image-integrity verification, rollback protection. The [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) is a composite control that combines these primitives into a separate operating mode rather than running as a continuous shell during normal operation. In [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra)-scoped products firmware update is required, so the bootloader composition is always part of the defensive picture. ## Choosing Your Combination The combination of measures to deploy depends on the residual risk you can accept after the perimeter areas are handled. For low-risk industrial CAN networks behind a controlled enclosure, bus load monitoring plus anomaly event monitoring cover the most common compliance baselines (CRA security event log, IEC 62443 SR 6.x and SR 7.x). Higher-assurance systems, including medical devices, energy infrastructure and safety-critical machinery, add Frame Security ([CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) or [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec)) and, where the application layer matters, Secure Object Fieldbus Access so prevention backstops detection. Your [Risk Assessment](https://can-security.net/risk-assessment/) decides which row of the threats × shells matrix matters most; the [Solutions overview](https://can-security.net/solutions/) shows what each shell contributes. Where firmware update is in scope (and for any CRA-scoped product it always is), pair the bus-side shells with the [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) so the update channel does not become the attack vector. See [Software Updates Over CAN](https://can-security.net/threats/software-updates/) for the threat side of that picture. ## Frequently Asked Questions ### What is defense in depth for CAN? Defense in depth combines multiple defensive measures across the network layers so that the failure of any one still leaves the asset protected by the others. For CAN, those measures group into per-node shells (cataloged under [Solutions](https://can-security.net/solutions/)), system-level architectural measures ([Zoning and Segmentation](https://can-security.net/solutions/zoning-segmentation/)), and composite controls (the [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/)). The principle is endorsed by IEC 62443 and NIST SP 800-82. [IEC 62443](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) ### How does Defense in Depth relate to Solutions? [Solutions](https://can-security.net/solutions/) is the catalog of individual defensive controls and the EmSA products that implement them, including a per-threat coverage matrix at IEC 62443 Security Levels. Defense in Depth is the strategy layer that explains how to combine those controls into layered protection for a given threat profile and IEC 62443 security level. Use Solutions to look up what a specific control does; use [Defense in Depth](https://can-security.net/resources/terms-and-definitions/#term-defense-in-depth) to decide which combination fits your system. ### Why does this reference distinguish shells from network layers? The seven network layers (physical to application) describe *where* data is processed. Shells describe the defensive controls applied *across* those layers. A single shell may cover one layer (load monitoring on physical) or span several (anomaly event monitoring is cross-cutting). Calling both "layers" is ambiguous; this reference uses "shells" for the controls and "layers" for the network stack. ### How do zoning and the secure bootloader fit into defense in depth? [Zoning and Segmentation](https://can-security.net/solutions/zoning-segmentation/) is a system-level architectural measure: a choice about how the CAN topology itself is laid out, applied selectively across segments rather than uniformly per node. The [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) is a composite control: a separate operating mode that combines authentication, image-integrity verification, and rollback protection into the firmware-update channel. Both compose with the per-node shells rather than competing with them; neither appears as a column on the threats × shells matrix. ### Why are physical access protection and gateways not detailed here? They are perimeter areas around the CAN network rather than CAN-specific controls. General industrial cybersecurity standards apply: IEC 62443-3-3 for zone-and-conduit and access control, NIST SP 800-82 for OT firewalling and remote access, ISO/IEC 27001 for management-system controls. This reference focuses on the bus-side, CAN-specific controls and points out to those standards for the perimeter side. [IEC 62443-3-3](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) [ISO/IEC 27001](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27001) --- # IEC 62443-Style Risk Assessment for CAN Systems [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)-3-2 specifies the risk-assessment process expected of industrial automation and control systems. Applied to CAN-based products, the same eight-step process gives manufacturers and integrators a defensible structure for the documentation that [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) Article 13 requires. The assessment is not a one-time deliverable; it is a living record that follows the product through its lifecycle. The full walk-through, with worked examples and the supporting risk and traceability matrices, is taught in the EmSA *CRA Planning and CAN [Risk Assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment)* course. This page summarizes the steps and the CAN-specific judgment calls. Per-finding vulnerability scoring with [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) is a separate activity, addressed on the sibling [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) page. [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) [CRA Art. 13](https://can-security.net/resources/cra-requirements/) [CRA Annex I](https://can-security.net/resources/cra-requirements/) ## Why a Methodology Helps The CRA does not prescribe a specific risk-assessment method. Manufacturers can choose any established approach, and where a safety risk-assessment process is already in place, it can usually be extended rather than replaced. Several frameworks are in common use, each shaped by the sector it grew up in: - [ISO/IEC 27005](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27005) — information-security risk management. IT-leaning, oriented to enterprise information assets rather than control-system equipment. - [NIST SP 800-30](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-30) — US federal guidance for information-system risk assessments. Documentation-heavy, common in government and government-supplier contexts. - [ISO/IEC 27019](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27019) — energy-sector control-systems overlay on ISO/IEC 27002. Useful where the deployment is specifically a power-utility installation. - [EN 18031-1/-2/-3:2024](https://can-security.net/resources/terms-and-definitions/#term-en-18031) — harmonized standards under the Radio Equipment Directive 2014/53/EU as activated for cybersecurity by Commission Delegated Regulation (EU) 2022/30. The standards include their own risk-assessment and risk-reduction process for connected radio equipment. Relevant for CAN-based products that include a radio module: per CRA Article 2(3), products already covered by the [RED](https://can-security.net/resources/terms-and-definitions/#term-red) Delegated Regulation for the same essential requirements run a RED / EN 18031 assessment instead of a CRA one. - [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) — the system-level risk-assessment process from the IEC 62443 series for industrial automation and control systems. Chosen as the basis for this reference because it is mature, recognized by most notified bodies for industrial CAN, and produces the structured artifact CRA Article 13 expects: a traceable analysis from assets through threats, mitigations, and residual risk. This page describes the IEC 62443-3-2 risk-assessment process. ## A Living Record, Not a One-Off A frequent misconception is that the risk assessment is something written once at release and filed away. The CRA explicitly rejects that view. The technical documentation evolves as the product evolves: when firmware changes, when new vulnerabilities are reported, when the threats facing the product shift, when connectivity is added or removed. Each significant change triggers a re-evaluation, and a new revision of the assessment must be generated and recorded. Vulnerability reports and the actions taken to resolve them belong in the same record, along with firmware-version logs, [SBOM](https://can-security.net/resources/terms-and-definitions/#term-sbom) revisions, and the audit trail of who changed what and when. Earlier revisions are archived so that any past decision or design state can be reconstructed if questioned later. Treating the assessment as a living document is the cheapest way to be ready for an audit at any time, and it is the only way to honor the CRA's expectation of ongoing vulnerability handling for as long as the product is supported. ## The Eight Steps The IEC 62443-3-2 risk-assessment process is conventionally described as eight ordered steps. The earlier steps frame what is being protected from what threats; next you determine your security objectives and analyze & assess the risks; the later steps identify, select, apply, and verify the security measures applied. Each step builds on the one before it, and each output feeds the next. Whenever the final outcome is undesirable (because mitigations do not hold or new risks appeared), the process is triggered again. For CRA documentation it is beneficial to show that this is a process and mitigations improve over time. ### 1. Identify Assets List the hardware, firmware, software, configuration, and (where applicable) data elements that warrant protection. For a typical CAN device, that includes the housing, the MCU, external non-volatile memory, the power-supply circuitry, the CAN and UART circuitry, the debug interfaces (JTAG, SWD), the bootloader, the higher-layer protocol stack, the application firmware, and any configuration parameters that survive a power cycle. Whether stored or transmitted data is itself an asset depends on the application: process data and operational telemetry can be high-value when they drive fiscal decisions, quality-control feedback, access-control logic, or safety functions, and effectively zero-value otherwise. The decision is documented either way. ### 2. Identify and Analyze Threats For each asset, list the realistic ways it can be compromised. The CAN bus itself faces sniffing, frame injection, spoofing, replay, and flooding. Debug ports face firmware extraction and debug-level control. The bootloader faces downgrade attacks and malicious-firmware uploads. Configuration storage faces malicious remapping and overwrite. Hardware faces tampering, replacement, and side-channel attacks such as voltage glitching. The same threat may apply to several assets; one asset may face several threats. Nothing should be left without at least one corresponding threat entry. ### 3. Determine Security Objectives For each asset and threat, state what must hold. Tamper detection on the housing, code-and-memory protection on the MCU, integrity and confidentiality on stored configuration, authenticated firmware update on the bootloader, message-level access control on the higher-layer protocol stack. Some objectives are met inside the device; others must be addressed at integration. Locked debug interfaces are the manufacturer's responsibility; physical enclosure is the integrator's. The split is recorded explicitly so the integrator knows exactly what residual obligation lies with them. ### 4. Analyze and Assess Risks Pick a scoring scale (a five-by-five exposure-by-impact grid is a practical default), assign an exposure value and an impact value to each threat, multiply for an individual risk score, and optionally compute a normalized total over the theoretical worst case. Exposure reflects attacker reach and motivation, including whether the device is internet-reachable. Impact reflects what happens if the threat succeeds: device-level instability, configuration-level safety problems, system-level loss of operation, fleet-level fiscal damage. The normalized score is not part of IEC 62443 itself, but it gives auditors and decision-makers a single percentage that compares cleanly across product variants and across the before-and-after of mitigation. ### 5. Identify and Rate Security Measures List the mitigation candidates per asset and threat. Rate each one by cost (engineering effort, redesign, additional components) and effect (how much it reduces exposure or impact). Some measures are cheap and high-effect, like locking unused service ports or password-protecting configuration writes. Others are expensive and high-effect, like adding a cryptographic frame-security layer. A few are expensive and low-effect, such as fully sealing a housing against an attacker who has already extracted firmware through an open debug port. Those usually drop out of consideration at the next step. ### 6. Select Security Measures Choose the working set. Start with measures that are mandatory for the targeted Security Level; for any CRA-scoped product with a remote update channel, an authenticated bootloader is effectively non-negotiable. Add the low-cost / high-effect measures next, since their inclusion is hard to justify against. Layer on higher-cost measures only where they are the only option that addresses a high-residual-risk threat. When two measures share infrastructure, count the saving: a cryptographic foundation that supports both authenticated update and configuration locking pays for itself twice. ### 7. Implement Security Measures Translate the selection into product behavior, integration guidance, and customer documentation. Some measures live in the device firmware (the bootloader, the access control on configuration writes). Others rely on the integrator (physical enclosure, gateway hardening, security-event monitoring at the system level). The user-facing documentation must spell out what the integrator and operator are expected to do, and the implementation tests that prove each measure works become evidence in the CRA technical file. Every product update is also an implementation review, since a new release is the moment when a previously selected measure may regress without anyone noticing. ### 8. Process Review and Audit Verify that every selected measure is implemented and tested, that the residual-risk matrix is acceptable for the targeted Security Level, that compliance against the chosen standards is met, and that a review cycle is in place to revisit the assessment when threats or the product change. Penetration testing and security-log review belong here, along with the formal sign-off that closes the assessment loop for the current revision and starts the clock on the next. ## Risk Scoring: Exposure × Impact The example matrices use a five-by-five scale with named levels. Exposure runs from rare to very likely; impact runs from negligible to critical. The product gives a per-threat score from 1 to 25, color-coded into low / medium / high / very-high bands. For CAN, exposure also turns on whether the device is reachable remotely. A bus-attached attack scales to one machine at a time; a compromised gateway with internet access scales to the whole fleet. That distinction usually dominates the system-level risk picture. The normalized risk score (the sum of all individual risk scores divided by the theoretical worst case, expressed as a percentage) is not required by IEC 62443, but it is a useful summary number for the CRA technical file. It compares cleanly across product variants and across the before-and-after of mitigation, which is exactly what auditors and notified bodies want to see at a glance. ## Example: A CANopen I/O Module A short summary of the device-level example. The full walk-through is in the EmSA course; The example device is a generic industrial I/O module with a CANopen interface, no gateway functionality, intended for integration into larger CANopen networks. The asset list is the standard set: housing, MCU, external non-volatile memory, power supply, CAN and UART circuitry, debug interfaces, bootloader, CANopen stack, application firmware, and the I/O and CANopen configurations. Data is left for the integrator to evaluate, since its value depends on the deployment. The threat list pairs each asset with its typical compromise paths: frame injection and replay on the CAN circuitry, code extraction at the debug port, downgrade attacks on the bootloader, malicious remapping of the I/O configuration, and so on. Initial exposure and impact values are assigned conservatively, since the manufacturer cannot fully model the deployment. The first-pass normalized risk score lands around **45 %**, with several threats sitting in the high or critical band. - The selected mitigations are pragmatic: - Lock the debug interfaces. - Password-protect the I/O and CANopen configuration writes. - Encrypt and authenticate the external non-volatile storage. - Implement an authenticated [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). - Add [Frame Security](https://can-security.net/solutions/frame-security/) ([CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) or [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec)) where the deployment requires it. Instruct the integrator, in writing, to physically protect the device and limit CAN-cable exposure. Re-scoring with these in place drops the normalized risk to roughly **19 %**, with most threats moving into the low band and the residual medium-band entries marked for the integrator to drive further down at system level. ## Trust Boundaries: Zones and Conduits The methodology partitions the system under consideration into **zones** and **conduits**. A zone groups components that share security requirements and exposure. A conduit is a communication path that crosses a zone boundary. For CAN-based products the bus itself is typically a single zone; gateways, diagnostic ports, charger ports, and remote-service interfaces are conduits to other zones. Zones can be defined coarsely or finely; the standard allows judgment, as long as each zone groups elements that genuinely share trust and exposure. A common simplification is to combine subsystems on one CANopen network into a single zone, since a successful injection on one subsystem typically reaches the others through the shared bus anyway. Documenting each zone and each conduit as its own module pays off across product families: a subsystem reused in another machine carries its zone documentation with it, and only the integration context needs to be re-evaluated. ## Manufacturer and Integrator Responsibilities A device manufacturer cannot fully assess every risk, because the deployment context, the value of the data, the connectivity profile, and the surrounding subsystems are all set by the integrator. The honest move is to score what you control with conservative defaults, document the assumptions explicitly, and pass forward the threats that need re-evaluation in the integrated system. The integrator then uses the device-level assessment as input, adds the system-level threats and conduits that only become visible at their layer, and either takes residual responsibility or passes it further to the operator. Documenting the chain is what makes the CRA technical file defensible end-to-end. ## Beyond the Device: System-Level Assessments The same eight-step process repeats at integration scope. Now the assets are subsystems and the network rather than individual components, the threats include cross-subsystem attack paths, and the mitigations include security gateways between zones, [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) across the bus, and authenticated communication on exposed wiring segments. In the EmSA course, the worked system example (a mobile machine with battery, drive, and manipulator subsystems plus diagnostic and remote-service ports) starts at a normalized risk score of **65 %**, drops to **34 %** once a CAN security monitor is added, and falls to **22 %** once a secure zone with authenticated gateways protects the exposed wiring. The methodology is identical to the device case; only the scope and the residuals shift. ## The Traceability Matrix The traceability matrix is the single overview that ties the assessment together. Each row is one threat. The columns record the threat ID from the analysis, the final risk factor after mitigation, the CRA Annex I requirement the threat addresses, the mitigation control that reduces it, and a reference to the evidence (test report, configuration description, SBOM entry, code-review record). For an auditor or a notified body, this matrix is the entry point into the rest of the documentation; for the engineering team, it is the at-a-glance status of the assessment. ## Where to Find the Full Walkthrough This page introduces the methodology and the CAN-specific shape of it. The EmSA *CRA Planning and CAN Risk Assessment* course covers the worked examples in detail, including the full asset and threat tables, the cost-and-effect rating per measure, the heat matrix that visualizes the risk distribution, and a downloadable traceability-matrix template that links every threat to its mitigation, its CRA Annex I requirement, and its evidence reference. The course also continues into modular documentation patterns for product families that reuse subsystems across multiple variants, and into how to package the resulting risk-assessment record so an integrator downstream can pull it into their own system-level assessment without rewriting it. If you are building a CAN-based product that needs a defensible CRA risk-assessment record, the course is the recommended next step. > ### EmSA Training — CRA Planning and CAN Risk Assessment > The full course covers the eight-step methodology with worked examples for both a single CAN device and an integrated CAN system, plus modular documentation patterns for product families. It is the source material for this page. > [Visit emsa.courses →](https://emsa.courses/) > ### EmSA Risk Assessment Consulting > For the two cases not covered by the off-the-shelf catalog and the courses, we review CAN risk-assessment records produced against the IEC 62443-3-2 methodology, or customize a Solutions shell to align with the resulting target Security Level. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### How does an IEC 62443-3-2 risk assessment differ from a CVSS scoring exercise? An IEC 62443-3-2 risk assessment is a system-level methodology: identify assets and zones, derive risk per zone, and choose treatment to reach a target Security Level. [CVSS](https://can-security.net/risk-assessment/cvss-for-can/) scores individual vulnerabilities once a system or product is defined. The two are complementary. The risk assessment frames the system; CVSS scores findings within it. ### Do I need a separate IEC 62443 assessment if my product is CRA-compliant? CRA Article 13 requires a documented cybersecurity risk assessment. It does not prescribe a specific methodology. IEC 62443-3-2 is the most common industrial methodology and produces output that many notified bodies recognize. For a CAN-based component going through CRA conformity assessment, an IEC 62443-3-2 style assessment is usually the path of least resistance. ### Can my safety risk-assessment process be reused for cybersecurity? Often, yes. The structure (assets, threats, likelihood, impact, mitigations, residual risk) is the same shape as a safety risk assessment. The two main shifts are that likelihood becomes exposure (which depends on attacker reach and motivation rather than on natural failure rates) and that the threat list is dominated by intentional, adaptive actions rather than fault conditions. If a safety process is already in place, it is usually cheaper to extend it than to start a parallel cybersecurity process. ### What is a normalized risk score? The sum of individual risk scores across all threats, divided by the theoretical worst case (number of threats times the maximum per-threat score), expressed as a percentage. It is not part of IEC 62443 itself, but it is a useful single-number summary for the CRA technical file. It makes before-and-after comparisons clean and helps non-specialists read the overall risk picture without working through the full matrix. ### Why does the risk assessment need to be re-done over the product lifecycle? Because the inputs change. New vulnerabilities are reported, the threats facing the product shift, firmware updates change behavior, integration contexts change connectivity, and the standards themselves are revised. The CRA expects the technical documentation to follow these changes for as long as the product is supported. Treating the assessment as a one-off filed at release leaves both compliance and the actual security posture stale. --- # Secure Gateways — Perimeter Shell (Out of Scope) Gateways, routers, bridges, and repeaters that connect a CAN network to other networks are *perimeter coupling devices* rather than CAN-specific controls. They are out of scope for this reference because general industrial cybersecurity standards apply directly. The [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) page under [Risk Assessment](https://can-security.net/resources/terms-and-definitions/#term-risk-assessment) lists this as one of the perimeter areas acknowledged but not detailed here, with the framing that "every link leaving CAN is a conduit risk". ## Where to Look Treat each coupling device as a conduit between zones with explicit trust levels. IEC 62443-3-3 SR 5.x (Restricted data flow / zone-and-conduit) governs the boundary; SR 7.6 (Network and security configuration settings) requires minimizing services, ports, and protocols. NIST SP 800-82 covers OT firewalling, remote-access design, and intrusion detection at the gateway. For external channels, [TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk) (RFC 4279) and [cTLS](https://can-security.net/resources/terms-and-definitions/#term-ctls) are the practical choices on resource-constrained gateways. The CAN-specific shells covered elsewhere in this reference assume the gateway perimeter is in place; see [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) for the bus-side shells that pick up where the perimeter stops. [IEC 62443-3-3](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) > ### EmSA Security Consulting > EmSA consulting covers the CAN-bus portion only: reviewing the bus-side findings in your gateway risk assessment, or customizing a Frame Security shell to match the [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) conduit boundaries the gateway enforces. Gateway hardening itself remains in the hands of general IACS practice. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### Why are CAN gateways out of scope for this reference? Gateways, routers, bridges, and repeaters that bridge between CAN and other networks are perimeter coupling devices rather than CAN-specific controls. The hardening they need (firewall rules, TLS-PSK or cTLS for external channels, zone-and-conduit boundaries) is general industrial cybersecurity practice and is well covered by IEC 62443-3-3 SR 5.x and NIST SP 800-82. ### Which standards should I consult for CAN gateway security? IEC 62443-3-3 SR 5.x for zone-and-conduit and restricted data flow; SR 7.6 for minimizing services and ports; NIST SP 800-82 for OT firewalling and remote-access patterns. For the CAN-specific concern that "every link leaving CAN is a conduit risk", the [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) page under Risk Assessment covers how the bus-side shells assume the gateway perimeter is in place. --- # CAN Security Solutions The catalog of in-scope defensive controls for CAN and CAN FD systems. The entries cover frame-level prevention and detection, application-layer access control, audit logging, authenticated firmware update, and the system-level zoning that decides where each control lives. See [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) for how to layer them into a posture that meets your [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) security level, and [Threats](https://can-security.net/threats/) for what each one defends against. ## Solutions Available Today Each entry below is a defensive control on the CAN side of the system. Click through for the technical depth, the IEC 62443 mapping, and references to the implementations that realize each control. The per-node shells each fit a single column on the threats matrix; Zoning / Segmentation and Secure Bootloader are system-level measures applied selectively, treated separately in the prose below the matrix. - **[Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/)**: Physical layer · non-cryptographic. Tracks bus load percentage over one or more time windows, optionally also counting error frames on the bus; surfaces availability impairment (flooding, error-frame storms, sabotage) to the security event log. Per-CAN-ID timing anomalies and directed attacks belong to Anomaly Event Monitoring. [SR 7.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Local Injection Detection](https://can-security.net/solutions/local-injection-detection/)**: Data-Link / Network · non-cryptographic. Each legitimate sender watches for impersonation of its own CAN IDs and raises an alarm when an unexpected source transmits one of them. [SR 3.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Frame Security](https://can-security.net/solutions/frame-security/)**: Data-Link / Network · cryptographic. Authenticated encryption on every protected frame prevents forged and spoofed frames outright, and prevents replay where the scheme binds each frame to a freshness value, and provides confidentiality where the deployment requires it. [SR 1.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 3.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 4.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/)**: Cross-cutting (Data-Link → Presentation) · non-cryptographic. A dedicated monitor inspects the whole bus, applies anomaly rules, and emits an auditable event log; the system-wide complement to per-node Local Injection Detection. [SR 6.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Secure Object Fieldbus Access (SOFA)](https://can-security.net/solutions/secure-object-fieldbus-access/)**: Application layer · cryptographic. Authenticated and encrypted access to fieldbus objects such as CANopen Object Dictionary entries and equivalent constructs on other higher-layer protocols, protecting configuration parameters, calibration data, and process variables at the application level. [SR 1.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 2.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 3.x](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 4.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Zoning / Segmentation](https://can-security.net/solutions/zoning-segmentation/)**: System level · architectural · non-cryptographic. Divides the CAN system into separate segments by risk profile, with controlled bridges between them. Lets classical CAN stay where wiring is physically protected and pushes CAN FD with frame protection onto segments where connectors or wires are more exposed. [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 5.x](https://can-security.net/resources/iec-62443-sl2-requirements/) - **[Secure Bootloader](https://can-security.net/solutions/secure-bootloader/)**: System level · architectural · cryptographic. Authenticated firmware update using a pre-shared key and authenticated encryption, with challenge/response gating and secure boot at startup. The control that gates what gets installed on the device in the first place. [CRA Art. 13.2c](https://can-security.net/resources/cra-requirements/) [SR 4.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-1) [SR 4.3](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-3) ## Solution × Threat Matrix Coverage of each defensive shell against threats and [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) / IEC 62443 requirements. *Coverage of each defensive shell against threats and requirements.* | Threat | [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) | [Local Injection Detection*](https://can-security.net/solutions/local-injection-detection/) | [Frame Security](https://can-security.net/solutions/frame-security/) | [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | [Secure Object Fieldbus Access†](https://can-security.net/solutions/secure-object-fieldbus-access/) | | --- | --- | --- | --- | --- | --- | | Sniffing | — | — | ✓ | — | ✓ | | Injection or Replay | — | partial | ✓ | partial | ✓ | | Node Spoofing | — | partial | ✓ | partial | ✓ | | [Bus Flooding](https://can-security.net/resources/terms-and-definitions/#term-bus-flooding) | ✓ | — | — | partial | — | | Configuration Tampering | — | partial | partial | partial | ✓ | | Requirement | [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) | [Local Injection Detection*](https://can-security.net/solutions/local-injection-detection/) | [Frame Security](https://can-security.net/solutions/frame-security/) | [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) | [Secure Object Fieldbus Access†](https://can-security.net/solutions/secure-object-fieldbus-access/) | | Confidentiality | — | — | ✓ | — | ✓ | | Integrity | — | partial | ✓ | partial | ✓ | | Node Authentication | — | — | partial | — | ✓ | | Configuration Protection | — | — | partial | partial | ✓ | | Bus Flooding Detection | ✓ | — | — | partial | — | | Security Event Log | ✓ | ✓ | partial | ✓ | partial | | IEC 62443 SL1 | — | — | — | — | — | | IEC 62443 SL2 | partial | partial | partial | partial | partial | | IEC 62443 SL3 | partial | partial | ✓ | ✓ | ✓ | Legend: ✓ primary fit · partial contributes but not standalone · dash not applicable. * Local injection detection raises an alarm on the node whose ID was spoofed. Acting on that alarm requires a channel that reaches beyond the local node; regular CAN communication does not provide one, so the alarm has to be reported via Anomaly Event Monitoring or an equivalent out-of-bus path. † Secure Object Fieldbus Access covers only the Object Dictionary entries that are marked as security-protected, not every object. [Zoning / Segmentation](https://can-security.net/solutions/zoning-segmentation/) is a system-level architectural pattern from IEC 62443 rather than a per-node defensive shell. The CAN system is divided into separate segments by risk profile, with controlled bridges between them. The pattern is applied selectively: classical CAN stays where wiring is physically protected, while CAN FD with frame protection covers segments where connectors or wires are more exposed. [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) is a composite control: depending on the implementation, it combines several of the security methods and shells listed above. It is a separate operation mode, typically diagnostic or maintenance, and does not run during regular operation; in industrial systems, firmware updates are not installed while the device is operating normally. ## Every Cryptographic Control Needs a Key Program Each entry above is marked cryptographic or non-cryptographic. The cryptographic controls, [Frame Security](https://can-security.net/solutions/frame-security/), [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/), and [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/), do nothing without keys. Choosing one of them is only half the decision; the other half is the key program behind it. The two decisions run in parallel. For each cryptographic control, weigh both the on-device function, what it does at the protocol or application level, and the key management it pulls in: generation, provisioning, per-device diversification, rotation, and destruction. A control that looks affordable on the device can carry a heavier key program than a costlier one, so the two have to be assessed together rather than in sequence. The [Key Management](https://can-security.net/key-management/) section works through that side: [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) for the core choice, [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) for deriving and diversifying keys, and [Fieldbus Device](https://can-security.net/key-management/fieldbus-device/) for which keys a device carries over its life. ## Frequently Asked Questions ### What is the difference between Solutions and Defense in Depth on this site? Solutions is the catalog of individual defensive controls and what each one does at the protocol or application level. [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) is the strategy layer that explains how to combine those controls into layered protection for a given threat profile and IEC 62443 security level. Use Solutions to look up what a specific control does; use [Defense in Depth](https://can-security.net/resources/terms-and-definitions/#term-defense-in-depth) to decide which combination fits your system. ### Which solution do I need for IEC 62443 SL3? Reaching SL3 typically requires cryptographic frame authentication. [Frame Security](https://can-security.net/solutions/frame-security/) is the primary control. Pair it with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for SR 6.x audit logging and, where the application layer matters, [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/) for object-level integrity and confidentiality. ### Can these solutions be combined? Yes, and most non-trivial deployments combine several. The catalog entries are deliberately complementary: detection controls (Bus Load Monitoring, Local Injection Detection, Anomaly Event Monitoring) surface attacks that the cryptographic controls (Frame Security, Secure Object Fieldbus Access) are designed to prevent; Zoning and Segmentation partitions the system so the right control applies at the right exposure level; Secure Bootloader gates what code runs in the first place. See [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) for guidance on which combinations match a given IEC 62443 security level. --- # Anomaly Event Monitoring A dedicated CAN security event monitor watches the entire bus, applies anomaly rules to traffic, logs events with timestamps, and optionally reports through a secure channel. It is the cross-cutting detective shell, the system-wide complement to per-node Local Injection Detection, and a near-mandatory shell for [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) event logging and [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) SR 6.x. [CRA Annex I](https://can-security.net/resources/cra-requirements/) [SR 6.2](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-6-2) ## Why Anomaly Event Monitoring Is Near-Mandatory The CRA expects products with digital elements to make internal activity auditable to support incident investigation and vulnerability handling. IEC 62443 SR 6.2 mandates audit logging and a clear retention/export story. Both push CAN-based systems toward a monitoring shell that is more than functional diagnostics. It is a security control with its own integrity protections, an append-only log with monotonic timestamps and, where the hardware allows, signed chunks. ## What a CAN Anomaly Event Monitor Does It receives every frame on the bus, applies expected-traffic models, flags deviations, and writes timestamped entries to a tamper-resistant, auditable event log. Where possible, it also reports critical events upstream over a separate channel (not on the CAN bus monitored) for centralized correlation. ## Timing-Based Anomaly Detection Depending on configuration, CAN traffic is periodic. The monitor learns or is configured with the expected period of each CAN ID and flags deviations: frames arriving too soon, too late, or not at all. Timing anomalies catch both injection (frames where there should be none) and DoS (legitimate frames missing). For best coverage, ensure your base CAN communication model is time driven and not event (change of state) driven. ## Injection Detection and Reporting Combined with [Local Injection Detection](https://can-security.net/solutions/local-injection-detection/) on legitimate senders, the monitor receives explicit injection reports (indicated by lost secure heartbeats) and correlates them with bus-level evidence. Injection events should generate higher-severity log entries than routine timing variations. ## Auditable Security Event Log The log itself must be protected to fulfill the requirements to be "auditable": append-only structure, monotonic timestamps, integrity checksums or signatures over chunks. The log persists across resets and can be exported through a controlled interface for forensic review. ## Dedicated Hardware vs Software Task For higher security levels a dedicated hardware module on the bus is preferred. It has its own trust domain and cannot be silenced by compromising another control unit. For lower-risk products a hardened software task on an existing node with strong isolation can be sufficient, but the trust-domain trade-off must be documented. ## Reporting Channel Security Outbound reporting (to a manufacturer or operator cloud, asset-management system, or local maintenance interface) must be authenticated and confidentiality-protected. [TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk) is appropriate for constrained channels; [cTLS](https://can-security.net/resources/terms-and-definitions/#term-ctls) is suitable when frame sizes matter. Diagnostic-only channels still need authentication. ## IEC 62443 and CRA Mapping This shell directly addresses SR 6.2 (Continuous monitoring) and supports SR 2.x (Use control) by providing the evidence trail. Under the EU CRA, Annex I requires products to record security-relevant events and to support vulnerability handling, which this shell delivers. [SR 6.2](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-6-2) [CRA Annex I](https://can-security.net/resources/cra-requirements/) > ### CAN Dragon > Load monitoring and anomaly detection are part of the EmSA CAN Dragon product family, with built-in reporting, logging, and auditable event logs for industrial CAN networks. > [Visit can-dragon.com →](https://can-dragon.com/) ## What This Shell Does Not Catch Anomaly event monitoring detects but does not prevent. By the time the alarm fires, the malicious frame has reached its targets. The monitor is also itself a target. If it shares a trust domain with a compromised node, the attacker can suppress its logs. Pair this shell with [Frame Security](https://can-security.net/solutions/frame-security/) so injection cannot succeed in the first place. ## Frequently Asked Questions ### Is a security event log required by the EU CRA? The CRA's Annex I expectations include logging of internal activity such as data accesses and modifications, and supporting incident investigation. For CAN-based products this translates into an anomaly event monitoring shell, not just functional diagnostics. ### Can the main control unit act as the security monitor? It can, but separation of concerns argues for a dedicated component or task. The main control unit is itself a high-value target; if it is compromised the security log goes with it. A dedicated monitor with a separate trust domain is preferred for higher security levels. ### How does timing-based anomaly detection work on a CAN bus? CAN traffic is highly periodic in most systems. The monitor learns or is configured with the expected period of each CAN ID and flags deviations: frames arriving too soon, too late, or not at all. This catches both injection (frames where there should be none) and DoS (legitimate frames missing). --- # Bus Load Monitoring The availability shell at the foundation of CAN defense in depth. A bus load monitor tracks bus load percentage over one or more measurement windows, and may optionally also count error frames on the bus. It is a non-cryptographic measure that surfaces availability impairment, whether caused by a deliberate availability attack (flooding, error-frame storms, sustained abnormal load) or by sabotage (cutting the wiring, shorting the bus dominant, indiscriminate high-priority traffic), and reports it to the security event log. Maps to [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) SR 7.x and feeds [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) Annex I security event logging. [SR 7.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-7-1) [SR 7.6](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-7-6) [CRA Annex I](https://can-security.net/resources/cra-requirements/) ## Why Availability Monitoring Matters Frame authentication and integrity controls have no effect against an attacker who simply prevents legitimate communication. CRA Annex I lists availability among the essential cybersecurity requirements; IEC 62443 SR 7.x makes it a system-level property with explicit measurement expectations. On CAN, the easiest availability attack is also the cheapest: flooding the bus with high-priority frames, or driving error-frame storms, until legitimate traffic cannot get through. The same bus-side symptoms also appear under sabotage that is not strictly a cybersecurity attack at all: cutting the wiring, shorting the bus dominant, or injecting indiscriminate high-priority traffic to crowd out the rest. Bus load monitoring is the shell that surfaces this whole family of availability impairment, because the observable signal on the bus is the same regardless of intent. Directed attacks against specific frames or functions are the domain of [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/); the line between the two shells is the line between coarse availability harm and targeted manipulation. ## What Gets Monitored The primary signal is **bus load percentage**: the fraction of bit time occupied by dominant states on the bus over a measurement window. A practical monitor watches several windows in parallel, for example 100ms, 250ms, and 500ms. Short bursts close to 100% are common in normal operation (a node transmitting a back-to-back burst after an idle period), so a narrow window alone produces false positives; a longer window confirms whether the saturation is sustained. The alert threshold is set per window: brief bursts are tolerated, while seconds of saturation are not. The simplest implementations stop here, working only on bus-dominant time statistics. Depending on the monitor's capability, an optional secondary signal is **error-frame rate on the bus**. Error frames are emitted by any node that detects a protocol violation and are visible to every listener, so a snooper that wants to count them can do so directly. Simpler monitors omit this channel and rely on load percentage alone. ## Reporting and the Security Event Log Bus load anomalies should be combined with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). Events should carry timestamps, the type of anomaly (sustained load above threshold, error-frame surge where the monitor counts them), and the measurement window that fired the threshold. ## Where to Put the Monitor For higher security levels, place the monitor on a dedicated bus snooper or hardware module with its own trust domain. A compromised node cannot silence what it does not control. For lower-risk products, a hardened software task on an existing node can be sufficient. Either way, the placement and its trust assumptions must be documented in the security justification. ## IEC 62443 Reference This shell directly addresses SR 7.1 (Denial of service protection) and SR 7.6 (Network and security configuration settings) for the bus-load aspect, and supports SR 6.x via the audit-log feed. [SR 7.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-7-1) [SR 7.6](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-7-6) > ### CAN Dragon > Load monitoring and anomaly detection are part of the EmSA CAN Dragon product family, with built-in reporting, logging, and auditable event logs for industrial CAN networks. > [Visit can-dragon.com →](https://can-dragon.com/) ## What This Shell Does Not Catch Bus load monitoring detects coarse availability impairment but does not classify intent: the same alert fires for a targeted DoS, a generic flood, and a cut wire. It also does not look at per-CAN-ID timing or at the content of individual frames. Per-ID frame inter-arrival timing, low-rate stealthy injection (a single spurious frame per second is invisible to a load-percentage threshold), and content-only manipulation of legitimate frames (the load profile is unchanged) are all out of scope here. Pair this shell with [Local Injection Detection](https://can-security.net/solutions/local-injection-detection/) for per-ID injection alarms, with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for directed attacks, frame-timing analysis, and cross-bus correlation, and with [Frame Security](https://can-security.net/solutions/frame-security/) for prevention of the underlying injection. ## Frequently Asked Questions ### What does bus load monitoring detect? Availability impairment on the CAN bus, whether caused by a deliberate availability attack (high-rate flooding, error-frame storms, sustained abnormal load) or by sabotage such as cutting the wiring or shorting the bus dominant. The primary signal is bus load percentage, typically measured over several time windows in parallel (for example 100, 250, and 500 ms) so short bursts close to 100 % are not mistaken for an attack. Simpler implementations track only dominant-state statistics on the bus; more capable monitors also count error frames observed on the bus. Internal TEC and REC counters inside each CAN controller are local to that node and are not shared on the bus, so a global monitor cannot read them. Per-CAN-ID frame inter-arrival timing is not part of bus load monitoring; that belongs to [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ### Where should the bus load monitor sit? For higher security levels, on a dedicated bus snooper or a hardware module with its own trust domain so a compromised node cannot silence it. For lower-risk products, a hardened software task on an existing node can be sufficient, but the trust-domain trade-off should be documented in the security justification. --- # Frame Security The preventive shell at the heart of defense in depth: cryptographic frame protection is the only mitigation that can outright *prevent* frame injection and spoofing attacks rather than just detect them. On CAN, the primary security goal is authentication: receivers need a way to verify that a frame really came from the node that claims to have sent it. Some deployments may additionally require confidentiality, for example when payloads carry sensitive operating data, calibration values, commercial recipes or other intellectual property. The same [AEAD](https://can-security.net/resources/terms-and-definitions/#term-aead) primitives that authenticate frames provide that confidentiality from a single key and nonce: [AES-128-GCM](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm) and the [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) construction both produce an authenticated and, where configured, encrypted frame in one step. This page covers the principal building blocks to protect selected or all frames. For application-layer cryptographic protection of selected Object Dictionary entries (as opposed to per-frame protection), see [Secure Object Fieldbus Access (SOFA)](https://can-security.net/solutions/secure-object-fieldbus-access/). [SR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-3-1) [SR 4.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-1) [SR 4.3](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-3) ## Why Cryptography Is Challenging on CAN Three constraints shape every design. Payload size: 8 bytes on classical CAN leaves almost no room for an authentication tag. Real-time: cryptographic processing must fit within the per-frame budget without breaking control loops. Resources: many CAN nodes are highly constrained microcontrollers with no hardware AES. Where you control the silicon choice, a part with an on-chip AES accelerator and a hardware random number generator removes the resource constraint and greatly speeds up the per-frame calculations. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) page lists CAN FD families that pair the interface with these hardware security features, and the [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page reports what each primitive costs in flash, stack, and time on them. The schemes covered below address these constraints differently. ## CANcrypt 1.0: Scalable Frame Authentication for CAN/CANopen CANcrypt 1.0 is a scalable authentication and encryption layer for classical CAN. It supports configurable trade-offs between bandwidth, latency, and cryptographic strength, and integrates with CANopen and other higher-layer protocols. It supports a total of up to 16 nodes participating in secure communication and uses an extra security frame for each secured data frame. The CANcrypt book and reference implementation document the protocol in full. ## SPsec: Security Sublayer for CAN FD (CANcrypt 2.0) SPsec is a security sublayer specification designed for "small packet networks". It uses the upper 12 bytes of the 64-byte payload to carry the security overhead. This provides authenticated, encrypted data with AES-128-GCM for ALL frames exchanged. It supports N:N messaging, and is designed for integration with CANopen FD. It includes key management primitives for key provisioning and automatic key re-fresh during regular operation. SPsec was developed jointly with University Offenburg. ## CANsec: Potential Future Option for CAN XL and CAN FD [CANsec](https://can-security.net/resources/terms-and-definitions/#term-cansec) is a cryptographic security extension defined for the CAN XL data-link layer. It adds frame-level authentication and optional confidentiality to CAN XL, in a role analogous to MACsec for Ethernet. The construction is AES-GCM based and operates on the CAN XL frame, not on application-layer objects. The specification is currently under definition; once published, CANsec will be a potential future option for per-frame protection on CAN XL and CAN FD networks ## Node Authentication with Frame Security When all frames are protected, this also includes frames with device identification information. While this ensures authenticity on a group level, it does not provide true end to end assurance. Where that is essential, device identification needs to be verified using a device specific key, not a group shared key. Both CANcrypt V2.0 / SPsec and [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) provide 1:1 security communication modes. ## Replay Protection and Nonce Management Authentication proves a frame is genuine; it does not by itself prove the frame is fresh. Without a freshness input, a valid frame captured off the bus can be re-injected later and will still verify. The schemes here close that gap in two different ways, matched to how each one communicates. CANcrypt 2.0 / SPsec binds every protected frame to a synchronized 64-bit timer that all participating nodes advance in step, so a frame is accepted only against the current time value and a captured frame no longer matches once the timer has moved on; at 64 bits that value does not wrap within any practical device lifetime. SOFA, which secures individual application-layer accesses rather than a continuous frame stream, derives its freshness from a combination of a random input established in the challenge/response and a counter, so each protected access is bound to a value the receiver has not accepted before. In either case the receiver rejects a frame or access whose freshness value it has already seen or that falls outside its accepted window. The same freshness state serves a second, mandatory purpose. AES-128-GCM requires a unique nonce for every message encrypted under a given key; reusing a nonce under one key breaks both the confidentiality and the authentication of GCM. The synchronized timer in SPsec and the random-plus-counter input in SOFA supply that uniqueness, together with a per-node identifier, and periodic key refresh bounds how long any single key is used. A deployment that fixes a key must still guarantee the nonce never repeats under it, which is the practical reason these schemes advance a shared timer or refresh keys rather than run one static key indefinitely. ## Choosing Between CANcrypt 1.0, SPsec, and SOFA Per-frame protection on classical CAN with limited payload: CANcrypt 1.0. Per-frame protection on CAN FD with full security at the network layer: CANcrypt 2.0 / SPsec. Future per-frame protection on CAN XL once the specification is published: CANsec. Application-layer protection for selected Object Dictionary entries on any of these: [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/). > ### CANcrypt > CANcrypt provides both local injection monitoring and frame protection for both classical CAN and CAN FD. CANcrypt versions cover support for classical CAN and CAN FD with the option to authenticate and encrypt *all* frames when used on CAN FD. > [Visit CANcrypt.net →](https://www.cancrypt.net/) ## What This Shell Does Not Catch Cryptographic frame authentication only holds while the keys hold. An attacker who extracts [PSK](https://can-security.net/resources/terms-and-definitions/#term-psk) material from a compromised node, a debug interface, or a poorly protected firmware image bypasses the entire shell. Frame authentication also does not help against bus flooding; the attacker does not need valid frames to occupy the medium. Pair this shell with [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) for flood detection and with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for cross-bus correlation. ## Frequently Asked Questions ### What is the difference between CANcrypt and SPsec? CANcrypt is the original scalable authentication and encryption layer designed for classical CAN/CANopen with limited payload. SPsec (CANcrypt 2.0) is its CAN FD-focused successor, a security sublayer specification co-developed with University Offenburg and CiA's HLP Security SIG. ### Can classical CAN frames be encrypted? Authenticated encryption inside a single classical CAN frame is impractical because of the 8-byte payload. CANcrypt provides scalable authentication (and a form of confidentiality across multiple frames). True per-frame authenticated encryption is much more practical on CAN FD via SPsec. ### What cryptographic algorithm is recommended for CAN frame authentication? AES-128-GCM is the AEAD primitive used by SPsec for CAN FD frame authentication and by [Secure Object Fieldbus Access (SOFA)](https://can-security.net/solutions/secure-object-fieldbus-access/) at the application layer. It is recommended by [BSI TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102), provides authenticated encryption, and is widely supported on modern microcontrollers. ### How does node authentication work on a CAN network? Node authentication uses an authentication key (system-specific: typically the Provisioning Key or the Update Key, depending on the deployment) and a challenge/response exchange: the verifier sends a nonce, the device responds with a MAC over the nonce computed with the authentication key. This proves possession of the key without transmitting it. --- # Local Injection Detection Each legitimate sender can watch for impersonation of its own CAN IDs and can raise an alarm when an unexpected source transmits one of them. The mechanism turns every legitimate sender into a localized intrusion detector and is the lowest, non-cryptographic detective shell in the CAN defense-in-depth model. [SR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-3-1) ## How Local Injection Detection Works The node maintains a list of CAN IDs it "owns" for transmission. Its CAN driver receives all frames on the bus (CAN transceivers see every frame) and checks each one against the owned-ID list. A match without a corresponding self-transmit is flagged as a suspected injection and where possible is forwarded to the [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for system-level correlation. ## What It Detects and What It Misses It detects: external nodes spoofing the legitimate sender's CAN IDs. It misses: spoofing of CAN IDs owned by another node (the listening node has no a priori knowledge of "who else owns what" beyond its own list); content-only manipulation (legitimate CAN ID, malicious payload, where only the sender knows); fast spoofing followed by quick rollback during a window when the legitimate sender does not happen to transmit. ## Driver-Level Throughput Limiting Pair local injection detection with driver-level transmission rate limiting on the legitimate sender. If a malicious node attempts to flood with the spoofed ID, the legitimate sender's driver can refuse to amplify the issue and the security event is captured cleanly. This is a building block for SL2 against bus-flooding attempts. ## IEC 62443 SL2 for Local Node For inject/replay against a node with local injection detection plus rate limiting, [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) SL2 is reachable for that node's own messaging. SL3 typically requires [Frame Security](https://can-security.net/solutions/frame-security/) (cryptographic authentication and confidentiality). [SR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-3-1) [SR 7.x](https://can-security.net/resources/iec-62443-sl2-requirements/) ## Integration with Anomaly Event Monitoring Local injection detection is most useful when its findings are forwarded to [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) with an auditable log. Standalone, the detection lives only in the legitimate sender; integrated, it becomes part of the system's [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra)-relevant security posture. Although forwarding the information could be executed via CAN, this might not work if the device detecting and transmitting the information is already under attack. The next best solution here is stopping transmission of a secure heartbeat. The Anomaly Event Monitoring may interpret a lost secure heartbeat as that device being under attack. [CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt)'s (and SPsec's) secure heartbeat implements this concept: sender liveness with cryptographic protection. > ### CANcrypt > CANcrypt provides both local injection monitoring and frame protection for both classical CAN and CAN FD. CANcrypt versions cover support for classical CAN and CAN FD with the option to authenticate and encrypt *all* frames when used on CAN FD. > [Visit CANcrypt.net →](https://www.cancrypt.net/) ## What This Shell Does Not Catch Local injection detection only detects injection of frames using the listening node's own CAN IDs. It cannot detect spoofing of a different node's IDs, content-only manipulation of legitimate frames, or fast spoof-and-rollback during a window when the legitimate sender is silent. It detects but does not prevent; the injected frame still reached every receiver before the alarm fires. Pair this shell with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for cross-node correlation, and with [Frame Security](https://can-security.net/solutions/frame-security/) for true prevention. ## Frequently Asked Questions ### Can a CAN node detect when someone else uses its CAN ID? Yes. A node listening to its own CAN ID can detect frames using that ID that it did not transmit. This is the basis of local injection detection, a non-cryptographic shell at the data-link / network layer. The detection is local and immediate; no central authority is needed. ### Does local injection detection prevent or just detect frame injection? It detects, not prevents. Detected events are surfaced to the security event log and to [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) for correlation. Prevention requires [Frame Security](https://can-security.net/solutions/frame-security/) (CANcrypt or [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec)). --- # Mitigation Flowchart Our six-step flowchart gives first guidance on which CAN security mitigations to apply. Each step poses one question about your system, and the answer points to the control to add before you move on. The questions run from the least invasive change, protecting an existing gateway or limiting physical access, to the most invasive, updating node firmware to add authentication and possibly encryption. Our goal is that you add only what your exposure requires. ## Start Here If You Do Not Know Where to Start If you have not yet decided which mitigations your CAN or CAN FD system needs, work down the six questions in the flowchart below to get first guidance. Each numbered decision asks one thing about your system. The answer points to a potential control to add before moving on. The order is deliberate. The earlier steps protect what is already there and limit who can reach the bus, the middle step reshapes the network, and the later steps change the nodes themselves. The annotations on the right of the chart show the rising cost of each band: logical and physical access limitation first, then additional hardware, then a firmware or hardware security update of the nodes. Treat the result as first guidance, then confirm it with a structured [risk assessment](https://can-security.net/risk-assessment/). ## 0. Secure Bootloader Comes First This step carries the number zero because it is not really a question. The flowchart branches on properties of your system, but a secure bootloader is required anyway, so it sits before step one rather than inside the chart. The [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) requires that vulnerabilities can be fixed through security updates, and [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) expects authenticated firmware update and secure boot. An update channel that does not authenticate what it installs becomes the easiest way to defeat every control you add later. For a product in scope of the CRA or IEC 62443 you therefore do not really have a choice: put an authenticated bootloader and secure boot in place first, then work through the six questions below. See [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). ## 1. Protect the Gateways The first question in the chart asks whether the system has any gateways. A gateway is any node that bridges the CAN network to any other network, such as a backend system, a remote-service link or just another neighboring fieldbus. Where they exist, they are exposed entry points, because an attacker who never touches the wiring can still reach the bus through them. If the answer is yes, ensure gateway protection before anything else: harden the gateways, authenticate what crosses them, and treat them as the boundary of trust. See [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) and [Access Limitation](https://can-security.net/risk-assessment/access-limitation/). ## 2. Limit Physical Access and Security Event Monitoring The second step asks whether anyone can gain physical access to the CAN bus, its wiring, or its connectors. If a person can reach the bus, they can listen to every frame and inject their own, so this question matters even when no gateway exists. The chart gives two responses. First, verify if you can improve access limitation so the wiring and connectors are harder to reach. Second, add security monitoring so that tampering and abnormal traffic are detected rather than silent. See [Access Limitation](https://can-security.net/risk-assessment/access-limitation/), [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) and [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ## 3. Contain Exposure to a Segment The third step asks whether the exposure identified so far is limited to one segment. If it is not, the exposed portion of the network can be used to reach all nodes. The mitigation is to add security bridges: divide the system into zones by risk profile and place controlled bridges between them, so classical CAN can stay where the wiring is physically protected while exposed areas sit behind a bridge running a secure protocol. This is the first step that adds new hardware to the system. See [Zoning / Segmentation](https://can-security.net/solutions/zoning-segmentation/). ## 4. Authenticate Nodes and Lock Configuration The fourth step asks whether you need to verify the authenticity and configuration of the nodes themselves, that is, to be certain which node sent a given message and that its settings have not been altered. If so, add node authentication and configuration locks as provided by SOFA. Authenticated access to configuration objects keeps parameters and calibration data from being changed by an unauthorized party. From this step onward the chart notes that a firmware or hardware security update of the affected nodes is required. See [Secure Object Fieldbus Access](https://can-security.net/solutions/secure-object-fieldbus-access/). ## 5. Encrypt Messages That Need Privacy This step asks whether message contents must remain private. Some process data, calibration values, or key material must not be readable by anyone listening on the bus. If privacy is required, add message encryption on the frame level. Authenticated encryption on each protected frame keeps its payload confidential while also detecting tampering, so confidentiality and integrity come together rather than as separate add-ons. See [Frame Security](https://can-security.net/solutions/frame-security/). ## 6. Authenticate Messages That Need Integrity The last step asks whether message authenticity must be guaranteed without confidentiality, so that a receiver can confirm a frame is genuine and unmodified rather than injected or replayed. If so, add message authentication only. An authentication tag on each protected frame lets receivers reject anything that was not sent by a legitimate, keyed node. See [Frame Security](https://can-security.net/solutions/frame-security/). ## Frequently Asked Questions ### How do I use this mitigation flowchart? Work down the six steps in order. Each step poses one question about your system, and the answer points to the control to add. The steps are ordered from the least invasive change, such as protecting an existing gateway or limiting physical access, to the most invasive, such as updating node firmware to add authentication, so you add only what your exposure actually requires. ### Do I have to apply every step? No. Each step is conditional on a property of your system. If there is no gateway, step 1 does not apply. If the bus is already confined to a protected segment, step 3 adds nothing. The flowchart is first guidance for teams who do not yet know which controls they need, not a mandatory checklist. A full [risk assessment](https://can-security.net/risk-assessment/) refines and confirms the result. ### Where does this flowchart fit with the rest of the site? It is an entry point into the Solutions catalog. Each step links to the control that implements it, and the [catalog](https://can-security.net/solutions/) carries the full threat-by-control matrix. For how to combine several controls into layered protection for a given IEC 62443 security level, see [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) under Risk Assessment. --- # Secure Bootloader for CAN Authenticated firmware update for CAN-based products. The secure bootloader is the gate between manufacturer-intended code and what actually runs on the device. Any software update or configuration table load through this mechanism must be authenticated, and encrypted where the image itself is confidential. Where public/private key methods are not possible due to processing constraints, cryptographic methods based on pre-shared keys are used (the [MCU Crypto Benchmarks](https://can-security.net/resources/crypto-benchmarks/) page shows the size and time cost that drives that choice). The key used for these transfers must be different from keys used by frame security or SOFA. [CRA Art. 13.2c](https://can-security.net/resources/cra-requirements/) [CRA Annex I](https://can-security.net/resources/cra-requirements/) [SR 4.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-1) [SR 4.3](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-3) ## Why a Secure Bootloader Matters Cryptographic frame-level shells protect frames in flight; they do not protect the firmware that implements them. Without a secure bootloader, a single attacker write to flash can replace the entire firmware, keys included. [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) Article 13.2(c) requires manufacturers to provide security updates and to ensure those updates can be applied safely. That is impossible if any attacker with bus access can also perform a "malicious update" against the same channel. The bootloader is the gate between the code the manufacturer intended and the code that actually executes on the device. ## Standardized Bootloading on CAN CANopen defines a standardized firmware-download protocol (CiA 710) at the application layer, so update tools and devices interoperate across vendors. Standardization, however, is about *interoperability*, not security. CANopen reserves an object dictionary entry "to be used for security", but until a method is standardized around it, each vendor secures the download differently, and that vendor-specific security is what breaks cross-vendor interoperability. ## Two Ways to Protect a Firmware Update A firmware image must reach the device authenticated. Encryption is a separate choice, taken where the image itself is confidential, and it is symmetric in both options below: the image is encrypted with AES-128-GCM under a pre-shared Update Key, which is recommended by BSI TR-02102 and is widely supported on modern microcontrollers, including hardware-accelerated implementations. What differs between the options is how the device proves the image is genuine, by a symmetric authentication tag or by a manufacturer signature. [BSI TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102) ### Option A: Symmetric Encryption and Authentication AES-128-GCM provides confidentiality and authenticity together in one pass. The authentication tag it produces is verified with the same Update Key that decrypts the image, so no second key and no public-key operation are involved. The bootloader decrypts and checks the tag before flashing. This is the lower-burden path and the usual choice on constrained parts, and it rests entirely on keeping the Update Key secret, which is a symmetric key-management task. The [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) page covers deriving and protecting that key. ### Option B: Symmetric Encryption With an Asymmetric Signature Where the image is encrypted, encryption stays symmetric under the Update Key, but authenticity is proved by a manufacturer signature, over the image itself or over a manifest that binds the image by its hash. Each device verifies that signature with a public key it holds. Only the public half sits on the device, so a key pulled from one unit does not let an attacker forge an update for the fleet. This costs a public-key verification on the device and a signing key the manufacturer must protect, and it earns origin proof against counterfeits and authority that can be governed centrally. The [Symmetric vs Asymmetric](https://can-security.net/key-management/symmetric-vs-asymmetric/) page covers the trade, and [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) covers running the signing side. ## What Each Option Means for Key Management The Update Key is the pre-shared key that protects a firmware image, and, depending on the system, a configuration table loaded as one block. It is separate from the authentication key used by [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/) for Object Dictionary access, so update authority stays independent of operational access; both sit inside the CANopen security framework under definition at [CiA](https://can-security.net/resources/terms-and-definitions/#term-cia). What the two options ask of that key is different, and the difference decides how much process you put in place. ### Option A: One Symmetric Key, Both Jobs A single AES-128-GCM Update Key can cover both encryption and authenticity in one pass, but only when the key is unique per device. A shared Update Key still encrypts, yet its authenticity guarantee is hollow: an attacker who extracts the one key from any unit can forge an accepted update for every unit that holds it. Diversifying the Update Key per device, or at least per batch, is what turns the symmetric tag into a real proof of origin and limits the blast radius of a single disclosure. One exposure remains: unless the part offers secure provisioning, the first firmware and Update Key are written in the clear, so that first programming must happen in a trusted environment. Parts with on-chip key storage, listed on the [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) page, close that window. The [Symmetric Key Management](https://can-security.net/key-management/symmetric-key-management/) page covers deriving per-device keys from a root. ### Option B: Signature for Authenticity, Key for Secrecy The manufacturer signature proves authenticity on its own: the device holds only the public verification key, so nothing that could forge an update can be read out of a fielded unit, and one signing key governs the whole fleet from one place. The signature does not encrypt, though. Where the image must stay confidential, a symmetric Update Key is still required alongside the signature to carry the encryption, so Option B narrows the Update Key's job to secrecy rather than removing it. The secret that now matters most is the private signing key, which must stay protected for the life of the product, usually inside a hardware security module. The [Asymmetric Key Management](https://can-security.net/key-management/asymmetric-key-management/) page covers running that side. ## Challenge/Response Flow for Bootloader Access Entering update mode requires a challenge/response, but not against the Update Key. The Update Key protects the image; a separate access key gates who may start an update, and that key is exchanged or generated during device [handover](https://can-security.net/key-management/handover/), when the device is commissioned to its owner. Keeping the two apart means the authority to begin an update is independent of the key that protects the payload, and it still prevents unauthenticated parties from initiating an update attempt in the first place. ## Anti-Rollback and Downgrade Protection A valid signature or authentication tag proves an image is genuine, not that it is current. Without a version check, an attacker who captured an earlier, correctly signed image can replay it to force a downgrade to firmware with a known vulnerability. The device must therefore carry a monotonic firmware version counter and refuse any image whose version is not greater than the one it already runs, so a rollback to a superseded release is rejected even when its cryptography still verifies. The same rule applies to configuration table loads: refuse an older table that would reopen a closed gap. ## Secure Boot at Startup Secure boot, that is, verifying firmware authenticity and integrity at startup, complements the secure update flow. Together they ensure that only firmware the device can verify runs on it, by the symmetric tag of Option A or the manufacturer signature of Option B, and that this property survives reboots, power cycles, and update failures. Both are commonly expected in CRA conformity assessments for CAN-based products. ## Lifecycle and Compliance Context The bootloader's authentication only protects what arrives at the device. Beyond it sits the manufacturer's release pipeline (signing keys, build provenance, software bill of materials) and the regulatory expectations that wrap them. CRA Annex I expects manufacturers to identify which firmware reached which devices and to roll fixes forward when vulnerabilities are found; [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)-4-1 covers the secure-development side of producing that firmware in the first place. [CRA Annex I](https://can-security.net/resources/cra-requirements/) [IEC 62443-4-1](https://can-security.net/resources/iec-62443-sl2-requirements/) > ### EmSA Secure Bootloader Software > We provide secure bootloader software for CAN/CANopen devices using [AEAD](https://can-security.net/resources/terms-and-definitions/#term-aead) with AES-128-GCM and Update-Key-based access control, sharing the cryptographic primitives with [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/). Reference target: NXP LPC54618. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## What This Solution Does Not Catch A secure bootloader gates what gets installed; it does not address what happens at runtime once trusted firmware is executing. Vulnerabilities introduced by signed-but-buggy firmware, key-extraction attacks against the Update Key, or runtime exploits that do not touch the update channel are all out of scope here. Pair the bootloader with [Frame Security](https://can-security.net/solutions/frame-security/) for runtime authenticity and confidentiality of bus traffic, with [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/) to surface anomalous behavior from a node whose signed firmware turns out to be vulnerable, and with the [Access Limitation](https://can-security.net/risk-assessment/access-limitation/) perimeter shell to keep Update Key material physically protected. ## Frequently Asked Questions ### Is a secure bootloader required by the EU CRA? CRA Article 13(2)(c) requires that vulnerabilities can be addressed through security updates, including automatic updates where appropriate. For CAN-based products this practically requires a bootloader that authenticates incoming firmware and resists tampering; otherwise the update channel itself becomes the attack vector. ### What is the Update Key? The Update Key is a pre-shared key used for software updates and, depending on the system, also for configuration updates where a whole config table is loaded at once. It is defined inside the CANopen security framework currently under definition at CiA. It is separate from the authentication key used by [SOFA](https://can-security.net/resources/terms-and-definitions/#term-sofa) for Object Dictionary access, which is typically the operational key established at handover. The separation lets update authority be granted independently of operational access, supporting different key-management lifecycles for production updates and field operation. ### Can firmware authenticity use a symmetric tag, or does it need a signature? Either works. With the symmetric approach the AES-128-GCM authentication tag is verified with the same Update Key that decrypts the image, which is the lower-burden path for constrained devices. With the asymmetric approach the manufacturer signs the image, or a manifest that binds the image by its hash, and each device verifies that signature with a public key it holds, so no secret capable of forging an update sits on the device. Where the image is encrypted, encryption is symmetric in both cases; only the authentication mechanism differs. ### Can I retrofit a secure bootloader onto an existing product? Yes, in principle. The retrofit is bounded by available flash, key-storage hardening on the target microcontroller, and whether the existing boot ROM allows replacement. EmSA's reference implementation targets the NXP LPC54618 and is adapted on engagement to other targets; [contact us](https://can-security.net/contact/) for a fit assessment against your hardware. --- # Secure Object Fieldbus Access (SOFA) For CANopen, [SOFA](https://can-security.net/resources/terms-and-definitions/#term-sofa) means secure write or read access to selected Object Dictionary entries. The mechanism is based on [AEAD](https://can-security.net/resources/terms-and-definitions/#term-aead) with [AES-128-GCM](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm) and pre-shared keys. Two primary use cases drive its design: authentication of identification and configuration protection or locking. The SOFA specification is currently under definition at [CiA](https://can-security.net/resources/terms-and-definitions/#term-cia). Where [Frame Security](https://can-security.net/solutions/frame-security/) protects frames in flight, SOFA decides who can read or write specific application-layer objects. [SR 1.2](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-1-2) [SR 2.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-2-1) [SR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-3-1) [SR 4.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-1) ## What SOFA Protects SOFA covers application-layer assets, potentially segmented across multiple frames: configuration tables set during commissioning, calibration data factory-set or field-tuned, selected process variables exposed through the fieldbus, and security-relevant objects such as key material. The [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) expects integrity and access-control protection for these. Frame Security alone protects the frames that carry them but not the objects exchanged on a higher layer. ## SOFA on CANopen: Selected Object Dictionary Entries For CANopen, SOFA marks selected Object Dictionary entries as security-protected. A client that wants to read or write a protected entry must follow a secure cTLS-style sequence: a challenge/response exchange under the authentication key. On success, subsequent (U)SDO transfers against protected entries are wrapped in an AEAD construction so receivers can verify both integrity and origin. Entries that are not marked protected continue to use the standard CANopen (U)SDO path; SOFA does not change the access pattern of objects that do not need it. ## AEAD with AES-128-GCM SOFA is based on AEAD (Authenticated Encryption with Associated Data) using AES-128-GCM. AES-128-GCM is recommended by [BSI TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102) and is widely supported on modern microcontrollers, including hardware-accelerated implementations. When you select the device, a part with an on-chip AES-GCM accelerator and secure key storage runs these authenticated accesses faster and keeps the key material out of general-purpose memory. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) page lists CAN FD families that provide these features. The same AEAD construction underpins the [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/)'s authenticated firmware update path (under a separate [Update Key](https://can-security.net/resources/terms-and-definitions/#term-update-key)), so a CANopen device that already carries the SOFA primitives can reuse them for the bootloader without adding a second algorithm. ## Use Case: Authentication of Identification When a SOFA client reads or writes a protected Object Dictionary entry, the SDO transfer runs as an ordinary CANopen transfer: the receiver takes the transferred bytes into a buffer and acts on them only after checking their security information, the same receive-then-verify order any secure channel follows. Each protected entry is wrapped in an AEAD construction (AES-128-GCM) under the device's authentication key. That key is an operational key: a [session key](https://can-security.net/resources/terms-and-definitions/#term-session-key) the two peers derive from the [Integrator Key](https://can-security.net/resources/terms-and-definitions/#term-integrator-key) and a session salt, not the Provisioning Key, which is the ownership credential and does not protect operational traffic. The receiver recomputes the authentication tag (a [MAC](https://can-security.net/resources/terms-and-definitions/#term-mac) under the authentication key) over the received bytes and compares it against the tag carried in the message. Only on a match is the value written to its Object Dictionary entry; on a mismatch it is discarded and the entry is never touched. Each protected access also carries a freshness value, a random input established in the challenge/response combined with a counter, so a captured access cannot be replayed against the entry later. Encryption of the payload is optional in this use case: AEAD supports an authenticated-only mode (associated data without ciphertext), so configuration values can remain readable on the wire while still being protected against modification. The exchange is not a novel construction. It aligns with a combination of two well-established standards: **[TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk) (RFC 4279)** for the pre-shared-key authentication model, and **[ISO/IEC 9798](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-9798)-2** for the symmetric-key challenge/response mechanism between two entities. Both are widely deployed and reviewed, and both rely on the same primitives (a symmetric authentication key plus a nonce-and-MAC exchange) that SOFA carries onto the CANopen fieldbus. ## Use Case: Configuration Protection and Locking The two options supported here are that either the configuration data exchanged is security protected or that configurable parameters can only be changed while in a secure maintenance state. As secure SOFA communication has significant overhead, the most efficient option is the use of configuration tables written to a single secure object (in CANopen terms, this could be a concise DCF file carrying settings for multiple objects). Alternatively, selected Object Dictionary entries (for example all 1xxxh writable configuration parameters) can be marked write-protected, after the initial configuration process happened. Keywords such as "LOCK" and "UNLK" can be written to a secure object that implements the lock and unlock function. This satisfies CRA Annex I's least-privilege and integrity expectations on configuration data, and maps onto [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) SR 2.x (Use control) cleanly. ## Optional Device Identity SOFA is symmetric at its core, and the accesses above authenticate by possession of a shared operational key. Where a device can afford public-key operations, SOFA offers an optional [device identity](https://can-security.net/resources/terms-and-definitions/#term-factory-device-identity) based on Ed25519, selectable per object and per direction. On an access so configured, an Ed25519 signature over the challenge transcript replaces the AEAD tag, so the access is bound to a specific device rather than to mere key possession. This suits the infrequent control-plane accesses that need attribution and no secrecy, an identity read, an ownership claim, a mode switch, or a configuration lock, while operational and cyclic data stays on the faster symmetric tag. A device that implements none of this stays fully conformant with the symmetric-only use above. The identity credentials, their installation at handover, and the signed exchange are defined in EmSA-WP-105. ## SOFA on Other Higher-Layer Protocols Other non-CANopen higher-layer protocols on CAN do not yet have a published SOFA-equivalent standard. Manufacturers facing CRA Annex I integrity and access-control requirements have three options today: (1) adapt the CANopen AEAD construction onto the HLP-specific message structure; (2) layer a SOFA-equivalent envelope on top of the HLP's existing parameter-access services; or (3) rely on [Frame Security](https://can-security.net/solutions/frame-security/) alone and accept the residual risk on application-layer access control. The CAN Security Reference treats this as one of the gaps between regulation and standard; see the [Why Now: regulation–standard gap](https://can-security.net/why-now/#gap) page. ## Currently Under Definition at CiA The full SOFA specification is currently under definition at CiA. The mechanism described on this page (AEAD with AES-128-GCM, challenge/response under the authentication key, write/read gating on selected Object Dictionary entries) is the agreed direction; specific document numbers and the formal review state will be published by CiA when the specification reaches consensus. Until then, manufacturers building CRA-relevant CAN products can use the EmSA reference implementations and consult our white papers for traceable, defensible design choices. ## IEC 62443 and CRA Mapping SOFA contributes to SR 1.2 (Software and device identification and authentication via the authentication key), SR 2.1 (Authorization enforcement for object access), SR 3.1 (Communication integrity at the application layer), and SR 4.1 / SR 4.3 (Information confidentiality and use of cryptography) where entries are encrypted. CRA Annex I lines up similarly: integrity and access control on configuration data and process variables. [SR 1.2](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-1-2) [SR 2.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-2-1) [SR 3.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-3-1) [SR 4.1](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-1) [SR 4.3](https://can-security.net/resources/iec-62443-sl2-requirements/#sr-4-3) [CRA Annex I](https://can-security.net/resources/cra-requirements/) > ### CANcrypt / SPsec — Pairs Naturally with SOFA > [CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) / [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) covers per-frame authentication and encryption on CAN, CANopen, and CAN FD; SOFA protects the application-layer objects those frames carry. Many systems use both. > [Visit CANcrypt.net →](https://www.cancrypt.net/) > ### EmSA SOFA Integration > We integrate SOFA on CANopen and adapt the AEAD construction onto J1939, FireCAN, or CleANopen where no standardized equivalent yet exists, with traceable mapping to CRA Annex I and IEC 62443 SR 1.x / 2.x. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## What This Shell Does Not Catch SOFA protects access to objects at the application layer; it does not authenticate or encrypt the underlying frames. An attacker who can inject frames at the data-link layer can flood, replay, or spoof at a lower level than SOFA cares about; that is [Frame Security](https://can-security.net/solutions/frame-security/)'s territory. SOFA also depends on the authentication key; key extraction from a compromised node bypasses the shell. Pair SOFA with the [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/) to ensure the bootloader is only activated by authentic loader or diagnostic tools. ## Frequently Asked Questions ### What is Secure Object Fieldbus Access (SOFA)? SOFA is the application-layer cryptographic shell for CAN-based fieldbuses. For CANopen, SOFA provides authenticated read or write access to selected Object Dictionary entries. The mechanism is based on AEAD with AES-128-GCM under an operational session key, derived from the Integrator Key and a session salt rather than from the Provisioning Key. The challenge/response authentication-of-identification exchange aligns with a combination of TLS-PSK (RFC 4279) for the pre-shared-key model and ISO/IEC 9798-2 for the symmetric-key challenge/response mechanism. The two principal use cases are authentication of identification and configuration locking. Where a device can afford public-key operations, an optional Ed25519 identity adds device attestation on the infrequent control-plane accesses. SOFA is currently under definition at CiA. ### How does SOFA differ from Frame Security? Frame Security protects individual frames on the wire at the data-link or network layer. SOFA protects access to specific application-layer objects (Object Dictionary entries on CANopen) regardless of how many frames an access spans. The two are complementary: SPsec or CANcrypt protect transport; SOFA decides who is allowed to read or write what. Many real systems use both. ### What about SOFA on J1939, FireCAN, or CleANopen? There is no published SOFA-equivalent standard yet for J1939, FireCAN, or CleANopen. CRA Annex I integrity and access-control requirements still apply, so manufacturers either adapt the CANopen AEAD construction onto the HLP-specific message structure, layer a SOFA-equivalent envelope on top, or rely on [Frame Security](https://can-security.net/solutions/frame-security/) only. This is one of the gaps the CAN Security Reference's [Why Now: regulation–standard gap](https://can-security.net/why-now/#gap) page calls out. --- # Zoning / Segmentation Zoning and segmentation is the [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) architectural pattern of dividing a system into separate zones by risk profile, with controlled conduits between them. The illustration shows how a classical CAN network is split into two segments: a physically well-protected classical CAN segment (orange) and a section with exposed wiring where [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) provides secure CAN FD communication. It is not a per-node defensive shell, it is a choice about how the CAN topology itself is laid out, applied selectively where it helps. [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) [SR 5.x](https://can-security.net/resources/iec-62443-sl2-requirements/) ## What Zoning Means on CAN A zone in the IEC 62443 sense is a grouping of assets with common security requirements. On a CAN system, a zone is typically one CAN segment: the wires and the nodes attached to them. The whole system is divided into zones based on what is reachable, what is exposed, and what level of trust each part of the system holds. Conduits between zones are the bridges, routers, or gateways that carry traffic from one zone to another with controlled filtering and policy enforcement. ## Classical CAN in Protected Zones, CAN FD on Exposed Segments The most common payoff from CAN zoning is mixing or selecting protocols depending on exposure profiles. Classical CAN remains a low-cost, well-understood, real-time solution where wires and connectors are physically protected: inside a sealed enclosure or between cards on a backplane. On segments where the wiring leaves the protected enclosure, attaches to user-accessible connectors, or runs near a remote-service interface, CAN FD with [Frame Security](https://can-security.net/solutions/frame-security/) carries the integrity and authenticity guarantees that the higher exposure demands. The bridge between the two segments mediates which messages are allowed to cross. ## Bridges and Gateways Between Zones Every conduit between zones is a control point. A bridge between a classical-CAN inner zone and a CAN FD outer zone enforces which messages can cross, with whose authority, and in which direction. The hardening of these coupling devices is general industrial cybersecurity practice; the dedicated [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) page covers the IEC 62443-3-3 SR 5.x and [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) expectations that apply to them. ## IEC 62443 and CRA Mapping Zoning and segmentation aligns with IEC 62443-3-2 (zone and conduit modeling as the basis for risk assessment) and IEC 62443-3-3 SR 5.x (Restricted data flow / zone-and-conduit). It is the architectural lever that the risk assessment uses to bring high-exposure parts of the system back to an acceptable IEC 62443 SL without forcing every segment to the same baseline. [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) Annex I I-2i (limit attack surfaces) and I-2j (reduce incident impact) both favor systems that partition cleanly into zones with controlled conduits. [IEC 62443-3-2](https://can-security.net/resources/iec-62443-sl2-requirements/) [IEC 62443-3-3 SR 5.x](https://can-security.net/resources/iec-62443-sl2-requirements/) > ### CAN Dragon Router FD > Coupling device that implements the SPsec secure bridge between zones. Joins a classical CAN segment to a CAN FD segment carrying SPsec frame protection, enforcing the per-direction filtering and policy that the conduit between two zones of different exposure profiles requires. > [Learn more →](https://can-dragon.com/) ## What This Approach Does Not Catch Zoning is a layout decision; it does not by itself defend any individual frame, node, or object. Within each zone, the appropriate shells from the catalog still need to be selected and deployed. A poorly hardened bridge between zones turns the conduit itself into the weakest link: if the bridge can be subverted, the segmentation no longer holds. ## Frequently Asked Questions ### Why is zoning and segmentation treated separately from the per-node defensive shells? The per-node shells (bus load monitoring, local injection detection, frame security, anomaly event monitoring, [SOFA](https://can-security.net/resources/terms-and-definitions/#term-sofa)) are applied uniformly across a CAN segment. Zoning and segmentation is a system-level architectural pattern: a choice about how the CAN topology itself is laid out. It is applied selectively and asymmetrically across segments, so it does not fit a single column on the threats matrix. ### When does it make sense to keep classical CAN in part of the system? When the segment is inside a physically protected enclosure with controlled wiring and no remote-service interface. Classical CAN is cheap, well understood, and adequate where access is not a concern. Adding cryptographic frame protection to an internal segment whose wires are inside a sealed cabinet often costs more than the residual risk it removes. ### How does zoning relate to Secure Gateways? [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) covers the perimeter coupling devices between CAN and other networks. Zoning and segmentation is the architectural choice about how to partition the CAN side into segments before those gateways come into play. The two complement each other: zoning defines the segments, Secure Gateways handles the conduits leaving CAN entirely. --- # Threats and Attack Vectors on CAN and CAN FD Networks This page surveys the threats facing CAN and CAN FD systems. Threats are grouped by attack surface and accompanied by [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0 baseline scores derived in EmSA-WP-103. Each category links to a deeper page with detailed analysis and the corresponding mitigations. ## Categories of CAN Bus Threats Threats to CAN and CAN FD systems fall into three broad categories: [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/) (inherent to the bus), [Physical Access](https://can-security.net/threats/physical-access/), and [Remote Attack](https://can-security.net/threats/remote-attack/) via gateways and diagnostic ports. Real-world attacks usually combine several of these, for example remote entry through a maintenance gateway followed by frame injection or replays enabled by the protocol's lack of authentication. ## Threat Categories and CVSS Baseline The following table summarizes each threat category against an unprotected classical CAN node. Default CVSS v4.0 baseline for an unprotected CAN node: `5.2 / Medium` with vector `CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N` (source: EmSA-WP-103). | Threat | Attack Vector | CVSS baseline | Detail | | --- | --- | --- | --- | | Gateway / service-interface compromise | Network or Adjacent | Higher than baseline | [Remote Attack →](https://can-security.net/threats/remote-attack/) | | Replay attacks | Physical or Network | 5.2 / Medium | [Protocol Weaknesses →](https://can-security.net/threats/protocol-weaknesses/) | | Frame injection / spoofing | Physical or Network | 5.2 / Medium | [Protocol Weaknesses →](https://can-security.net/threats/protocol-weaknesses/) | | Physical bus tapping / sniffing | Physical | Low (no integrity impact) | [Physical Access →](https://can-security.net/threats/physical-access/) | | Bus flooding / DoS* | Physical | 5.2 / Medium | [Physical Access →](https://can-security.net/threats/physical-access/) | * Bus flooding / DoS may often be classified as sabotage rather than a cybersecurity attack: like cutting wires, it disrupts global communication without targeting a specific device or function. ## How Threats Relate to IEC 62443 Security Levels IEC 62443 frames threats by attacker capability: [SL1](https://can-security.net/resources/terms-and-definitions/#term-sl) (incidental misuse), [SL2](https://can-security.net/resources/terms-and-definitions/#term-sl) (intentional, low resources), [SL3](https://can-security.net/resources/terms-and-definitions/#term-sl) (intentional, moderate resources with technology-specific skills) and [SL4](https://can-security.net/resources/terms-and-definitions/#term-sl) (intentional, extended resources with technology-specific skills). Most CAN attack scenarios in practice map to SL2 or SL3. The defensive response is layered, since no single control covers all of these threats. Note that even an attacker with low resources might have access to commercially available "diagnostic devices" that support pre-loaded attack scenarios (like opening a vehicle's doors or starting an engine). [IEC 62443](https://can-security.net/resources/iec-62443-sl2-requirements/) > ### EmSA Training — CAN Threats & Defences > Class on CAN-specific cybersecurity characteristics: why CAN's threat model differs from generic IT, the lack of native authentication, physical exposure, broadcasting and spoofing, denial-of-service via bus flooding, and protective techniques both with and without cryptography. > [Open this course →](https://emsa.courses/course/can-threats-defences) ## Frequently Asked Questions ### Can CAN be attacked remotely? Not directly. CAN itself is a physical-medium bus. However, almost every modern CAN network is reachable indirectly via a gateway, remote-service interface, diagnostic port or wireless maintenance link. Once that boundary is crossed, the attacker has the same capabilities as a physically attached node. See [Remote attack](https://can-security.net/threats/remote-attack/). ### What is frame injection on a CAN bus? Frame injection is the transmission of CAN frames with arbitrary CAN IDs by a node that should not legitimately use those IDs. Because CAN has no authentication, receiving nodes cannot tell legitimate frames from injected ones. See [Protocol weaknesses](https://can-security.net/threats/protocol-weaknesses/). ### How hard is it to attack a physically enclosed CAN system? Hard, but not impossible. Service technicians, supply-chain insiders and devices added post-deployment (if wires are exposed, it only takes seconds to attach a sniffer) are common physical-access attack vectors. CVSS v4.0 with AV:P captures this; the score is non-zero precisely because physical access is feasible, not impossible. --- # Physical Access as a CAN Attack Vector Direct physical access to CAN wiring is the most fundamental attack vector against classical CAN networks. Attackers might remove headlights or panels from machines to get access. This page explains what an attacker can do once attached to the bus, how the [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0 attack vector AV:P (Physical) applies and what mitigations reduce the resulting score. ## What Physical Access Enables CAN communication requires just two wires (CAN low and CAN hi, sometimes a third is used for GND). Insulation-displacement clips, sometimes called crocodile or vampire taps, close around the cables, pierce the insulation, and connect to the bus in a few seconds, with no need to cut, strip, or solder. The interface hardware behind those clips is often disguised as something harmless: a slightly oversized USB stick, a small handheld games console, or a connector that disappears into a service-port housing. Once attached, the attacker has full read and write access. ## Bus Tapping and Sniffing Passive sniffing is the lowest-cost attack: an additional CAN protocol engine on the bus (many can be configured in a listen-only mode) reads every frame without interfering with traffic. Sniffing is undetectable from the bus side. Unless cryptography is introduced, confidentiality of CAN traffic depends entirely on enclosing the bus. ## Frame Injection and Replay Active injection lets the attacker transmit any CAN frame (any ID, any data). Replay attacks re-send previously captured legitimate frames to repeat their effect. This can be used to replay recorded command sequences, like starting a motor, opening doors or hatches or moving a robot arm. See [Protocol Weaknesses](https://can-security.net/threats/protocol-weaknesses/) for the protocol-level reasons these attacks succeed. ## Denial of Service via Bus Flooding or Physical Disruption The term denial of service (DoS) originated on the Internet, where it described many compromised endpoints overwhelming a single target. On CAN the dynamic is inverted: a single malicious flooder can overload an entire network, every node sees every frame. The priority based arbitration allows an attacker to freely choose a priority level for his attack. The bus is flooded by transmitting frames at higher priority than legitimate traffic or even by forcing error frames. Physical disruption, such as short-circuiting the wiring or driving the bus dominant, is simpler and equally effective. At the extreme, sustained flooding has the same effect as cutting the wiring: no legitimate frame gets through and the effect is immediately observable. That is considered sabotage, not a cybersecurity attack. For the purposes of this reference, a flood counts as a DoS attack only when it is targeted, for example by suppressing one specific control frame while leaving the rest of the bus running. ## Mitigations ### Physical enclosures Lockable cabinets, sealed harnesses, and tamper-evident wiring keep the bus out of reach in normal operation. IEC 62443's zone-and-conduit model treats physical enclosure as a foundational control. ### Access control with audit logs [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443)-style identification, authentication, and authorization on service ports, paired with tamper-evident logging of every connection. Logs make insider and supply-chain activity traceable. See [Access Limitation](https://can-security.net/risk-assessment/access-limitation/). ### System monitoring Bus-load monitoring catches unexpected traffic: sustained high load, bursts of unfamiliar IDs, error-frame storms. Anomaly event monitoring complements this by flagging unexpected message patterns and timing. See [Bus Load Monitoring](https://can-security.net/solutions/bus-load-monitoring/) and [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ### Cryptographic authentication Frame authentication with [CANcrypt](https://can-security.net/resources/terms-and-definitions/#term-cancrypt) or [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) makes injected and replayed frames detectable even when the attacker is fully attached to the bus. That protection holds only while the keys stay secret, so the node must keep them in on-chip secure key storage where a physically present attacker cannot read them out. The [Secure CAN MCUs](https://can-security.net/resources/secure-can-mcus/) table lists controllers that pair a CAN FD interface with hardware key storage and an AES accelerator. For application-layer object access (configuration locking, authentication of identification), pair with [SOFA](https://can-security.net/solutions/secure-object-fieldbus-access/). See [Frame Security](https://can-security.net/solutions/frame-security/). ## CVSS Scoring for Physical Access Attacks Physical-access attacks on classical CAN are scored with attack vector AV:P. The baseline classical CAN node scores `5.2 / Medium` with vector `CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N` per EmSA-WP-103. See [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) for how the score changes with mitigations. ## Frequently Asked Questions ### Can a CAN bus be sniffed without disrupting traffic? Yes. A passive listening node added to the bus reads all traffic without interfering, because CAN controllers receive every frame regardless of CAN ID. There is no native way for the network to detect the addition. Confidentiality depends on enclosure or on cryptographic encryption (see [Frame Security](https://can-security.net/solutions/frame-security/)). ### Why is the CVSS attack vector for CAN typically Physical? Unless provided, CAN has no remotely accessible network interface; the attacker must physically tap onto the bus. CVSS v4.0 captures this with AV:P, which produces a non-zero score because physical access is feasible in many real environments (service technicians, supply-chain insiders, devices added post-deployment). --- # Inherent Security Weaknesses of the CAN Protocol CAN was designed in the 1980s for reliability on a closed wired bus, not for adversarial environments. CAN FD inherits the same frame format and the same threat-model assumptions. This page explains why neither protocol carries authentication or confidentiality by design, and what becomes a security weakness once the physical-isolation assumption no longer holds. ## What CAN Was Designed For Bosch began the CAN protocol development in the early 1980s as a deterministic, real-time, multi-master broadcast bus for embedded control. The primary design goals were reliability, low message latency, and tolerance to wiring faults on long, electrically noisy harnesses. The protocol delivered on those goals. CAN FD, introduced in 2012, extended the payload from 8 bytes to 64 bytes and raised the data-phase bit rate, but inherited the same frame format and the same broadcast addressing. The threat model behind both was a physically enclosed harness with trusted nodes inside it. In the 1980s, that assumption was reasonable: bus diagnostic equipment cost several thousand euros or dollars and lived in OEM service shops. Today, an OBD2 (On-Board Diagnostic) CAN adapter capable of full read and transmit retails for under 10 euros and ships from any consumer marketplace. ### Authentication: not required Inside a 1980s harness, every cable was visible and physically protected. Whoever could send a frame was already a trusted node inside the cabinet. A per-frame cryptographic check would have cost cycles, payload bytes, and key management - potentially on an 8-bit microcontroller. At the time, it made no sense. ### Confidentiality: not required CAN payloads carry control values: a temperature, a setpoint, a switch state. None of these were considered sensitive, and the harness itself prevented anyone outside the cabinet from listening. Encryption would have added latency to a real-time bus to protect data that, at the time, no one was trying to read. ## Security Consequences When Isolation Breaks Once the physical-isolation assumption no longer holds, every consequence of those original choices becomes a security weakness. Any node attached to the bus can transmit any CAN ID and data, and receivers cannot tell legitimate frames from spoofed or injected ones. The error-handling mechanism that protects the bus against electrical faults can be turned against it: an attacker forces error frames at precise bit positions to corrupt or suppress legitimate traffic, or pushes a victim node into bus-off. Frames carry no sequence number or nonce, so captured traffic replays cleanly. Every node sees every frame, so confidentiality is impossible at the protocol level. CAN FD inherits all of the above. Each of these is addressed by a specific defensive shell: see [Frame Security](https://can-security.net/solutions/frame-security/), [Local Injection Detection](https://can-security.net/solutions/local-injection-detection/), and [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ## CVSS Vector Breakdown for an Unprotected CAN Node The protocol weaknesses translate into the [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) v4.0 baseline derived in EmSA-WP-103: vector `CVSS:4.0/AV:P/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N`, score `5.2 / Medium`. VI:H and VA:H reflect frame injection, replay, and DoS impacts; VC:N reflects the lack of confidentiality protection but also the lack of confidential data on a typical CAN node. See [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) for a metric-by-metric walkthrough. ## Frequently Asked Questions ### Why is there no authentication in CAN? CAN was designed in the early 1980s for embedded real-time communication on a closed wired bus. The threat model assumed a physically protected harness and trusted nodes, so authentication and confidentiality were not required. ### What is CAN ID spoofing? Transmitting a frame with a CAN ID and data that the sending node is not authorized to use, in order to impersonate a different control unit. Because CAN and CAN FD have no source authentication, receivers cannot tell legitimate frames from spoofed ones. CAN ID guarding at the legitimate sender provides detection; cryptographic authentication provides prevention. --- # Remote Entry Points into CAN Networks CAN itself is not a remote-network protocol, but most CAN systems have at least one externally reachable interface, such as a bridge, router, or gateway between segments, a diagnostic port, a remote-service link, a wireless maintenance interface, or an asset-management connection. This page explains how those interfaces become CAN attack vectors and what to do about it. ## How Remote Attacks Reach CAN Remote attacks reach CAN by compromising a bridge, router, gateway, or other device that connects an external network or another CAN segment to the bus. Once that connection point is under attacker control, the attacker transmits arbitrary CAN frames as if physically attached. Examples for such devices include: - diagnostic and service connectors that aftermarket dongles, maintenance tools, and data loggers attach to, frequently with weak authentication or unpatched firmware - remote-service and asset-management gateways that bring cellular, Wi-Fi, or Ethernet connectivity directly to CAN for predictive maintenance, asset tracking, or operational data collection - bridges or routers between CAN segments, where a compromised lower-trust-zone device routes attacker traffic into a higher-trust segment regardless of whether the device operates as a transparent data-link bridge, a routing forwarder, or a translating gateway ### Out of scope: external-interface protection This reference covers CAN-specific security. The protection mechanisms that secure cellular, Wi-Fi, Ethernet, or any other external interface in front of a bridge, router, or gateway are general industrial and IT cybersecurity practice; they are not specific to CAN. Existing standards cover them well: IEC 62443-3-3 (zone-and-conduit), NIST SP 800-82 (OT firewalling), and ISO/IEC 27001. Manufacturers must apply current best-practice protection to every bridge, router, and gateway that fronts a CAN bus: TLS, mutual authentication, certificate management, secure update, network segmentation, and vulnerability management. The sections that follow describe what becomes a CAN attack vector once an attacker has reached one of those external surfaces. [IEC 62443-3-3](https://can-security.net/resources/iec-62443-sl2-requirements/) [NIST SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) [ISO/IEC 27001](https://can-security.net/resources/terms-and-definitions/#term-iso-iec-27001) ## Reducing Remote Attack Surface [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) Article 13 and [IEC 62443](https://can-security.net/resources/terms-and-definitions/#term-iec-62443) SR 7.6 push for minimizing and hardening these interfaces, so the most cost-effective control is reducing their number; every removed interface is a vector that no longer needs hardening. For interfaces that must remain, enforce TLS or [TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk), segment networks, and limit which CAN IDs can cross any bridge, router, or gateway. Every such device must be designed under the assumption that it is the security perimeter; see [Secure Gateways](https://can-security.net/risk-assessment/secure-gateways/) for the implementation. Note: the EmSA-WP-101 Security Justification for classical CAN explicitly warns that service technicians and operators may add remote-access devices post-deployment, so the threat model must include unauthorized additions, not just the manufacturer's intended interfaces. ## Frequently Asked Questions ### Are diagnostic ports a CAN attack vector? Yes. Diagnostic and service connectors typically expose direct physical access to one or more CAN segments. Aftermarket dongles and maintenance tools attached to these ports are a common attack surface; many ship with weak authentication or unpatched firmware. ### Why are post-deployment add-ons a security concern? Service technicians and operators often add devices the manufacturer did not anticipate, such as remote-monitoring dongles, data loggers, and third-party control modules. These extend the attack surface in ways that are not in the original threat model. The EmSA-WP-101 Security Justification for classical CAN explicitly calls out this risk; the threat model must include unauthorized post-deployment additions. --- # Software Updates Over CAN as an Attack Vector The firmware update channel inherits the manufacturer's trust: whatever the bootloader accepts, the device runs. Both CANopen and [J1939](https://can-security.net/resources/terms-and-definitions/#term-j1939) originally standardized firmware download for interoperability, not for security. Many real products shipped plain Intel-HEX images alongside a generic download tool, which leaves the update channel wide open to anyone with bus access (or to anyone who can phish a service engineer). The result is a class of attack that is structurally distinct from frame injection: the attacker no longer impersonates a node for one bus session. They replace the code that node runs. ## Why Software Updates Are a Threat Surface Frame-level attacks succeed for the duration of a bus session. Update-channel attacks succeed for the lifetime of the device. Once an attacker can flash arbitrary code into a node, every system parameter and even every cryptographic key on that node is in their hands, every defensive shell on that node can be silenced, and every later "secure" frame the node emits is signed by them. From the rest of the bus's perspective, the compromised node is still legitimate. Update tampering also persists across power cycles, factory resets that the malicious firmware mishandles, and most diagnostic procedures, until someone reflashes the device through a trusted channel, which presupposes the trusted channel still exists. ## Standardized Bootloading Without Standardized Security CANopen ([CiA](https://can-security.net/resources/terms-and-definitions/#term-cia) 710) defines firmware-download protocols at the application layer. An Object for security is reserved, but its implementation is not defined. The intent is interoperability: a CANopen download tool from one vendor can update a CANopen device from another. That is the right design goal for a fieldbus standard. It is also the wrong design goal to answer security with: the published profiles do not by themselves require authentication, encryption, or version-rollback protection. Authentication and confidentiality are *layered on top* of the standard exchange by the manufacturer, or they are not present at all. ## The Plain-HEX Shipping Pattern The most common pattern in industrial CAN for a long time was this: the manufacturer publishes a firmware update as a plain Intel-HEX file, distributed over a website or email, alongside a generic CAN download tool. The device's bootloader speaks the standard download protocol and writes whatever image it receives. There is no signature on the HEX file, no encryption in flight, no version-monotonicity check at the bootloader, and no audit trail of who attempted to flash what. Anyone with bus access can flash arbitrary code: a service engineer, a supply-chain insider, a post-deployment add-on device, or an attacker who phished the support team's distribution channel. ## Concrete Attack Patterns - **Arbitrary code execution.** Replace the firmware with an attacker-controlled image. The device subsequently runs attacker code with full hardware authority. Extracts keys; exfiltrates data; pivots into the rest of the bus. - **Rollback to a vulnerable image.** Flash an older signed-but-vulnerable firmware to bypass a fix the manufacturer already shipped. Particularly relevant when only signing is done and version monotonicity is not enforced. - **Replay of a captured legitimate update.** Capture a legitimate update exchange on the bus, then replay it later out of context, for example after the manufacturer has shipped a patch. If freshness is not bound into the update transaction the device cannot tell. - **Partial-image corruption.** Interrupt or fuzz the download to brick the unit or leave it in a half-flashed state with corrupt cryptographic key storage. A denial-of-service variant where the unit is field-unreachable until physical recovery. - **Update-channel as exfiltration.** The update protocol's read-back primitives can be turned into an arbitrary memory read against an unhardened bootloader, lifting keys or device-secret data without ever flashing. ## Where Remote Entry Becomes an Update-Distribution Surface Many [Remote Attacks](https://can-security.net/threats/remote-attack/) do not require physical bus access. The remote-service gateways, diagnostic ports, and wireless maintenance links are usually how legitimate updates are pushed in the first place. That makes the same paths an attractive route for malicious updates: a compromised cloud back-end, a stolen service-tool credential, or a man-in-the-middle on a maintenance channel can drive the update protocol exactly as the manufacturer would. The threat moves from "attacker has soldered onto the wires" to "attacker has the same access the service team has". ## Mitigations ### Secure bootloader with PSK Authenticated firmware update under a dedicated pre-shared key, [AES-128-GCM](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm)-protected images, and possibly challenge/response gating into the update mode. See [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). ### Version monotonicity and signed releases Bind the version into the signed image and refuse to install older releases. Sign the release artifact in a controlled pipeline so the delivery channel cannot be substituted by an attacker who happens to control the distribution endpoint. ### Audit logging of every update attempt Anomaly Event Monitoring captures both successful and rejected update attempts to the security event log, with timestamps and challenger identity. This makes opportunistic attempts visible even when they fail, and supports [CRA](https://can-security.net/resources/terms-and-definitions/#term-cra) vulnerability handling. See [Anomaly Event Monitoring](https://can-security.net/solutions/anomaly-event-monitoring/). ### Hardened update-distribution path Authenticated, replay-protected channel from the manufacturer's release pipeline through to the device: [TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk) or equivalent on remote-service gateways, signed-tool authentication on local diagnostic ports. Closes the remote-entry side of the threat surface from [Remote Attacks](https://can-security.net/threats/remote-attack/). ## CVSS Scoring for Update-Channel Attacks The [CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss) baseline depends on whether the update path is locally bus-attached or remotely reachable. For a directly bus-attached update channel against an unprotected bootloader, the attack vector is `AV:P` as elsewhere on classical CAN, but the integrity and availability impacts are higher than the per-frame baseline because firmware tampering is irreversible from the bus side: the device runs attacker code afterwards. For an update path exposed via a remote-service gateway or maintenance back-end, the attack vector is `AV:N` and the confidentiality impact follows whatever the firmware itself can access. See [CVSS for CAN](https://can-security.net/risk-assessment/cvss-for-can/) for how mitigations adjust the score. ## Frequently Asked Questions ### Why is the firmware update channel a threat surface separate from frame injection? Frame injection lets an attacker imitate one node for the duration of the bus session. Compromising the firmware update channel lets the attacker replace the code that runs on the target permanently, including any cryptographic keys it holds. The blast radius and persistence are categorically different, even though the underlying bus access can be the same. The mitigation is also different: see [Secure Bootloader](https://can-security.net/solutions/secure-bootloader/). ### Is the CANopen firmware-download protocol inherently insecure? The exisitng CiA 710 standardized download protocol solves interoperability, not security. Authentication, encryption, and rollback protection are layered on top by the manufacturer. A device that implements the download exchange but ships unsigned plain-HEX firmware satisfies the protocol while leaving the security properties at zero. ### Does shipping plain Intel-HEX firmware fail the EU CRA? CRA Article 13(2)(c) requires that vulnerabilities can be addressed through security updates and that those updates can be applied safely. A plain-HEX update channel that any party with bus access can drive cannot be applied safely in the regulatory sense, and the same channel becomes the manufacturer's vulnerability-introduction surface. Most CRA conformity assessments will flag this. --- # The Regulatory Case for CAN Security Several overlapping European and International regulations now require systematic cybersecurity for CAN-based products, backed by standards and guidance. Worldwide, more and more regulations emerge strengthening the security of electronics and embedded systems. This page separates selected binding legal instruments from supporting standards a manufacturer can use to demonstrate compliance. ## Regulations ### EU Cyber Resilience Act (CRA) The CRA, Regulation (EU) 2024/2847, is a horizontal regulation applying to products with digital elements placed on the EU market. It introduces essential cybersecurity requirements (Annex I), conformity assessment obligations, vulnerability handling duties, and incident reporting. CAN-based devices and end products with internal CAN buses are generally in scope. [CRA](https://can-security.net/resources/cra-requirements/) Some of the key obligations include risk assessment (Article 13), security by design and by default, vulnerability handling with timely patches, [SBOM](https://can-security.net/resources/terms-and-definitions/#term-sbom) maintenance, and 24-hour reporting of actively exploited vulnerabilities to ENISA. ### EU NIS 2 Directive The NIS 2 Directive, Directive (EU) 2022/2555, sets cybersecurity obligations for "essential" and "important" entities across sectors including energy, transport, water, manufacturing, and digital infrastructure. While NIS 2 targets the operating organization rather than the product, its risk-management and incident-reporting requirements flow downstream to suppliers of CAN-based control equipment used in those operations. [NIS 2](https://can-security.net/resources/terms-and-definitions/#term-nis-2) For a CAN component vendor selling into a NIS 2 operator, this typically means contractual obligations to support the operator's risk management, vulnerability disclosure and incident-response processes. ### EU Machinery Regulation The Machinery Regulation, (Regulation (EU) 2023/1230, adopted 14 June 2023) replaces the 2006 Machinery Directive (2006/42/EC) and applies from 20 January 2027. It introduces explicit cybersecurity-related essential health and safety requirements. Annex III requires that safety functions are protected against accidental or intentional corruption, including corruption of CAN-borne control signals, and that connected functionality cannot be exploited to compromise safety. [Machinery Reg.](https://can-security.net/resources/terms-and-definitions/#term-machinery-regulation) For CAN networks inside machinery, this drives concrete protection of safety-relevant control messages, configuration locking and secure update for safety components. ## Helpful Standards and Guidelines ### IEC 62443 IEC 62443 defines Security Levels SL1–SL4 for industrial automation and control systems. The series provides a system-of-systems framework: 62443-3-2 for risk assessment, 62443-3-3 for system security requirements, 62443-4-1 for product development lifecycle, and 62443-4-2 for component-level requirements: SR 1.x (access control), SR 3.x (system integrity), SR 4.x (data confidentiality), SR 6.x (timely response to events), and SR 7.x (resource availability) translate directly into CAN-level countermeasures. [IEC 62443](https://can-security.net/resources/iec-62443-sl2-requirements/) ### ETSI EN 303 645 ETSI EN 303 645 is the cybersecurity baseline for consumer Internet of Things devices. Where CAN appears in consumer-facing equipment such as building automation, white goods or recreational machinery, EN 303 645's provisions on default passwords, secure update, vulnerability disclosure, and minimum data exposure complement the CRA and Machinery Regulation requirements. [EN 303 645](https://can-security.net/resources/terms-and-definitions/#term-en-303-645) ### NIST SP 800-82 NIST Special Publication 800-82, the "Guide to Operational Technology (OT) Security", is the leading US reference for industrial control system cybersecurity. It overlaps substantially with IEC 62443 in scope but uses different vocabulary. For CAN systems sold globally, mapping controls to both 62443 and SP 800-82 simplifies cross-jurisdiction conformity arguments. [SP 800-82](https://can-security.net/resources/terms-and-definitions/#term-nist-sp-800-82) ### BSI TR-02102 The German BSI's TR-02102 series specifies recommended cryptographic algorithms and key lengths. For CAN, the relevant choices are [AES-128-GCM](https://can-security.net/resources/terms-and-definitions/#term-aes-128-gcm) (for CAN FD authenticated encryption) and [HMAC](https://can-security.net/resources/terms-and-definitions/#term-hmac)-SHA-256 truncated for short MACs. Secure Object Fieldbus Access ([SOFA](https://can-security.net/resources/terms-and-definitions/#term-sofa)) and the CANopen secure bootloader both build on [AEAD](https://can-security.net/resources/terms-and-definitions/#term-aead) with AES-128-GCM, aligning with these recommendations and providing a defensible algorithm choice for CRA-relevant implementations. [TR-02102](https://can-security.net/resources/terms-and-definitions/#term-bsi-tr-02102) ## The Gap Between Regulation and Standard Regulations like the CRA, NIS 2, and the Machinery Regulation specify *outcomes*: a documented risk assessment, security by design and by default, vulnerability handling, secure update, and timely incident reporting. They do not prescribe the technical methods. Standards are where those methods are defined, and that is where gaps appear. Producing a new security standard inside [CiA](https://can-security.net/resources/terms-and-definitions/#term-cia) (or an IEC working group) typically takes several years from initial draft to published document. Meanwhile the CRA's essential cybersecurity requirements apply from December 2027 and the Machinery Regulation from January 2027. Several requirement areas are not yet fully covered by published (CAN-specific) standards: - **Cryptographic frame or message authentication on CAN, CAN FD, CANopen CC or CANopen FD.** Required outcome under CRA Annex I (integrity, authenticity). [SPsec](https://can-security.net/resources/terms-and-definitions/#term-spsec) is the available specification today, ahead of any formal CiA standard at the same scope. - **Secure Object Fieldbus Access (SOFA) for CANopen.** Required outcome (BSI TR-02102-aligned algorithm selection plus CRA Annex I integrity and access control on configuration data). SOFA covers authenticated read or write of selected Object Dictionary entries based on AEAD with AES-128-GCM, with a challenge/response exchange that aligns with a combination of [TLS-PSK](https://can-security.net/resources/terms-and-definitions/#term-tls-psk) (RFC 4279) and ISO/IEC 9798-2 for authentication of identification and for configuration locking. Currently under definition at CiA. - **Secure bootloader for CAN/CANopen devices.** Required outcome (CRA secure-update and vulnerability-handling obligations). EmSA's reference implementation predates a formal CiA bootloader-security profile. CiA /10 defines a generic CANopen Bootloader, but not security specifics. - **Risk assessment guidance for CAN-specific systems.** IEC 62443-3-2 specifies the process at the system level, but not CAN-level guidance. This reference and the EmSA white papers fill that gap. The pages that follow describe what these solutions cover, how they map to IEC 62443 security levels and CRA articles or requirements, and where remaining gaps still require engineering judgment. ## What This Means for CAN Product Manufacturers For a typical CAN component manufacturer, the practical to-do list is: perform a documented risk assessment, implement security by design measures matching the assessed risk, maintain an SBOM (Software Bill of Materials), set up a coordinated vulnerability disclosure process including preparation for vulnerability scoring ([CVSS](https://can-security.net/resources/terms-and-definitions/#term-cvss)) and incident reporting. The standards (IEC 62443 in particular) provide the structured controls that satisfy the regulatory obligations. With all of that, [Defense in Depth](https://can-security.net/risk-assessment/defense-in-depth/) is the architectural pattern that ties those controls together. A CAN system with documented layered defenses directly satisfies CRA's risk-treatment expectations and IEC 62443's zone-and-conduit model. > ### EmSA Training — EU CRA & Product Lifecycle > Foundational class on the regulatory context and how CRA shapes design, development, validation, production, delivery, and end-of-life for CAN-based products. > [Open this course →](https://emsa.courses/course/eu-cra-lifecycle) > ### EmSA Security Consulting > For the two cases not covered by the off-the-shelf catalog and the courses, we review your CAN risk assessment against CRA, NIS 2, and Machinery Regulation obligations, or customize a Solutions shell for your specific CAN system. > [Talk to ESAcademy →](https://www.esacademy.com/en/security.html) ## Frequently Asked Questions ### Does the EU CRA apply to CAN bus components? Yes. The EU Cyber Resilience Act applies to products with digital elements placed on the EU market. CAN-based components and end products generally fall in scope unless explicitly carved out by sector-specific regulation already covering them. ### When does the CRA come into force? The CRA entered into force in late 2024 with phased application. Vulnerability and incident reporting obligations apply September 2026, with the full essential cybersecurity requirements applying from December 2027 onward. Manufacturers should plan their roadmap with this date as the hard deadline for full compliance. ### Does the EU Machinery Regulation cover CAN networks inside machines? Yes. Regulation (EU) 2023/1230 introduces explicit cybersecurity requirements for safety components in machinery. CAN networks that carry safety-relevant control signals must be protected against malicious or unintentional corruption and connected functionality must not be exploitable in ways that compromise safety. ### What is an SBOM and is it required for CAN products? A Software Bill of Materials lists all software components (including firmware libraries, RTOS, communication stacks) in a product. The CRA requires manufacturers to maintain an SBOM in a commonly used machine-readable format such as SPDX or CycloneDX. CAN nodes shipping firmware fall in scope. ### Does compliance mean securing everything? No. The CRA and the Machinery Regulation both require security appropriate to the risk, not a fixed maximum. That is why this reference leads with risk assessment: it is the step that decides how much protection a given product and its exposure actually warrant. A well-protected, low-risk node can meet the obligation with a light, documented set of measures.