This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

ScalOTA: Scalable Secure Over-the-Air Software Updates for Vehicles

1st Ali Shoker RC3, KAUST
[email protected]
   2nd Fernando Alves VORTEX CoLAB
[email protected]
   3rd Paulo Esteves-Verissimo RC3, KAUST
[email protected]
Abstract

Over-the-Air (OTA) software updates are becoming essential for electric/electronic vehicle architectures in order to reduce recalls amid the increasing software bugs and vulnerabilities. Current OTA update architectures rely heavily on direct cellular repository-to-vehicle links, which makes the repository a communication bottleneck, and increases the cellular bandwidth utilization cost as well as the software download latency. In this paper, we introduce ScalOTA, an end-to-end scalable OTA software update architecture and secure protocol for modern vehicles. For the first time, we propose using a network of update stations, as part of Electric Vehicle charging stations, to boost the download speed through these stations, and reduce the cellular bandwidth overhead significantly. Our formalized OTA update protocol ensures proven end-to-end chain-of-trust including all stakeholders: manufacturer, suppliers, update stations, and all layers of in-vehicle Electric Control Units (ECUs). The empirical evaluation shows that ScalOTA reduces the bandwidth utilization and download latency up to an order of magnitude compared with current OTA update systems.

Index Terms:
Vehicle, Over-the-air update, security, update station

I Introduction

Over-the-air (OTA) software/firmware update systems are witnessing a huge demand in the automotive market, with the unprecedented transformation towards software-defined vehicles [33]. An OTA update system is key to reduce the safety risks and maintenance time and cost, when post-market fleet anomalies and vulnerabilities are detected [9, 18, 16]. This is of paramount importance for Original Equipment Manufacturers (a.k.a., OEMs), that had to recall 35 Million vehicles in 2021 alone, and whose estimated recall losses are around half Trillion dollars by 2024 [21]. Nevertheless, the promised benefits of an OTA update system may be doubtful if the system itself is insecure and costly.

Our work is motivated by two main problems. The first is driven by a request from a leader Japanese OEM, whose customers (vehicles’ owners) are complaining about the cost of OTA updates, due the extensive bandwidth utilization (using a cellular LTE communication). Indeed, the enormous number of Software Lines of Code (SLoC)—estimated to exceed 100 Millions—in mainstream vehicles [8, 31] can yield up to 1G Byte of daily updates. This makes the OTA system slow and expensive. It is expensive since current OTA update systems hinge into cellular LTE/4G connectivity—while future 5G solutions rates cannot be anticipated [16, 13]. It is slow since the vehicle is not always turned on, and thus, not always connected and updating. In search for a convenient solution, we realized another facet to this problem, characterized by the centralization of updates on the OEM’s repositories at daily peak hours. The experiments in [4, 6] pointed out that the interference caused by simultaneous vehicle updates in a zone at peak hours can reach the bandwidth limit of a telecommunication cell unit with less than 20 vehicles. In addition, the connection’s quality deteriorates significantly for the vehicles and other (mobile) users. Unfortunately, there are few works that tackled this issue at the high-level using fog, edge, or even Blockchain forwarding nodes [42, 24, 4, 36, 10], as we explain in Section III; however, none of them has studied the issue deeply.

The second motivation is driven by the need for automotive OTA update systems that are secure by design; otherwise, the consequences can be fatal—endangering human lives. In fact, automotive OTA update systems are more complex than computer or mobile update systems for several reasons [16, 19]; we mention two main ones here. First, there is a voluminous number of software producers (e.g., Tier 1, Tier 2, and Tier 3 third parties) throughout the supply chain, which makes it cumbersome for the OEM to handle the complex chain-of-trust, or retain and maintain all the respective update repositories by itself. Second, current automotive architectures are composed of many layers of software-based secondary ECUs, whereas only one ECU, i.e., the primary ECU or Telecommunication Unit, has an interface to the cyberspace, e.g., via a cellular connection. This enforces the secondary ECUs to download updates through the primary, which is problematic, from a liability viewpoint, as these ECUs are often provided by different vendors. Despite the plenty of literary works on OTA update security (see Section III), the most solid end-to-end direction we found is Uptane [19, 38] that uses a separation-of-roles scheme for security key signing and verification. The idea is to ensure the chain-of-trust across many OEM’s roles (tasks), including suppliers and secondary ECUs. Despite the security premise of Uptane, the system model and protocols are not rigorously formalized (publicly).

In this paper, we introduce ScalOTA: a scalable, efficient, and secure OTA update system for vehicles. ScalOTA is the first OTA update architecture that proposes using update stations as Points-of-Presence for software updates, e.g., integrated with Electric Vehicle (EV) charging stations (EVU station, see Fig. 1). This new architecture allows vehicles to reduce the bandwidth utilization and latency of updates up to an order of magnitude, compared with cellular LTE/4G downloads. This boosts the resilience of the system as the update server is no longer single point of attack or failure. In ScalOTA, the OEM notifies the vehicles with the meta-data of any new update, e.g., via a cellular network. The vehicle can then download the corresponding cached update images via an update station, that is operated by a new business entity, possibly different from the OEM or suppliers. Updates in ScalOTA are much faster than using cellular LTE/4G as vehicles can be wired to the update station through Fast Ethernet, Fiber Optics, or using even a Powerline [12] with the EV cables. ScalOTA also avoids over-utilising the general cellular bandwidth and significantly reduces the overload on repository servers. On the other hand, this architecture opens a huge business model opportunity, and thus establishing automotive software market place operators, as in mobile systems, and is only recently noticed in the industry [25].

In addition to the ScalOTA architecture, our work is the first published academic work that formalizes an end-to-end OTA update system model and protocol, presents Liveness and Safety proof sketches (in the Appendix), as well as drives a scalable empirical evaluation. In particular, our experiments, on a real cluster, show that ScalOTA reduces the update latency and cellular bandwidth utilization to an order of magnitude, as expected theoretically, compared to cellular-based solutions, like Uptane. The experiments also show that ScalOTA is more resilient to attacks and overloads, as it no longer depends on a single update server.

There are two main challenges in ScalOTA’s architecture: security and storage scalability. The security challenge is referred to using the update station as a new stakeholder in the software value chain. We inspire by Uptane’s separation-of-roles scheme to provide and prove a formal chain-of-trust model that covers the end-to-end workflow between the software producer and the secondary ECUs. However, contrary to Update, we formalize the protocol and security abstractions. The storage scalability challenge is caused by the need to support hundreds of vehicle models and brands, which requires a huge storage capacity at the EVU station. We solve this by only caching the relevant updates of vehicle models that are common in a zone, e.g., based on historical mobility patterns. The intuition is that similar vehicle brands and models are more likely to be common in a country or city, and therefore, subsequent vehicles of the same model will already have the updates cached at the EVU station. In addition, updates are tagged and bundled at a fine-grained device level, e.g., provided by a supplier universal identifier (SUI). This avoids downloading duplicate updates of the same auto part used in different vehicles and models. This is reasonable since auto parts in most vehicle models are mostly supplied by a handful number of well-known (Tier 1 and Tier 2) suppliers regardless of the brand/model.

The rest of the paper is organized as follows: Section II discusses the case for ScalOTA. Section III presents the key related works, and Section IV presents the system and threat models. Section V then presents the architecture and protocol formalization, which is then evaluated in Section VI. Finally, we conclude in Section VII, followed by proofs in the Appendix.

II The Case for Using OTA Update Stations

ScalOTA uses update stations embedded/collocated with EV stations, which represents a paradigm shift. We discuss the plausibility of this design decision by highlighting the issues current OTA update approaches have, and how using update station can resolve them.

A software-defined vehicle can be seen as complex mobile phone. Software update sizes can range from few KBs to GBs [3, 30, 37, 14, 20]. Due to the slowness and cost of OTA download paradigms, OEMs tend to rollout updates in large packages on weekly or monthly basis [2, 39]. We however argue that as OTA techniques get more mature, we would expect smaller update sizes with large frequency, especially when critical safety or security measures are concerned. Updates in vehicles are, however, different from mobiles in two main ways of high relevance. The first is that a vehicle’s usage pattern is very restrictive: a download can only happen while ignition is turned on, and often requiring Park gear mode. The second is that hundreds of software/firmware (for tens of ECUs) are developed by various suppliers, which makes updates’ distribution and delivery cumbersome to the OEM: it shifts the OEM from its core innovation business to out of its comfort zone, e.g., cloud storage and secure update delivery business111We started to see this the industry. E.g, https://www.mapnsoft.com/ now pushes updates directly to cars on behalf of three OEMs.. We explain how these two aspects affect the cellular and Wi-Fi download paradigms currently used by the industry.

Cellular

performing OTA updates using cellular 3G/4G/LTE technology is slow, costly, and exhausts the bandwidth resources. The slowness is referred to two reasons. First, due to the human mobility patterns, a car may be in use, and thus connect to a cellular network, for one hour daily, which is not sufficient to complete current payloads required by major OEMs [3, 30, 37, 14, 20]. Worse, cars are mostly active during rush hours when the network is also highly loaded [5]. Due to the limited cellular Physical Resource Blocks (PRB), shared by mobiles too, cellular networks only scale (with a reasonable interference) to almost 20 car simultaneous zonal downloads. As a consequence of these reasons, a major update (>1GB>1GB) may take one week to complete [3, 6]. Last but not least, cellular-based downloads exhaust the telecommunication network resources since the number of vehicle-to-server connections is linear to the number of vehicles.

Wi-Fi

