skip to content

Mutual authentication with one shared client certificate across a vehicle fleet — what does it actually buy?

level: principalimportance: nice to knowfreq 33%

answer

  1. what identity does the verifier learn
  2. membership versus a specific unit
  3. extract once, impersonate everywhere
  4. the revocation lever nobody will pull
  5. granularity, not presence of the control

basics

~20 s

It buys fleet membership, not device identity: the backend learns only that the caller holds the fleet key. Anyone who extracts that key from a single unit they own can pose as any unit, and revocation is all-or-nothing across the whole fleet.

solid answer

~50 s

It proves the caller is *a* fleet member, which is a much weaker claim than *this* vehicle. The attacker position that matters is someone who legitimately owns one unit, opens it, and recovers the key — and from that moment their claim is indistinguishable from every other unit's. Three consequences fall out at design time. Blast radius: one extraction compromises the fleet, not one vehicle. Revocation: the only lever bricks every unit at once, so nobody will pull it, which means in practice you have no revocation. Attribution: the backend cannot say which unit sent a message, so per-unit limits and anomaly detection have nothing to key on. Per-unit identity buys containment, targeted revocation and attribution, at the cost of provisioning at manufacture, hardware key storage and running an issuance and revocation process over intermittent links. The design question is which blast radius you can accept, not whether the word mutual appears in the design.

go deeper

for a junior

Be ready to say why sharing one credential across many devices is weak: the verifier learns only that the caller belongs to the group, and anyone who gets that one secret can pretend to be any member.

for a middle

Explain the mechanics of the difference: per-unit credentials let the backend attribute a message to one device and revoke that device alone, while a shared credential makes revocation an all-or-nothing action against the whole population.

for a senior

Show the operational consequences you have lived with: extraction from a device you cannot physically control, revocation that nobody dares use, and detection that has no identity to key on because every unit looks alike.

for a principal

Own the tradeoff and the paperwork. Choose identity granularity against an accepted blast radius, price provisioning and hardware key storage as the real cost, and record the interim as an accepted risk with an owner, a trigger and an expiry.

## The claim the verifier actually learns Mutual authentication means both ends prove an identity to each other. The word says nothing about **which** identity. With one credential shared across every unit, the strongest true statement the backend can make about a connection is *the peer possesses the fleet credential*. Everything the design wants to say — this vehicle, this customer, this region — is inference layered on an identity that does not support it. This matters because a threat model is a set of claims about what an attacker cannot do. Writing "mutual TLS" in the mitigation column asserts that impersonation is answered. With a shared credential, impersonation of a *specific unit* is not answered at all; only impersonation by a complete outsider is. ## The attacker position this scenario assumes Not an anonymous internet attacker and not a network eavesdropper: someone who **legitimately possesses one unit**. They bought a vehicle, or a scrapyard did. Physical possession of a device whose key is not held in hardware is a recovery problem, not a cryptography problem, and threat models that quietly assume the device is not opened are assuming away the attacker who is easiest to become. The asset at stake is credentials and keys — and derivatively whatever the fleet channel controls: telemetry that must be attributable, commands, remote diagnostics, over-the-air update eligibility. ## The three consequences to name **1. Blast radius.** One extraction yields an identity valid for every unit. A per-unit identity turns the same extraction into the compromise of one vehicle: the attacker can lie about their own unit, which is usually a containable fraud problem instead of a fleet-wide one. **2. Revocation is all-or-nothing.** With a shared credential, the only revocation available invalidates every unit simultaneously. That lever is so expensive that no one will ever pull it, so the honest entry in the model is *no effective revocation*. Per-unit identity makes revocation a routine, boring operation — and boring operations are the ones that actually get used during an incident. **3. Attribution disappears.** The backend cannot attach a message to a unit, so per-unit rate limits, duplicate-use detection and behavioural anomaly detection have no key to work with. Detection controls that would otherwise compensate for a weak identity are exactly the ones a shared identity disables — the failure modes compound rather than offsetting each other. ## What per-unit identity costs, honestly This is a tradeoff question, so present the cost side rather than declaring the answer: - **Provisioning.** Each unit needs a distinct key generated and an identity bound to it, at manufacture or first enrolment, which touches the production line and a supply chain you may not fully control. - **Key protection.** A distinct key in software on an openable device only raises the attacker's per-unit effort. Hardware-backed storage that makes the key non-exportable is what turns per-unit identity into real containment, and it is a bill-of-materials decision made years before the software ships. - **Lifecycle over bad links.** Renewal, rotation and revocation distribution have to work for units that are offline for weeks, in tunnels, in a container ship, or parked in a garage for a season. - **Running issuance.** Someone must operate the issuing authority for the life of the product, which for vehicles is longer than most backend services survive. ## Framing the decision The judgment to demonstrate is that identity granularity is chosen to match an **accepted blast radius**, and the choice is written down with the accepted risk beside it. A defensible outcome looks like one of these: - Per-unit identity with hardware-backed keys for anything that authorises commands or moves money; - A shared credential retained for a low-value read-only telemetry path, with a stated ceiling on what that path may assert and a plan for what happens the day a key surfaces publicly; - A staged position: per-unit identity from the next hardware revision, the existing fleet limited to what the weaker claim can support, and compensating detection in the meantime. **Compensating detection** for the interim is worth being concrete about, without over-promising: constrain what the shared identity is permitted to assert; require a second, separate factor for the small set of high-impact actions; and look for signals that are inconsistent with a single physical unit, such as the same identity appearing in two implausible places at once or at implausible volume. None of these restores identity — they buy time and evidence, and the model should say so rather than logging them as a mitigation. ## The general lesson A control is not a mitigation until the model states **what identity it proves, how the secret behind it is protected, and how it is revoked for one party**. Presence of the mechanism is the easiest thing to review and the least informative. On any machine-identity question — fleets, embedded devices, appliances, anything shipped rather than deployed — those three questions separate a design that will survive its first compromised unit from one that will not.

  • Units go offline for weeks at a time. How does that change your revocation design?
    It rules out designs that assume a unit will fetch a revocation update promptly, so enforcement has to sit where the connection is made — the backend refusing a revoked identity when it next appears — rather than relying on the unit learning it is untrusted. Short-lived credentials that must be renewed shift the problem to availability of renewal, which for a vehicle parked for a season is a real failure mode. Model the offline case explicitly and decide what a unit is allowed to do while it cannot check in.
  • The current hardware cannot store keys so they resist extraction. What do you do at design time?
    Stop treating the device identity as strong and constrain what it is allowed to assert: read-mostly telemetry rather than commands, no authority to move money or change safety-relevant state, and a separate independent factor for the few high-impact actions. Add detection keyed on the identity — implausible concurrency, implausible volume, geographic impossibility — and record it in the model as compensating detection, not as mitigation. Then make hardware-backed key storage a requirement for the next revision, with a named owner and date.
  • How would you record the decision if the shared certificate stays for this generation?
    As an explicit accepted risk, not as a closed threat. Name the threat (any holder of one unit can impersonate any unit), the impact, the reason it is accepted, the named accepter, the compensating detection in place, the trigger that forces revisiting it — a key published, an incident, the next hardware revision — and the expiry date on the acceptance. An accepted risk with an owner and a trigger survives staff turnover; a threat quietly marked mitigated does not.

saying these in an interview costs you the question

  • Says mutual authentication is present so spoofing is closed
  • Ignores who physically owns a unit
  • Assumes a software-stored key cannot be extracted
  • Never asks which identity the verifier actually learns
  • Claims revocation exists when pulling it bricks the fleet
  • Proposes detection that has no per-unit identity to key on

context