How do you keep IoT devices with up-to-date software? I learned a bit about the Firmware Updates Over the Air (FUOTA) specification. I wanted know more so I contacted Dave Kjendal, CTO and COO at Senet. Senet provides connectivity platforms and flexible, cost optimized business models to deploy carrier-grade LoRaWAN® networks.
What is the FUOTA standard and why do we need it?
The ability to provide Firmware Updates Over the Air (FUOTA) is critical to several IoT application performance and device lifecycle requirements, including implementing bug fixes, patching security vulnerabilities and supporting new features.
FUOTA support provides future-proofing of connected device deployments, ensuring that devices will continue to operate over long lifetimes. FUOTA can be performed as a unicast or multicast function. However, the greatest benefit is found in efficiently and securely delivering updates over the air to many devices at one time in a multicast fashion.
Are there security issues?
Any IoT FUOTA system requires efficient and highly secure file delivery and LoRaWAN provides such a system. The steps generally involved in the multicast process include those listed below with security as a fundamental part of the process and architecture.
- Identifying the devices that need to be updated
- Selecting a time for the upgrade to be coordinated
- Locating the devices in the network to efficiently deliver the multicast streams
- Generating a binary firmware patch file specific to the device platform to be upgraded
- Signing this binary file with a private key to guarantee integrity and authenticity
- Pushing the binary file to the group of devices to be upgraded
- Each device verifies the signature to authenticate the file and its origin
- Each device installs the firmware update
- Each device reports the status of the upgrade operation (success or failure)
This process also enhances security by providing minimum and maximum valid frame counter values to limit the lifetime of a multicast group.
Who is the LoRa Alliance and how does it relate to the FUOTA standard?
The LoRa Alliance is the fastest growing technology alliance today. A non-profit association of more than 500 member companies, the LoRa Alliance is committed to enabling large scale deployment of Low Power Wide Area Networks (LPWANs) through the development and promotion of the LoRaWAN protocol.
With LoRaWAN, there are two primary application layer packages for FUOTA. These application-layer packages are defined by the FUOTA Working Group within the LoRa Alliance. The specifications are publicly available on the LoRa Alliance website.
Is this new to the market?
FUOTA has been supported by the LoRa Alliance for several years. The LoRa Alliance published its FUOTA Process Summary Technical Recommendation TR002 v1.0.0 in 2019, preceded by the delivery of three specifications announced in 2018, including:
- LoRaWAN Application Layer Clock Synchronization Specification v1.0.0
- LoRaWAN Remote Multicast Setup Specification v1.0.0
- LoRaWAN Fragmented Data Block Transport Specification v1.0.0
As LoRaWAN adoption grows, these capabilities are being supported by major IoT ecosystem players such as Senet, Murata, and others as a fundamental element of their network and embedded product delivery.
Are there proprietary firmware update techniques on the market?
Yes, some proprietary connectivity technologies offer corresponding proprietary firmware update techniques.
Is this a network or application protocol?
FUOTA runs at the application layer with FUOTA services provided by a set of application layer packages.
Why is power consumption such an important consideration?
Most LoRaWAN devices rely on a battery for their operation. Under normal conditions, the power efficiency of LoRaWAN devices enable operation for 15-20 years in the field, providing significant operational and cost benefits. Because updating device firmware can require the bulk downlink transfer of large data files, it must be done with maximum efficiency in order to minimize the impact on battery power consumption and maintain the lifespan of the devices.
The LoRa Alliance FUOTA specifications are essential to enabling the firmware update time, the device's energy consumption, and the firmware update efficiency, providing different trade-offs among the parameters depending on application requirements.
Edited by Maurice Nagle