Several OEMs realize the above cellular limitations and thus require using Wi-Fi for large updates. Unfortunately, using Wi-Fi for updates is very location-restricted, insecure, and exhausts the network’s backhaul resources. In a nutshell, having access to Wi-Fi is not the common case in vehicle mobility: public Wi-Fi car access is not prominent worldwide, while private Wi-Fi often have limited range coverage to underground garages or remote parking lots [5]. Importantly, car owners will unlikely keep their cars’ ignition on for minutes-to-hours until downloads complete. These two issues also exist in the case where home EV chargers are used. From a security perspective, we, as well as other authors [6], do not recommended to hinge on the awareness and experience, or lack thereof, of average users to maintain their Wi-Fi access points, wildly common to have guessable passwords and open configurations [41]. Finally, as in cellular OTA updates, downloading through Wi-Fi access points exhausts the backhaul network resources, since the number of connections is linear to the number of Wi-Fi access points, which are roughly as numerous as vehicles.

Our design decision stems from understanding vehicles’ mobility pattern and driver convenience. An EV driver can utilize the charging time at an EV station to do the software updates. Since the direct network (fiber, Ethernet, powerline) can practically be an order of magnitude faster than a cellular/Wi-Fi connection, payloads can often get downloaded in a single charging instance (e.g., within few minutes). At the EV station, a driver is likely to be attentive, and it is reasonable to keep the ignition on for such a short period. On the other hand, the number of connections between the download server and user is reduced to a logarithmic order, i.e., proportional to the number of update stations downloading (see Section VI). Interestingly, since update stations are shared update sources now, it is possible to optimise update distribution even further by downloading the common dependencies between different car models only once, while keeping the control with the OEM. For instance, popular telecommunication units, gateways, or intrusion detection systems from major suppliers currently appear in tens of car models from different OEMs. Instead of having encapsulated update bundles by the OEM, tagged and downloaded for each model, it is smart to tag updates by the supplier and reference them in the OEMs bundle to keep control of updates. These tagged updates are downloaded only once by the update station, regardless of the OEM, as long as the supplier version is the same.

III Related Work

The seminal Over-the-Air (OTA) architectures [23, 1] appeared with the introduction of wireless technologies like WIFI, Bluetooth, cellular LTE, and later DSRC and C-V2X [40]. In [23], the authors discussed the main security building blocks for a wireless OTA update system like using symmetric and asymmetric keys, SSL, and VPN. Their architecture was very simple, where the OEM sends the vehicle a software download link provided by the supplier. For integrity assurance, they have suggested downloading a software updates twice along with the message digest [23, 17], which was later shown to be redundant and unnecessary [16]. Nevertheless, the basic blocks like using symmetric and asymmetric keys for authentication and message digests inspired most of the subsequent OTA architectures [16, 26, 35, 19, 36], including ours. On the other hand, Tesla (whose code is not published) took advantage of using of Virtual Private Networks (VPN) over WIFI and cellular networks to ensure authentication and confidentiality in their very first design in 2012 [36, 43], in addition to the extensive use of code signing to ensure the integrity of updates [29].

The increasing complexity of the automotive software supply chain have called for secure end-to-end OTA update architectures that considered the off-vehicle (i.e., vehicle to the surrounding) and on-vehicle (mainly ECU to ECU) parts. The community has got inspired by The Update Framework [34] (TUF)—not tailored for automotive—that addresses the different stakeholders in the software update value chain. It considered the entire chain of trust by introducing the concept of separation of roles, thus making it easy to verify the authentication and integrity properties at any stage by the relevant stakeholders. TUF however has not tackled the automotive workflow in which the OEM plays a major role in deciding updates, and the fact that updates should target many entities, i.e., ECUs, rather than a single entity. Uptane [19, 38, 22] bridged TUF’s gaps by proposing an OEM’s update director, playing the role of the software update controller of the vehicle. Uptane also extended the TUF’s separation-of-roles concept to ensure the end-to-end trust of chain including those between ECUs, i.e., primary and secondary ECUs, inside the vehicle. ScalOTA benefits from both, TUF and Uptane, by extending the separation-of-roles concept to cover the suggested network of update stations. In this case, the update director in Uptane still defines the updates to be installed on a vehicle, however, it uses a publish-subscribe scheme to guide the vehicle to securely download the updates through the update stations and the software image inventories.

Similar to ScalOTA, several works have recently addressed Uptane’s bottleneck, but from a telecommunication perspective. For instance, the authors in [42] and [13] proposed architectures that predict the bandwidth usage, e.g., using historical (weekly) vehicle patterns, to schedule content sharing between edge/fog devices in the cellular backhaul network, and with the help of vehicle-to-vehicle (V2V) update forwarding. Similarly, [24] proposed using fog nodes to push updates to vehicles with the help of pivot cars, in a V2V manner. The reason behind using V2V update forwarding is that the edge/fog devices in these works are still centralized in the their respective zone, and lead to interference issues in peak hours, where the vehicles mainly pull updates [4]. In our work, we avoid V2V forwarding since it requires some notion of trust between vehicles—which was not addressed in the aforementioned works, and we argue that the industry is not ready for this approach. Other works like [36, 10] have proposed, at the high level, using V2V forwarding schemes through blockchains. However, these works have not thoroughly discussed the security aspects as we do in our work, and they have shown that exchanged updates are linear with the number of vehicles.

IV System and Threat Models

IV-A System Model

IV-A1 Off-Vehicle model

A typical software update system model is composed of two main entities: software provider/supplier and end-user device. An automotive software update system model has two main differences. First, the vehicle manufacturer—commonly known as Original Equipment Manufacturer (OEM)—employs a Software Update Director (SUD) service that is in charge of directing and maintaining the vehicle software updates tailored to different vehicle models—for safety and liability reasons. In this case, (tens of) suppliers provide the software updates of the specific parts directly to the manufacturer or through direct Image Repositories (IR). A supplier can yet delegate software image production or maintenance to (a chain of) third-party suppliers. The manufacturer’s SUD and the supplier’s IRs are assumed to be connected via an unreliable network, e.g., the Internet, where packets can be dropped, reordered, or modified. However, we assume that the network eventually delivers packets to their destination. This is feasible since automotive software updates are not required to be real-time.

IV-A2 In-Vehicle model

The second main difference is that the end-user device (the vehicle in this case) is composed of several smaller devices known as Electronic Control Units (ECUs), most of which are constrained in computation, memory, communications and features (e.g., security, power, etc.). We distinguish between two main classes of ECUs: a Primary ECU that has decent capabilities [15, 7] and connectivity to the surrounding environment, which allows it to play the role of vehicle update manager; and tens of Secondary computationally-constrained ECUs that are connected to the Primary via the in-vehicle network, through which they receive relevant updates. Some vehicle architectures can have more than one Primary or yet another layer of ECUs, e.g., tertiary ECUs, but we exclude these for simplicity. For the same reason, we assume the Primary and Secondaries are connected to the same Automotive Ethernet network [28] without any gateways. We assume that the in-vehicle network eventually delivers packets to their destination despite transient issues. Without loss of generality, we assume that the vehicle has a single Primary ECU that connects it to the Internet.

IV-A3 Update stations model

We extend this system model with an Update Distribution Broker (UDB): a distributed network of NN of vehicle update stations (UStation), e.g., associated with Electric Vehicle (EV) charging stations. In particular, UStations in the same zone could be connected via fiber-optic LAN, to benefit from their high throughput and security; whereas UStations could use a WAN or the Internet. There is no specific network topology that governs the UStations, but we assume a decent level of resiliency. The UDB plays the role of a marketplace for software updates, which can coordinate and deliver updates to vehicles in a fast, efficient, and secure way directly through a wired connection, e.g., while an EV is charging. A wired connection between the UStation and the vehicle has the advantage of high throughput and security. Again, this is convenient if the software cables are bundled with the power cables of the EV charging station or using Power-Line Communication (PLC) [12].

Finally, we assume a business model where OEMs have service level agreements (SLAs) with a software update operator, e.g., can be the EV station operator, that implements an Update Distribution Broker (UDB), and thus, allowing the UStations to host and deliver updates to the fleets.

IV-B Threat and Adversary Model

IV-B1 CIA model

Our threat model considers the Availability and Integrity properties of the CIA security triad model. The goal is to ensure the delivery of authentic and intact “packaged” software updates in a reasonable time to their destination vehicles. Given the large supply-chain discussed in the system model, the main challenge is to scale out the distribution of software updates, by using UStations as edge devices, while maintaining a secure chain-of-trust across the entire system. Confidentiality is not considered in this paper because its lack does not directly impede our goal above. Nevertheless, when it is essential, e.g., to protect the software intellectual property and reduce malware injection via reverse engineering, one can simply encrypt the payload using off-the-shelf encryption techniques, like RSA or ECC. In the same vein, we do not address software security prior to packaging or during development. We also assume highly resilient and secure SUDs and IRs, meaning that these should be impervious to attackers. In the worst case, an attacker may compromise one but not both servers at the same time.

IV-B2 Threats

An adversary may attack the vehicle by (1) attempting to install forged malicious updates to control an ECU or the entire vehicle (functionality or performance) through Man-in-the-Middle (MITM) or Spoofing attacks [22]; (2) impeding the vehicle update processes by generating compatibility issues across software or ECUs, caused by partial updates (e.g., Partial-bundle-installation or Mix-and-match attacks [22]); or (3) preventing a new update by replaying the same update when the vehicle performs the update cycle (i.e., Replay attack [22]). The adversary may attack the availability by dropping, delaying, or corrupting updates, e.g., by modifying the contents (e.g., Endless-data and Mix-and-match attacks) or timestamps (e.g., Freeze or Rollback attacks [22]). A detailed description of possible attacks is described in [22].

