Skip to content

Safety & security

Zero trust inside the vehicle

Why the vehicle network stopped being a trusted place, what replaces implicit trust between components, and the practical controls that follow.

Advanced7 minSecurity · Zero trust · Architecture

The vehicle network was designed in an era when being physically inside the car was the security boundary. That assumption is no longer defensible, and the architecture is still catching up.

The assumption that broke#

What zero trust means concretely#

The principle is that no component is trusted because of where it sits. Trust is established per interaction.

The controls that implement it#

Segmentation#

   ┌──────────── untrusted ────────────┐
   │  apps, browser, Bluetooth, USB,   │
   │  media, connected services        │
   └────────────────┬──────────────────┘
                    │  narrow, validated interface
   ┌────────────────┴──────────────────┐
   │  cockpit platform (Android, IVI)  │
   └────────────────┬──────────────────┘
                    │  gateway: filters, rate-limits, authenticates
   ┌────────────────┴──────────────────┐
   │  vehicle domain: powertrain,      │
   │  chassis, body, ADAS              │
   └───────────────────────────────────┘

Authenticated messages#

Secure boot and attestation#

Isolation within a component#

Intrusion detection#

Anomaly monitoring on the buses and in the gateway: unexpected identifiers, implausible rates, messages from the wrong direction. Reported to a backend where fleet-wide patterns become visible.

The attack surface, honestly#

Entry pointNatureTypical mitigation
Cellular modemRemote, scalable — the worst caseHardened stack, isolated, behind the gateway
Wi-Fi / BluetoothProximate, no contact neededPairing controls, isolation, patching
App store / appsRemote via a legitimate channelSigning, review, permissions, sandbox
USB / mediaPhysical, but casualParser hardening, mount restrictions
Charging (ISO 15118)Physical, protocol-rich, growingCertificate validation, input hardening
OBD-II portPhysical, often exposedGateway filtering, authentication
Supply chainPre-deliverySBOM, signed artefacts, provenance
The update channelRemote, totalSigning, rollback protection, Uptane

What this means for your work#

Every interface you expose is attack surface. A service, a broadcast receiver, a content provider, a socket, an intent filter. Ask who can reach it and what they can make it do.

Validate everything from outside your process, including from other parts of the vehicle. "It comes from the VHAL so it is trusted" is exactly the assumption zero trust removes.

Least privilege for real. Each allow in SEPolicy is a deliberate weakening. Each permission your app requests should have a reason a reviewer would accept.

Never hardcode secrets. Keys belong in hardware-backed storage. An APK is not a secure place and is trivially extracted.

Treat crashes as security-relevant. A parser that segfaults on malformed input is often a memory-safety bug and therefore a potential exploit, not merely a stability issue.

Assume your component will be the compromised one and design what it can reach accordingly. That framing is more productive than assuming it will not.

Next#

The regulation and process wrapped around all of this.

References & further reading

Code links target the main branch on cs.android.com. AOSP moves — if a path 404s, search the symbol instead.