IV-B3 Adversary capabilities

To perform these attacks, we assume a strong adversary that is capable of compromising the system components and network to impede our goal. In particular, the adversary can:

  • Compromise the ECUs in the vehicle. Compromising the primary could compromise the updates on all Secondaries as well if the former is trusted. Compromising the Secondary may often have local effect only, e.g., by preventing updates locally, but it may also prevent other ECU updates to complete if there are dependencies (e.g., that require atomic all-or-nothing updates).

  • Compromise the keys. This includes compromising the keys of the manufacturer’s SUD, Image Repositories, or the UStations in the UDB. We however assume that the adversary cannot compromise the SUD and IR at the same time.

  • Intercept the communication channels. This includes intercepting the channels between all system actors, both off-vehicle and in-vehicle. The former is more likely in wireless communications, e.g., Cellular LTE, 5G, or Wi-Fi. The in-vehicle network is possible through accessing the vehicle via the OBD-II port, USB, or the Telecommunication Unit.

  • Compromise the cryptographic keys. The adversary can compromise the cryptographic keys, e.g., through stealthy attacks or elevation of privileges, to perform spoofing attacks or modify the signed hash digests of updates. Nevertheless, it is assumed that the attacker cannot break the used cryptographic primitives, like RSA and ECC keys or hash functions, using brute force.

V ScalOTA Architecture and Protocol

V-A Abstractions and Symbols

The message abstractions and symbols used throughout the paper are summarized in the next table for the reader’s convenience.

Symbol Meaning
θ=(𝖬𝖾𝗍𝖺,h,e,s,d)\theta=(\mathsf{Meta},h,e,s,d) update meta-data of software ss for ECU ee, with hash digest hh, and dependencies list dd
τx=(𝖳𝖲,t,v)\tau_{x}=(\mathsf{TS},t,v) xx’s timestamp tt and version vv of
μ=(𝖬𝖺𝗇𝗂𝖿𝖾𝗌𝗍,l,θ,τμ)\mu=(\mathsf{Manifest},l,\theta,\tau_{\mu}) meta-data manifest of an update at location ll
D={μδ1,,μδm}D=\{\mu_{\delta_{1}},...,\mu_{\delta_{m}}\} set of related update δ\delta manifests
Δ=(𝖡𝗎𝗇𝖽𝗅𝖾,D,τΔ)\Delta=(\mathsf{Bundle},D,\tau_{\Delta}) manifest of a bundle of updates enclosed in DD
γ=(𝖲𝗍𝖺𝗍𝗎𝗌,R,τV)\gamma=(\mathsf{Status},R,\tau_{V}) Status of installed updates enclosed in RR
σE={a:aE}\sigma_{E}=\{a:a\in E\} set of signature keys signed a message
xσE\langle x\rangle_{\sigma_{E}} xx & its hash digest signed by all keys in EE.
Refer to caption
Figure 1: The ScalOTA architecture.

V-B Architecture overview

Figure 1 depicts the architecture of ScalOTA. The architecture is composed of four main parts: the manufacturer’s Software Update Director (SUD), the supplier chain of Image Repositories, the EV Station Manager (ESM), and the vehicles.

The Software Update Director (SUD) is an entity that is owned by the OEM to control the updates of the entire fleet. For this, the SUD retains an inventory database of the entire fleet information and vehicle specifications, versions, and associated suppliers. The SUD also calculates version dependencies and conflicts to generate safe update lists. The SUD contains roles that represent entities inside the SUD with different responsibilities; when a role writes metadata it always signs it with its own key(s). The roles are: targets—stores the various updates’ information; snapshot—creates metadata describing stable software bundles; timestamp—responsible for applying timestamps to targets’ and snapshot’s metadata, which is used to know if there are new updates; and root—acts as a Certificate Authority (CA) for the other roles. Image Repository (IR). This is a database where all OEM-associated software is stored, including packages developed in-house and from N-Tier suppliers. The Update Distribution Broker (UDB) is a network of vehicle update stations (UStations), e.g., associated with EV charging stations, and operated by a new entity we call update operator. The UDB acts as a CA for its stations, such that the vehicles can attest the owner of each UStation. Each UStation collects identifiers about vehicle models in its corresponding zone, for which updates are downloaded and cached. The UStation pulls from the UE updates corresponding to the identifier, that by its turn subscribes to the corresponding updates provided by the manufacturer’s SUD, through the MQTT pub/sub protocol. The UE then redirect the update downloads to the designated UStation. The UE can optimize the cache of the software updates on zonal-basis. It can also predict update usage, i.e., if an update Δ\Delta becomes available for a vehicle type that is frequently seen in its UStations, then it can preemptively publish it. A Vehicle is composed of a primary and several secondary ECUs, for which software updates are continuously needed. The Supplier is the main software update producer. It stores updates in local or manufacturer-owned Image Repository (IR). As explained later, a direct supplier (called Tier 1) can securely delegate software to other third-party (Tier 2 or Tier 3) suppliers. Finally, the Time Server is a trusted source of time for all elements considered.

V-C Update Initialization and Publishing

This section presents the ScalOTA protocol steps for update installation and publishing to the update stations.

V-C1 Initialization

Before dispatching the vehicle to the market, an OEM installs the most recent software versions for all of its parts (i.e., ECUs). The vehicle’s model is known by its unique Vehicle Identification Number (VIN), composed of 17 characters. In particular, the very first 11 characters, we call them Model Identification Number (MIN), define the corresponding features, specifications, and manufacturer. To keep the vehicle in circulation up-to-date, the OEM retains the updates’ meta-data in a Fleet Inventory database. The Fleet Inventory is essential for the OEM to be able to track the circulating fleet and its corresponding software. This is key to pull any new software updates, through software producers, and push them to the vehicles in a timely manner, to reduce recalls or safety incidents.

Therefore, the Fleet Inventory stores the following information: VIN, MIN, and a list of all software meta-data manifests: Le={μs=𝖬𝖺𝗇𝗂𝖿𝖾𝗌𝗍,l,θ,τμσ;sSe}L_{e}=\{\mu_{s}=\langle\mathsf{Manifest},l,\theta,\tau_{\mu}\rangle_{\sigma};s\in S_{e}\}, where SeS_{e} is the set of software for ECU ee corresponding to MIN; ll is the δ\delta location link; θ=(𝖬𝖾𝗍𝖺,h,e,s,d)\theta=(\mathsf{Meta},h,e,s,d) retains the hash digest, ECU, software ss, and its dependencies, respectively; and τs=(𝖳𝖲,t,v)\tau_{s}=(\mathsf{TS},t,v) corresponds to the timestamp and version of ss. All manifests are signed by the corresponding software producer prodσprod\in\sigma. Of particular interest, we identify the last available update through its TS message τslast\tau_{s}^{last}.

V-C2 Publishing Updates

This section presents the protocol used to publish newly generated software updates to the update stations, thus, making the available to be downloaded by the vehicles.

Step 1. The software update producer adds a new update δ\delta^{\prime} and a signed meta-data μδ\mu^{\prime}_{\delta} to the Image Repository (IR).

Several software producers may continuously supply the OEM with updates for the different software installed in the vehicle’s ECUs (e.g., in response to a bug, vulnerability, or feature opened in an Issue Tracking platform). The producer can be a supplier, third party (e.g., Tier 2) or the OEM development team itself. When a new software update δ\delta^{\prime} is ready to be deployed, the software producer prodprod places in an Image Repository (IR) both the update δ\delta^{\prime} and its corresponding manifest μδ=𝖬𝖺𝗇𝗂𝖿𝖾𝗌𝗍,l,θ,τμσ\mu^{\prime}_{\delta}=\langle\mathsf{Manifest},l^{\prime},\theta^{\prime},\tau^{\prime}_{\mu}\rangle_{\sigma}, signed by prodσprod\in\sigma; where ll^{\prime} represents the update location of δ\delta^{\prime} to download from, θ\theta^{\prime} collects the integrity data of δ\delta^{\prime}, and τμ\tau^{\prime}_{\mu^{\prime}} retains the current timestamp and version of the meta-data μδ\mu^{\prime}_{\delta^{\prime}}. Notice that different IRs—hosted by the producers or the OEM—can retain the same software images; but we only consider one IR in this protocol, for clarity.

Step 2. The producer prodprod sends to the OEM’s update director SUD a copy of the meta-data manifest μδ\mu^{\prime}_{\delta^{\prime}}. The latter validates its authenticity, integrity, and freshness, signs it, and adds it to its Fleet Inventory, if valid.

After saving the software update δ\delta^{\prime} and meta-data μδ=𝖬𝖺𝗇𝗂𝖿𝖾𝗌𝗍,l,θ,τμσ\mu^{\prime}_{\delta^{\prime}}=\langle\mathsf{Manifest},l^{\prime},\theta^{\prime},\tau^{\prime}_{\mu}\rangle_{\sigma} in IR, the producer sends μδ\mu^{\prime}_{\delta^{\prime}} to the OEM’s SUD. (The producer may send μδ\mu^{\prime}_{\delta^{\prime}} to several OEMs in case their fleet shares the same software, or possibly ECUs.) When the SUD receives μδ\mu^{\prime}_{\delta}, that subsumes θ=(𝖬𝖾𝗍𝖺,h,e,s,d)\theta^{\prime}=(\mathsf{Meta},h^{\prime},e^{\prime},s^{\prime},d^{\prime}) and τδ=(𝖳𝖲,t,v)\tau^{\prime}_{\delta^{\prime}}=(\mathsf{TS},t^{\prime},v^{\prime}), it validates it by running the following assertions against the last version it has τlast=(𝖳𝖲,t,v)\tau^{last}=(\mathsf{TS},t,v).

In detail, the authentication is validated by 𝖺𝗌𝗌𝖾𝗋𝗍𝖠𝗎𝗍𝗁\mathsf{assertAuth}, Eq.(1), that asserts that prodprod is one of the signers of the message, i.e., prodσprod\in\sigma. The freshness is asserted by 𝖺𝗌𝗌𝖾𝗋𝗍𝖥𝗋𝖾𝗌𝗁\mathsf{assertFresh}, Eq.(2), that ensures the time and version of the new update are strictly newer than the last version the SUD has in τslast\tau_{s}^{last}. Finally, the integrity is verified by in 𝖺𝗌𝗌𝖾𝗋𝗍𝖨𝗇𝗍𝖾𝗀𝗋𝗂𝗍𝗒\mathsf{assertIntegrity}, Eq. (3-4), that ensures the update’s download succeeds via link ll, the hash of the downloaded version matches that of hh^{\prime}, and the corresponding ECU ee and software ss match those in the meta-data manifest.

𝖺𝗌𝗌𝖾𝗋𝗍𝖠𝗎𝗍𝗁:=\displaystyle\mathsf{assertAuth}:= prodσ\displaystyle\ prod\in\sigma (1)
𝖺𝗌𝗌𝖾𝗋𝗍𝖥𝗋𝖾𝗌𝗁:=\displaystyle\mathsf{assertFresh}:= t>tlastv>vlast\displaystyle\ t^{\prime}>t^{last}\land v^{\prime}>v^{last} (2)
𝖺𝗌𝗌𝖾𝗋𝗍𝖨𝗇𝗍𝖾𝗀𝗋𝗂𝗍𝗒:=\displaystyle\mathsf{assertIntegrity}:= h=hash(download(l))\displaystyle\ h^{\prime}=hash(download(l^{\prime})) (3)
e=e\displaystyle\land e=e^{\prime} (4)
s=s\displaystyle\land s=s^{\prime} (5)

If these assertions succeeded, SUD signs μδσ\langle\mu^{\prime}_{\delta^{\prime}}\rangle_{\sigma} by appending the signatures of three roles target, timestamp, root to σ={σ,target,timestamp,root}\sigma=\{\sigma,target,timestamp,root\}. The target role signature certifies the update data, the timestamp certifies the approval time, and the root certifies the entire roles. These roles can represent different entities or processes at the OEM, which requires separation of responsibilities, and thus require different signatures. Then it adds μδσ\langle\mu^{\prime}_{\delta^{\prime}}\rangle_{\sigma} list of software LeL_{e} in the Fleet Inventory. Otherwise, the OEM notifies the producer and asks for the correct update manifests until it succeeds. It is noteworthy that the OEM may or may not perform the necessary quality assurance (e.g., unit testing or validation) in a suitable setting before adding μδ\mu^{\prime}_{\delta^{\prime}}. We argue that doing this is, however, important for the OEM being the liable entity—contrary to the producer—about any software failures.

Step 3. The OEM resolves the possible dependencies of δ\delta^{\prime}, creates certified update bundle Δ\Delta^{\prime}, and then updates its Fleet Inventory with the new signed software bundle.

Although the software update δ\delta^{\prime} is validated in Step 2, it is still not ready to be pushed to the vehicle because of potential dependencies. For this reason, the OEM’s SUD has to prepare a bundle Δ\Delta^{\prime} that contains δ\delta^{\prime} and its resolved dependencies, i.e., possibly many updates δi\delta_{i}, before shipping it to the vehicle. This means that an update δ\delta^{\prime} may not be pushed to the vehicle alone. Note that the OEM may need to create a bundle for each vehicle model having different features (e.g., based on its MINMIN).

There are two types of dependencies. The first is a dependency on other ECUs, i.e., if different ECUs have to be updated at once for the new update δ\delta^{\prime} on ee to function properly. The OEM can resolve these dependencies since—contrary to the software producer—it has visibility over the entire vehicle system, and thus can figure out the possible conflicts or dependencies across ECUs. The second type of dependencies is local, representing the software modules or libraries that the same ECU ee must have. These are already listed by the producer in dd^{\prime}, i.e., together with θ=(𝖬𝖾𝗍𝖺,h,e,s,d)\theta^{\prime}=(\mathsf{Meta},h^{\prime},e^{\prime},s^{\prime},d^{\prime}). The OEM, however, has to make sure the set of dependencies are installed on ee; otherwise, it bundles them together with δ\delta^{\prime} to be shipped to the vehicle. Finally, any dependency δi\delta_{i} is assumed to be generated and represented as a typical software update, possibly generated by multiple producers (including the OEM development team), following Step 1 and Step 2 defined above.

After the list of dependencies (δ1,δ2,,δm\delta_{1},\delta_{2},...,\delta_{m}) has been resolved, the SUD creates a bundle Δ=𝖡𝗎𝗇𝖽𝗅𝖾,D,τΔσ\Delta^{\prime}=\langle\mathsf{Bundle},D^{\prime},\tau^{\prime}_{\Delta^{\prime}}\rangle_{\sigma}. In this bundle, D={μδ,μδ1,μδ2,,μδm}D^{\prime}=\{\mu_{\delta^{\prime}},\mu_{\delta_{1}},\mu_{\delta_{2}},...,\mu_{\delta_{m}}\} collects all the manifests of the related dependencies of δ\delta^{\prime} (included), so that the vehicle can download them as needed. On the other hand, τΔ=(𝖳𝖲,t,v)\tau^{\prime}_{\Delta^{\prime}}=(\mathsf{TS},t^{\prime},v^{\prime}) assigns the new timestamp and version of the bundle to ensure freshness at the vehicle side (see details later). Finally, the snapshotsnapshot role’s signature is appended to the bundle σ={σ,snapshot}\sigma=\{\sigma,snapshot\}, thus asserting to the vehicle that this bundle is certified by the corresponding OEM.

Step 4. The OEM’s SUD publishes the manifest τΔ\tau^{\prime}_{\Delta^{\prime}} of the new bundle Δ\Delta^{\prime} to all subscribers, including the Update Distribution Brokers (UDB) and vehicles, after including and signing the public key of each.

At this stage, the SUD prepares to notify the subscribers about the new update bundle, via the Publish-subscribe service, run by the SUD. The natural subscribers for updates (of a software ss corresponding to an ECU ee) are the OEM’s fleet vehicles. In addition, the Update Distribution Broker (UDB) we suggest in this work is a subscriber on behalf of the operated update stations, as explained in Section V-D. However, the most relevant point to mention here is that the UDB subscribes to receive all the updates corresponding to any vehicle passing by the network of update stations, provided that the vehicle has access to the UDB service.

Before publishing Δ=𝖡𝗎𝗇𝖽𝗅𝖾,D,τΔσ\Delta^{\prime}=\langle\mathsf{Bundle},D^{\prime},\tau^{\prime}_{\Delta^{\prime}}\rangle_{\sigma} to a subscriber subsub, the UDB’s publishpublish role adds the public key of the subscriber and its own public key to σ={σ,sub,publish}\sigma=\{\sigma,sub,publish\}. Appending the subscriber’s public key and signing it by the OEM’s publish role is necessary for the former to certify its eligibility to download the updates listed in Δ\Delta^{\prime} from the corresponding IRs. Again, having a separate publish role signature is helpful to stop the downloads when needed, i.e., by simply revoking the publish role key (without having to change the other roles if not needed).

Finally, the SUD publishes the bundle update Δ\Delta^{\prime} to its subscribers. In particular case of the UDB, the notification is sent to the UDB’s Update Engine that can later distribute the updates to the relevant update stations internally. On the other hand, the vehicles may also receive the update bundle upon request as described next, in Section V-D.

Step 5. The UDB validates the authenticity, integrity, and freshness of the update bundle Δ\Delta^{\prime}. If this succeeds, it downloads the update images from the respective Image Repositories (IR), and makes them available at the relevant update stations.

When the UDB’s Update Engine receives the update bundle Δ=𝖡𝗎𝗇𝖽𝗅𝖾,D,τΔσ\Delta^{\prime}=\langle\mathsf{Bundle},D^{\prime},\tau^{\prime}_{\Delta^{\prime}}\rangle_{\sigma}, it first tries to validate its authenticity, integrity, and freshness against the last version it has τlast=(𝖳𝖲,t,v)\tau^{last}=(\mathsf{TS},t,v). Authenticity is verified, in Eq. (6), by ensuring the publishpublish and subsub keys are included in σ\sigma. Freshness is verified, in Eq. (7), by asserting that the version and timestamps of the received bundle are strictly in the future of the last one UDB has. Integrity is verified by asserting that the hash of Δ\Delta^{\prime} matches the received signed hash digest.

𝖺𝗌𝗌𝖾𝗋𝗍𝖠𝗎𝗍𝗁:=\displaystyle\mathsf{assertAuth}:= {publish,sub}σ\displaystyle\ \{publish,sub\}\in\sigma (6)
𝖺𝗌𝗌𝖾𝗋𝗍𝖥𝗋𝖾𝗌𝗁:=\displaystyle\mathsf{assertFresh}:= t>tlastv>vlast\displaystyle\ t^{\prime}>t^{last}\land v^{\prime}>v^{last} (7)

After this, the Update Engine iterates over all δiD={μδ,μδ1,μδ2,,μδm}\delta^{\prime}_{i}\in D^{\prime}=\{\mu_{\delta^{\prime}},\mu_{\delta_{1}},\mu_{\delta_{2}},...,\mu_{\delta_{m}}\} to validate them, in a similar way to the steps in Eq. (1-5). If validation fails, the Update Engine requests the correct manifests explicitly, until its can validate them. Then it downloads each δi\delta_{i} from the corresponding IR mentioned in μδm\mu_{\delta_{m}}, excluding the invalid ones or those that have been downloaded previously. This is possible after authenticating with the IR, by exchanging μδm\mu_{\delta_{m}} that includes the public key of the UDB subsub, signed by the OEM. Afterwards, the Update Engine pushes the updates δi\delta_{i} and their corresponding manifests μδi\mu_{\delta_{i}} to the update stations that are subscribed to these updates. The Update Engine can alternatively send the manifests to the corresponding update stations to download the images by themselves.

V-D Update Protocol

This section presents the ScalOTA protocol steps followed by the vehicles to download software updates.

Step 6. The vehicle’s primary ECU sends a report RR describing the vehicle software, by periodically sending γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma=\langle\mathsf{Status},R,\tau_{\gamma}\rangle_{\sigma} to the OEM’s SUD. Timestamps and versions have to be signed by secondary ECUs if they do not trust the primary.

In this step, the vehicle attempts to check if there are any software updates to download and install. Nevertheless, the vehicle cannot do this with on its own because of the potential dependencies bundled by the OEM. This is common in automotive OTA updates, where the OEM director is in charge of deciding the updates to be installed for each vehicle.

To do this in ScalOTA, the primary ECU sends a periodic report RR about the current status γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma=\langle\mathsf{Status},R,\tau_{\gamma}\rangle_{\sigma} of the software versions installed on the vehicle to the OEM’s SUD. The sending frequency can be once per week, day, or even upon every vehicle ignition, but it must be defined for freshness reasons. The primary prepares γ\gamma as follows: it adds to a list RR the timestamp meta-data τe\tau_{e} corresponding to all the vehicle ECUs’ versions that are currently installed. If RR is the same as the previous sent Status message, the primary sends the hash digest of RR instead. The primary also prepares τγ=(tγ,vγ)\tau_{\gamma}=(t_{\gamma},v_{\gamma}) by updating its timestamp tγt_{\gamma} and using the last Status message’s version vγv_{\gamma} it has. Finally, the primary signs γ\gamma by adding its signature primaryprimary to σ\sigma and sends it to the SUD.

In the case where a secondary ECU does not trust the primary, which has the only communication interface to the outside world, the secondary has to sign the τe\tau_{e} by itself, and relays it through the primary while preparing σ\sigma. This has the advantage that the primary cannot lie to the OEM about the last versions installed on the secondary. In addition, the secondary has to send τe\tau_{e} at a fixed frequency, e.g., once per week, day, or even upon every vehicle ignition, so that it can raise an alert flag to the driver, when the primary delays or discards the OEM’s replies of the Status message.

Step 7. Upon the receipt of γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma=\langle\mathsf{Status},R,\tau_{\gamma}\rangle_{\sigma} from the vehicle, the SUD validates γ\gamma, identifies the update bundle Δi\Delta_{i} newer to those reported in RR, if any, and then encapsulates them in γ\gamma^{\prime} as a response to the vehicle.

When the SUD receives γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma=\langle\mathsf{Status},R,\tau_{\gamma}\rangle_{\sigma} from the primary ECU of vehicle VV, it first validates its authenticity and hash integrity, which occurs similar manner as before. The exception is freshness validation: if RR has been previously seen by the SUD, freshness is ensured if tγlast<tγt^{last}_{\gamma}<t_{\gamma} and vγlastvγv^{last}_{\gamma}\geq v_{\gamma}; where τγ=(tγ,vγ)\tau_{\gamma}=(t_{\gamma},v_{\gamma}), and vγlastv^{last}_{\gamma} and tγlastt^{last}_{\gamma} correspond to the last retained Status message’s meta-data at the OEM’s SUD. The validation of vγv_{\gamma} is important since the vehicle should never have a newer version than the OEM. If γ\gamma is invalid, the SUD will discard the message, and consequently, the response to the StatusStatus message will be delayed, and the ECUs at the vehicle will raise an alert to the driver.

Now, the SUD is ready to prepare for the reply γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma^{\prime}=\langle\mathsf{Status},R^{\prime},\tau_{\gamma^{\prime}}\rangle_{\sigma}. This is done by figuring out all the bundles’ meta-data (Δ1,Δ2,..,Δk)(\Delta_{1},\Delta_{2},..,\Delta_{k}) in the Fleet Repository that are in the future of those reported in RR. If none, i.e., RR has been seen before, RR^{\prime} is set to RR again. However, this time with a new timestamp tγt_{\gamma}^{\prime} and incremented Status message’s version vγ=vγ+1v_{\gamma}^{\prime}=v_{\gamma}+1 in τγ=(tγ,vγ)\tau_{\gamma^{\prime}}=(t_{\gamma}^{\prime},v_{\gamma}^{\prime}), so that the ECUs can assert the freshness of Status message. (Recall that each update δ\delta has another τδ\tau_{\delta} that is used to validate the freshness of the update.) Finally, the SUD’s timestamp role signature is added to σ\sigma, and γ\gamma^{\prime} is sent back to the primary ECU.

In the case where secondary ECUs do not trust the primary, the SUD has to verify each ECU’s timestamp τe\tau_{e} in γ\gamma, and then sign each bundle Δ\Delta destined to ee. This allows the latter to verify the bundle instead of the primary ECU.

Step 8. Upon the receipt of γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma^{\prime}=\langle\mathsf{Status},R^{\prime},\tau_{\gamma}^{\prime}\rangle_{\sigma} from the SUD, the vehicle’s primary ECU validates γ\gamma^{\prime}, and becomes pending to download the corresponding bundles’ images, i.e., when connected to an update station or directly through the IRs.

When the vehicle’s primary ECU receives the Status reply γ=𝖲𝗍𝖺𝗍𝗎𝗌,R,τγσ\gamma^{\prime}=\langle\mathsf{Status},R^{\prime},\tau_{\gamma}^{\prime}\rangle_{\sigma} from the SUD, it validates its authenticity and hash integrity, as usual. Freshness validation is however done through asserting that tγlast<tγt^{last}_{\gamma}<t^{\prime}_{\gamma} and vγlastvγv^{last}_{\gamma}\leq v^{\prime}_{\gamma}, where τγ=(tγ,vγ)\tau_{\gamma}^{\prime}=(t^{\prime}_{\gamma},v^{\prime}_{\gamma}), and vγlastv^{last}_{\gamma} and tγlastt^{last}_{\gamma} correspond to the last retained Status message’s meta-data at the primary. Note that its okay if the primary did not receive some γ\gamma versions between vγlastv^{last}_{\gamma} and vγv^{\prime}_{\gamma}, since any recent γ\gamma version will include all the bundles with their dependencies (again other bundles). Thus, it is sufficient for the primary to download the last bundles, in γ\gamma, it does not have, and thus discard any (delayed) γ′′\gamma^{\prime\prime} message whose tγ′′<tγlastt^{\prime\prime}_{\gamma}<t^{last}_{\gamma}.

Afterwards, if γ\gamma^{\prime} is valid, the primary retains all the meta-data manifest bundles reported in RR^{\prime}, in a pending state, until it connects to an update station to download them. However, if vγlast=vγv^{last}_{\gamma}=v^{\prime}_{\gamma}, then RR^{\prime} has been seen before and, therefore, no new updates are available. At this stage, vehicles that do not wish to download the updates through the update stations of the UDB can still download them via typical wireless, e.g., cellular communication.

In the case where a secondary ECU ee does not trust the primary, the latter must send the relevant bundles of ee, together with τγ\tau_{\gamma}^{\prime}, to verify them by itself. If this failed, or got delayed to reach ee, or even the primary has not received a valid γ\gamma^{\prime} on time, any of these ECUs can raise an alert to the driver.

Step 9. The vehicle connects to an update station, gets authenticated, and downloads each update image δ\delta included in all the pending meta-data bundles.

When the vehicle stops at an update station, e.g., while charging at an integrated EV station, operated by the update broker UDB, it tries to connect, preferably, via a fast wired interface (e.g., an Ethernet cable that is bundled with the EV electric cable or a Powerline cable [32]), or via other available communication media, like Wi-Fi. Then, the primary exchanges its public key, signed by its private key, with the update station to authenticate it—assuming that the vehicle already has a valid account with the UDB operator. If authentication succeeded, the primary sends all its pending meta-data bundles to the update station. Recall that each bundle Δ=𝖡𝗎𝗇𝖽𝗅𝖾,D,τΔσ\Delta^{\prime}=\langle\mathsf{Bundle},D^{\prime},\tau^{\prime}_{\Delta^{\prime}}\rangle_{\sigma} may include many meta-data manifests like μδii=𝖬𝖺𝗇𝗂𝖿𝖾𝗌𝗍,lδi,θδi,τδiσ\mu^{i}_{\delta_{i}}=\langle\mathsf{Manifest},l_{\delta_{i}},\theta_{\delta_{i}},\tau_{\delta_{i}}\rangle_{\sigma} for multiple updates δiD\delta_{i}\in D^{\prime}, where the update integrity details are in θδi=(𝖬𝖾𝗍𝖺,hδi,eδi,sδi,dδi)\theta_{\delta_{i}}=(\mathsf{Meta},h_{\delta_{i}},e_{\delta_{i}},s_{\delta_{i}},d_{\delta_{i}}). The update station uses these details to identify the corresponding image δi\delta_{i}, and thus pushes it to the primary ECU if it is already cached. Otherwise, the update station have to download the update on the spot in the cases of cache miss or unknown vehicle model, as discussed in the following. Finally, the primary validates the hash digest of δi\delta_{i} against the the manifest’s digest hδih_{\delta_{i}}, thus asserting its integrity.

Step 10. The primary ECU pushes each update image δi\delta_{i} to its corresponding secondary ECU to install them. The secondary may do partial or full verification depending on whether it trusts the primary or not, respectively.

Prior to pushing updates from the primary to secondary ECUs, two components are required. The first is an in-vehicle communication medium that supports the basic communication and security abstractions used in the protocol above. For simplicity, we consider an Automotive Ethernet [27] network between the primary and secondaries. Considering other networks is orthogonal to ScalOTA since we consider the communication channels as a black-box. The second component is a Flash Bootloader tool at the secondaries, which is used to handle the received updates and install them. The Flash Bootloader is assumed to have a running daemon that has a defined API to be able to communicate with other processes over the network, e.g., with the primary ECU. To avoid pedantic details, we assume that these tools are immutable (i.e., are never updated).

We differentiate between two cases for pushing the updates from the primary to a secondary ECU, considering whether the secondary trusts the primary or not.

Trusted Primary. Assuming the primary is trusted, it can handle the entire software download process as specified in Steps 6-9 above, on behalf of the secondary. The secondary only need to do partial verification: verify the key of the primary ECU, i.e., primaryσprimary\in\sigma, and the update image against the received hash hδih_{\delta_{i}} in the meta-data θδi=(𝖬𝖾𝗍𝖺,hδi,eδi,sδi,dδi)\theta_{\delta_{i}}=(\mathsf{Meta},h_{\delta_{i}},e_{\delta_{i}},s_{\delta_{i}},d_{\delta_{i}}) of the manifest μδii\mu^{i}_{\delta_{i}}. It may also perform basic sanity checks, e.g., error correction or erasure code. If these are valid, the Flash Bootloader daemon installs the update locally and reboots the secondary ECU if needed.

Untrusted Primary. An untrusted primary may lead to integrity or availability issues (and confidentiality if considered). It could violate integrity by forging the software update images or manifests. This would require the secondary to do a full verification, which means verifying all the encapsulated messages Δ\Delta, μδ\mu_{\delta} τ\tau, θ\theta, and σ\sigma as the above in Steps 6-9. On the other hand, the primary may simply delay or drop the updates destined to the secondary. To address this, the secondary’s Flash daemon has to send the Status message following a pre-defined frequency, as discussd in Step 6 and 8, and then raise an alert if no valid responses are received on time. This ensures that the primary could neither delay or discard the received updates from the OEM beyond the pre-defined period (e.g., defined on safety basis), nor tampering with their content.

V-E Caching Mechanism

As described in the protocol in Step 9, the vehicle can start downloading the update images once it connects to an update station. However, given the storage capacity of the cache at update stations as well as the mobility patterns of similar vehicle models, an update images may or may not be available at the update station for immediate download. We, thus, consider three interesting cases: Cache Hit, Cache Miss, and Unknown Vehicle, discussed below.

Cache Hit. The update station has local caches for the required updates. This means that the UDB’s Update Engine has already pushed the updates to this station, as a result of a previous access that had occurred by a vehicle model requiring the same software. The primary can thus download the software images without any delays, i.e., via a wired connection.

Cache Miss. The update station does not have the update images requested by the vehicle. In this case, the vehicle’s software are assumed to be subscribed to the UDB’s Pub/Sub system, but it lost the images possibly because of the cache scheme. This can happen if any vehicle model that shares the same software had already passed by any update station operated by the UDB. The station can thus pull the updates from the UDB’s Update Engine. Although the network connecting the update station is assumed to be fast, e.g., using fiber optics, a cache miss will incur additional delays. Despite this, the download can be one order of magnitude faster than a cellular-based connection, as we show in Section VI.

Unknown Vehicle. The current vehicle’s model (MIDMID) is unknown to the update station. In this case, the station sends a subscribe request to the UDB’s Update Engine. If the latter has the MIDMID subscription through another update station, it adds the current station to its list of destinations and sends to it the updates. On the other hand, if the Update Engine does not know about the MIDMID at all (i.e., this model has never been seen at any update station), the UDB subscribes to the OEM’s SUD and starts getting updates for that model. Therefore, the protocol is followed to make the updates of this car model supported at the UDB and at this very update station.

VI Evaluation

VI-A Experimental Setting

We have implemented ScalOTA in Python and C. The core footprint is 1700 LOC, excluding dependencies on external libraries, mainly TUF [34]. To evaluate ScalOTA, we used Emulab [11] that allowed us to use tens of real machines (8-cores with tens of GB of memory) without interference with other applications, while emulating network bandwidth and link delays as needed (via using extra delay machines). We ran our code on Ubuntu 20.04 VM/bare metal machines depending on the experiment. We set up three types of links with different characteristics for the three typical network use cases suggested in ScalOTA: cellular from the vehicles to the SUD or IR (5Mbps bandwidth, 30ms latency); cable between UStations and IRs (10Mbps bandwidth, 10ms latency), and direct Ethernet between the UStation and the vehicles (100Mbps bandwidth, 2ms latency). All measurements include computation times, such as verifying signatures.

Refer to caption
Figure 2: Download times considering the percentage of updates served by UStations.

VI-B Update download time

ScalOTA is attractive to vehicle owners since it uses a direct connection to a UStation, i.e., fast and free, while currently users pay a costly cellular data plan whose speed and bandwidth are capped or limited depending on the region. In Figure 2 we show this ScalOTA’s advantages for the user by comparing the time taken to download 100MB of updates through cellular link and directly from the UStation. In this scenario, we consider all update requests to the UStation are hits. We can see that as we serve a larger percentage of updates from the UStations the time required for downloading the whole bundle decreases significantly, up to 15\frac{1}{5} of the cellular network time. We discriminate the time used to fetch the manifests as these are always downloaded via the cellular network. This figure demonstrates the benefit of using dedicated links for the convenience of the user.

VI-C Cache management on download time

Figure 3 shows the bandwidth usage of downloading 100MB of updates over the different cache events considered in ScalOTA: hit, miss, and unknown (see Section V-E for details). Over the X-axis we present several scenarios, where a different percentage of the updates falls under (H)it, (M)iss, and (U)nknown events. We present a scenario where each event type is dominant, as well as more balanced scenarios. There are two takeaways from the figure: 1) the update distribution algorithm is paramount for the success of ScalOTA since we want to prioritize hits for maximum efficiency; 2) the download times between miss and unknown are very similar—this is due to the simplicity of establishing a subscription for a new model, which is the only difference between the processes. These results reinforce the effectiveness of ScalOTA, since in the worst case scenario—100% misses—the download speed is lower than using only the cellular network, while at the same time being free of charge.

Refer to caption
Figure 3: Download time comparisons considering various caching events.

VI-D Resilience of IR to increasing loads and UStations

In Figure 4, we show the impact the number of clients have on simultaneously downloading a 100Mb update bundle from the IR. The X-axis represents the percentage of the bundle that is served by UStations (the remainder is downloaded via the cellular network), while the various lines represent the number of clients simultaneously downloading the bundle. There is a clear degradation of service as the server gets overloaded with requests when there is little update coverage from the UStations. Using ScalOTA means drastically reducing the download times even during peak-usage events, since the load is distributed in the edge instead of centralized in the cloud. In fact, in a real-world scenario this result is expected to be even worse due to the network congestion and interference from multiple vehicles in close proximity degrading the link quality [4, 6].

Refer to caption
Figure 4: The download times based on the number of simultaneous clients.

VI-E Bandwidth Cost

We estimate the bandwidth cost theoretically since we faced some issues with Emulab while running hundreds of ScalOTA real instances within hundreds of VMs. The total update cost is usually paid by owners. It can be modeled as follows: CT=Cup+CbwdthC_{T}=C_{up}+C_{bwdth}, where CupC_{up} is the software update service cost, often offered by the OEM, and Cbwdth=r(Δa+μa)C_{bwdth}=r*(\Delta^{a}+\mu^{a}) is the estimated bandwidth cost for software aa offered by a cellular operator, where rr is the telecommunication bandwidth rate. Notice that in state of the art solutions, a software update downloads Δa+μa\Delta^{a}+\mu^{a} through the OEM’s SUD (that hosts the Image Repository in this case).

ScalOTA reduces the CbwdthC_{bwdth} part, which dominates the update service cost, as the vehicle only downloads μa\mu^{a} through the SUD, and Δa\Delta^{a} via the update station. In his case, it is reasonable to assume the new update service to be equivalent to CupC_{up}, while the bandwidth cost from the update station is assumed to be free. Therefore the total bandwidth cost will be Cbwdth=rμaC_{bwdth}=r*\mu^{a}, and thus the relative bandwidth cost will be μa/(Δa+μa)\mu^{a}/(\Delta^{a}+\mu^{a}). In our implementation of ScalOTA, the manifests occupy from a couple to less than a hundred kilobytes, thus confirming that Δa\Delta^{a} dominates the download cost, and therefore the savings obtained.

VII Conclusions

We have introduced ScalOTA, a new architecture that makes use of update stations, possibly integrated with EV stations, to reduce the update latency and cellular bandwidth utilization. For this, we have presented a formal OTA update protocol that we have also proved (see Appendix) its integrity, authenticity, and availability properties, defending against known OTA attacks. Our empirical evaluation on a real cluster confirms that the reduction in update latency and cellular bandwidth utilization is one order for magnitude compared with using cellular connectivity alone. Interestingly, ScalOTA introduces a new business model, by having separate software distribution operators and a market place. In the future, we aim to conduct a dedicated security verification, which is possible now given our formalization. We also aim to use real data traces to understand the mobility patterns over an area near update stations, and thus, better asses the cache misses and hits.

References

  • [1] Microsoft Auto 3.1 Platform Overview, November 2008.
  • [2] Not a Tesla App. Statistics. https://www.notateslaapp.com/software-updates/version/2023.2.12/statistics. Last accessed: 28/02/2023.
  • [3] Carlos E Andrade, Simon D Byers, Vijay Gopalakrishnan, Emir Halepovic, Milap Majmundar, David J Poole, Lien K Tran, and Christopher T Volinsky. Managing massive firmware-over-the-air updates for connected cars in cellular networks. In Proceedings of the 2nd ACM international workshop on smart, autonomous, and connected vehicular systems and services, pages 65–72, 2017.
  • [4] Carlos E. Andrade, Simon D. Byers, Vijay Gopalakrishnan, Emir Halepovic, David J. Poole, Lien K. Tran, and Christopher T. Volinsky. Connected cars in cellular network: a measurement study. In Proceedings of the 2017 Internet Measurement Conference, pages 235–241, London United Kingdom, November 2017. ACM.
  • [5] Carlos E Andrade, Simon D Byers, Vijay Gopalakrishnan, Emir Halepovic, David J Poole, Lien K Tran, and Christopher T Volinsky. Connected cars in cellular network: a measurement study. In Proceedings of the 2017 Internet Measurement Conference, pages 235–241, 2017.
  • [6] Carlos E. Andrade, Simon D. Byers, Vijay Gopalakrishnan, Emir Halepovic, David J. Poole, Lien K. Tran, and Christopher T. Volinsky. Scheduling software updates for connected cars with limited availability. Applied Soft Computing, 82:105575, September 2019.
  • [7] NXP B.V. S32g2 processors for vehicle networking. https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32g-vehicle-network-processors/s32g2-processors-for-vehicle-networking:S32G2. Last accessed: 04/12/2022.
  • [8] Robert N. Charette. How software is eating the car. IEEE Spectrum, 2021.
  • [9] Deloitte. Software-defined vehicles – a forthcoming industrial evolution. 2021. Accessed on: June 2022.
  • [10] Ali Dorri, Marco Steger, Salil S. Kanhere, and Raja Jurdak. BlockChain: A Distributed Solution to Automotive Security and Privacy. IEEE Communications Magazine, 55(12):119–125, December 2017. Conference Name: IEEE Communications Magazine.
  • [11] Emulab.net. Emulab testbed.
  • [12] Hendrik C Ferreira, Lutz Lampe, John Newbury, and Theo G Swart. Power line communications: theory and applications for narrowband and broadband communications over power lines. John Wiley & Sons, 2011.
  • [13] Kaneez Fizza, Nitin Auluck, Akramul Azim, Md Al Maruf, and Anil Singh. Faster ota updates in smart vehicles using fog computing. In Proceedings of the 12th IEEE/ACM International Conference on Utility and Cloud Computing Companion, pages 59–64, 2019.
  • [14] Ford. What are the flash drive requirements when performing a sync update?
  • [15] Continental Group. Control units. https://www.continental-automotive.com/en-gl/Passenger-Cars/Architecture-and-Networking/Control-Units/Gateways. Last accessed: 04/12/2022.
  • [16] Subir Halder, Amrita Ghosal, and Mauro Conti. Secure over-the-air software updates in connected vehicles: A survey. Computer Networks, 178:107343, 2020.
  • [17] Irina Hossain and Syed Masud Mahmud. Analysis of a secure software upload technique in advanced vehicles using wireless links. In 2007 IEEE Intelligent Transportation Systems Conference, pages 1010–1015, 2007.
  • [18] APTIV. MOBILITY INSIDER. What is a software-defined vehicle? 2020. Accessed on: June 2022.
  • [19] Trishank Karthik, Akan Brown, Sebastien Awwad, Damon McCoy, Russ Bielawski, Cameron Mott, Sam Lauzon, André Weimerskirch, and Justin Cappos. Uptane: Securing software updates for automobiles. In International Conference on Embedded Security in Car, pages 1–11, 2016.
  • [20] Roger Lanctot. Hyundai’s million-car software update. October 2022.
  • [21] Upstream Security Ltd. Upstream Security’s 2022 Global Automotive Cybersecurity Report. Technical report, 2022.
  • [22] Shahid Mahmood, Hoang Nga Nguyen, and Siraj Ahmed Shaikh. Systematic threat assessment and security testing of automotive over-the-air (OTA) updates. Vehicular Communications, 35:100468, June 2022.
  • [23] S.M. Mahmud, S. Shanker, and I. Hossain. Secure software upload in an intelligent vehicle via wireless communication links. In IEEE Proceedings. Intelligent Vehicles Symposium, 2005., pages 588–593, June 2005. ISSN: 1931-0587.
  • [24] Asad Waqar Malik, Anis U Rahman, Arsalan Ahmad, and Max MD Santos. Over-the-air software-defined vehicle updates using federated fog environment. IEEE Transactions on Network and Service Management, 2022.
  • [25] Oded Mann. Over-the-air software support for ev charging stations. 2022. Accessed on: June 15th, 2022.
  • [26] Karim Mansour, Wael Farag, and Mohamed ElHelw. Airodiag: A sophisticated tool that diagnoses and updates vehicles software over air. In 2012 IEEE International Electric Vehicle Conference, pages 1–7, 2012.
  • [27] Kirsten Matheus and Thomas Königseder. Automotive ethernet. Cambridge University Press, 2021.
  • [28] Kirsten Matheus and Thomas Königseder. Automotive Physical Layer Technologies, page 134–226. Cambridge University Press, 3 edition, 2021.
  • [29] Sen Nie, Ling Liu, and Yuefeng Du. Free-fall: Hacking tesla from wireless to can bus. page 16, 2017.
  • [30] Nissan. Nissanconnect navigation system software update. September 2021.
  • [31] Ondrej Burkacky, Johannes Deichmann, and Jan Paul Stein. Automotive software and electronics 2030. 2019.
  • [32] Niovi Pavlidou, AJ Han Vinck, Javad Yazdani, and Bahram Honary. Power line communications: state of the art and future trends. IEEE Communications magazine, 2003.
  • [33] Ryan Fletcher, Abhijit Mahindroo, Nick Santhanam, and Andreas Tschiesner. The case for an end-to-end automotive software platform. 2020.
  • [34] Justin Samuel, Nick Mathewson, Justin Cappos, and Roger Dingledine. Survivable key compromise in software update systems. In Proceedings of the 17th ACM conference on Computer and communications security, CCS ’10, pages 61–72, New York, NY, USA, October 2010. Association for Computing Machinery.
  • [35] Marco Steger, Carlo Boano, Michael Karner, Joachim Hillebrand, Werner Rom, and Kay Römer. SecUp: Secure and Efficient Wireless Software Updates for Vehicles. In 2016 Euromicro Conference on Digital System Design (DSD), pages 628–636, August 2016.
  • [36] Marco Steger, Ali Dorri, Salil S. Kanhere, Kay Römer, Raja Jurdak, and Michael Karner. Secure Wireless Automotive Software Updates Using Blockchains: A Proof of Concept. In Carolin Zachäus, Beate Müller, and Gereon Meyer, editors, Advanced Microsystems for Automotive Applications 2017, Lecture Notes in Mobility, pages 137–149, Cham, 2018. Springer International Publishing.
  • [37] Toyota Tech. Tls software user guide.
  • [38] Uptane. Uptane standard 2.0. https://uptane.github.io/papers/uptane-standard.2.0.0.html. Online, last accessed: 14/06/2022.
  • [39] Volvo. Software updates.
  • [40] Jiadai Wang, Jiajia Liu, and Nei Kato. Networking and communications in autonomous driving: A survey. IEEE Communications Surveys & Tutorials, 21(2):1243–1274, 2018.
  • [41] Peter Weidenbach and Johannes vom Dorp. Home router security report 2020. June 2021. Accessed on: Feb 2023.
  • [42] Quan Yuan, Haibo Zhou, Jinglin Li, Zhihan Liu, Fangchun Yang, and Xuemin Sherman Shen. Toward Efficient Content Delivery for Automated Driving Services: An Edge Computing Solution. IEEE Network, 32(1):80–86, January 2018. Conference Name: IEEE Network.
  • [43] Yunshui Zhou, Xinkai Wu, and Pengcheng Wang. Secure software updates for intelligent connected vehicles. Electrical Engineering and Computer Science (EECS), 3:109–112, 2019.

Proofs

-A Proof methodology

We provide proof sketches for ScalOTA by ensuring the Safety and Liveness properties. Safety means nothing bad happens, and mainly guarantees the Integrity (Int) and Authenticity (Auth) of the updates in our context. In detail, updates’ integrity can be ensured throughout the entire workflow by the following invariants:

S1 (Auth): an update is only downloaded from trusted producers
S2 (Int): an update is never modified
S3 (Int): an update dependency list is never modified
S4 (Int): an update dependency is never modified
S5 (Int): a bundle of updates is never modified
S6 (Int): a primary or secondary ECU never deliver an old update

On the other hand, Liveness means something good eventually happens, and mainly guarantees the Availability of a new updates, i.e., a produced update by the producer eventually gets delivered at the corresponding ECU. Availability can be specified throughout reverse walking the entire workflow, ensuring the following invariants:

L1: a secondary ECU eventually receives new updates via the primary
L2: a primary ECU eventually receives new updates through the UDB
L3: the UDB eventually receives new updates through the OEM’s SUD
L4: the SUD eventually receives new updates through the producer
L5: L1-L4 hold true for any update dependency
L6: L1-L4 hold true for any update in a bundle

We first recall our trust model. The software producer and OEM are considered trusted entities. The Image Repository IR and UDB are not trusted for safety, but it is reasonable to assume they are trusted for availability due to Service Level Agreement (SLA). Otherwise, the users or OEMs would stop the service. Finally, the primary ECU may be trusted or not, we consider both cases. Finally, any other entity or network is untrusted, although a network eventually delivers its packets (after a certain number of retransmissions).

Finally, we do not explicitly refer to the signatures of OEM’s roles in the following, as roles are all owned by the same trusted entity OEM—and often used for separation of tasks in the OEM and facilitate revocations.

-B Safety: integrity and authenticity

We next prove the safety properties. S1 is ensured as follows: any software producer places a signed version of the software update δ\delta in an Image Repository (IR) and includes it location ll in the manifest μδ\mu_{\delta} (Step 1). Since μδ\mu_{\delta} is signed by the producer (Step 1) and then verified by the OEM (Step 2), then UDB and primary ECU (Step 4), and the secondary ECU Step 8 (if the primary is untrusted), this ensures the location ll is not tampered with. In addition, the OEM and UDB download the update images through IR (Steps 2 and 5, resp.), using ll. Then the primary ECU only downloads the image through the UDB or optionally IR (Step 9). Finally, the secondary ECU only receives updates through the primary (Step 10). Therefore, IR is the only source of updates placed by the producer through the link ll. S2 is ensured as follows: when the producer adds the update image δ\delta to IR, it adds its signed hash hδh_{\delta} to θ\theta in manifest μδ\mu_{\delta} (Step 1). The image integrity is then validated against the image at the OEM, UDB, primary, and secondary ECU, if the primary is untrusted, in Steps 2, 5, 9, and 10, respectively. S3 is ensured as follows: the OEM is the only entity that resolves dependencies of an update δ\delta set in dd as part of θ\theta and signed (Step 3). Afterwards, the UDB, primary, or secondary ECU, if the primary is untrused, always validate the integrity of the messages received, ensuring that this dependency list is intact (Steps 5, 9, and 10). S4 is ensured as follows: since the OEM only adds the dependencies as updates of the form typical update δ\delta, the dependency itself in never unmodified, follows from S2. S5 is ensured in the same logic as S3, applied to the bundle Δ\Delta instead of δ\delta.

Finally, S6 is ensured as follows: to download updates, the primary has to get the manifests for some bundles from the OEM. This happens after the primary sends the γ\gamma status message that includes the last version vv it has about every ECU (Step 6). The OEM then makes sure that the last version vlv_{l} it has from that vehicle is greater than vv (Step 7). The OEM then increments the v=v+1v=v+1 and replies back to the primary if a new update exist (Step 7). There are two cases where the primary may fool the OEM. The first is sending an old version v<vlv^{\prime}<v_{l}, the OEM will bundle and send all the update manifests up to vlv_{l} (Step 7). The primary can thus download all the corresponding updates in the bundle, including some old ones it already has, which leaves no safety impact. The primary can also fool the OEM by sending a new version v′′>vlv^{\prime\prime}>v_{l}, in which case it is discarded by the OEM since that version must have been originated by OEM already, as per Step 7. Therefore, the primary can only get manifests for new updates form the OEM, for which update images can only be downloaded (Step 9). The secondary ECU receives these update manifest and images through the primary in case it trust it, otherwise, the same validation is followed as in the primary (Steps 8 and 10).

-C Liveness: availability

We now prove the liveness properties. L1 is ensured as follows: any time the primary has new updates, if its trusted by the secondary, it will push the updates to the latter using the Flash Bootloader daemon, as per Step 10. If the the primary is not trusted, the secondary should have sent its signed last version via the Status message γ\gamma and set a timer (Step 8). The OEM replies back with it signed manifest message in the bundle Δ\Delta to the primary, who cannot forge it or drop it or delay it for long, since the secondary will raise an alert if the timer is expired (Steps 8 and 10). If the manifest is valid, the secondary also expects to receive the corresponding update images before a timer, otherwise it raises an alert. Note that the timers in this case is set long enough, e.g., can be days, which is arguably reasonable in software updates if there are no critical vulnerability or safety issues.

L2 is ensured as follows: the primary sends periodic Status messages, e.g., on each ignition, to the OEM and sets a timer (Step 6). This happens because the vehicle is subscribed to the updates by default. If the OEM did not reply with valid bundle manifests in the Status message γ\gamma before the timer’s expiry, the primary raises an alert to the driver. The OEM cannot lie about resolving new updates being the prime trusted entity, and liable, for this (Step 7). However, the primary validates the Status message to ensure that it has not been manipulated by external entities, e.g., a Man in the Middle or delayed by the network. Now, since the primary has the manifests, it can download the corresponding update images when it authenticates successfully to a valid UDB update station. The latter should eventually push the updates to primary, from this very station or others in the near future (Step 9). This is reasonable because we assume the UDB operator must guarantee image availability of updates as per the SLA. Again, the primary also validates these new update images across the manifests it has from the OEM. It is noteworthy to recall that the primary can always download the update images from the IR directly, e.g., using its cellular connection.

L3 is ensured as follows: the UDB eventually accepts subscriptions from new vehicles stopping at an update station (Step 8), otherwise the SLA is violated. The update station requests the subscription via the UDB Update Engine (internally), and then subscribes to the OEM’s SUD, for the same reason. Therefore, the (trusted) OEM will always push new bundled update manifests Δ\Delta to the UDB that validates them in face of external attacks (Step 4) as explained in L2. Now, the UDB can use the link ll in the manifest of each μδ\mu_{\delta} in the received bundle Δ\Delta, to download the images from the IR. Since the IR is trusted on availability, as per the SLA contract, the UDB will eventually get the validated new updates against the manifests (Step 5).

L4 is ensured as follows: the SUD always receives signed manifests μ\mu for new updates (Steps 1 and 2), following issues raised in the Issue Tracker Platform, which is managed by an SLA, out of the scope of ScalOTA. However, the SUD makes sure the received manifests μδ\mu\delta are valid against the images downloaded from IR, via the enclosed download link ll in μδ\mu\delta (Step 2). Again, the IR must make the link available as per the SLA service, however, validation is important against external attacks. Finally, the SUD is trusted to bundle the new updates and pushing them to the subscribers (Step 3 and 4), including UDB, and resolve them against old updates in the Status (Step 7) as discussed before. L5 is ensured as follows: the (trusted) producer defines the new update dependencies in a signed μδ\mu_{\delta} (Steps 1 and 2). The OEM validates this manifest and resolves its dependencies (Step 3), which are added to the (signed) bundle Δ\Delta. Since these dependencies are represented as updates (δ\delta) as well (Steps 1 and 3), proven in S3 and S4, then they follow the same logic in L1-L4. Finally, L6 is ensured in a similar way to L5, since a bundle Δ\Delta is a mere collection of updates δ\delta (proven in S5), and therefore, L1-L4 hold for a bundle.

-D Defending against known OTA attacks

In this section, we map the above security guarantees to the most relevant attacks often discussed in literature [19, 22]. This is only done for the sake of completeness; whereas, a thorough study is a future work.

ScalOTA defends against Tampering (T), Spoofing (S), and Arbitrary Software (Ar) attacks given the manifests’ integrity guarantees according to safety proof S1, that describes the full trust-chain from servers, to EV Stations, to vehicle. Since the manifests are signed by the key elements in the chain (T+S+Ar) and contain the hashes of the updates to be installed (T+Ar), an attacker cannot tamper with the update process without being detected (proofs S2-6). If an attacker can obtain control of one of the servers, she may alter at will the data provided by that server (see Section IV-B for details). However, the OTA client will detect that the information coming from both servers (SUD and IR) does not match (T), thus aborting the update. Drop-request and Slow-retrieval attacks are defended through the ignition-triggered enforced update requests together with availability guarantees L1-L6. Similarly, a Partial bundle installation attack through denial of updates cases an alert to the driver. Freeze (F), Replay (RE), or Rollback (RO) attacks are avoided via ScalOTA due to the liveness properties L2, L5, and L6, where messages will be discarded by the client if these do not present a fresh timestamp (F+RE+RO). Even if the attacker uses messages that have not yet expired, the primary ECU will detect these attacks due to the replayed nonces of the signed manifests (F+RE+RO). On the other hand, in Mix bundles attack, if an attacker takes control of one of the server (director or image), she will be able to change the manifest’s structure and send to the client and update bundle with conflicting or incompatible packages. However, the client will be able to detect the attack since the two servers’ manifest will not match, similar to the integrity guarantees (S3-S5).

Finally, since confidentiality is not our main concern, Eavesdropping attacks are not addressed. Similarly, contrary to [19, 22], we do not provide any guarantees against Endless data attacks that exhaust the storage/memory resources, or against Mix-and-match attacks that assume keys are compromised.