Abstract |
The Internet of Things (IoT) presents itself as an emerging technology, which is
able to interconnect a soaring number of heterogeneous smart devices around the
world, for supporting complex data-driven applications in a variety of domains.
The ability to wirelessly update these devices is paramount, as it allows the integration of additional functionality into their firmware, the resolution of code errors
and security vulnerabilities, or even their complete re-purpose, without physically
accessing them. Such Over-the-Air Programming (OTAP) solutions require the
compaction of the transmitted data during a network update, in order to reduce
the energy consumption in the network, which is due to the necessary communication operations.
To meet this need, IoT devices can also be updated using a technique, called
incremental programming, that avoids the retransmission of the entire firmware,
when an updated version has been released. The most common form of this technique is through the so-called differencing algorithms, that execute at a firmware
server and aim to detect common segments between two firmware versions, producing an encoded patch that is disseminated to the network. This way, the devices
can utilise parts of the firmware they currently run, in order to reconstruct the
updated version locally.
In this work, we survey techniques, protocols, and schemes that focus on the reduction of the transmissions during a network update, and have found widespread
application in large-scale IoT networks. We also emphasize the essential steps of
the firmware update process, along with the proposed approaches and techniques
that implement them. Besides, we discuss contributions that focus on the security aspects of OTAP, as recent cyberattacks have revealed that unsecured update
strategies can allow adversaries to inject faulty or malicious firmware into a network, manipulating its operation.
Furthermore, we present a differencing algorithm we have developed, called
Dfinder, that can compute small patches, based on delta encoding. The algorithm
has O(nlogn) time and O(n) space complexity, and utilises enhanced suffix arrays
and state-of-the-art construction techniques, that enable the efficient detection of
common segments between two firmware versions. Additionally, we propose an
extension of the algorithm, that halves the storage requirements at the receiver,
so that devices with limited storage can also be updated, incrementally. Finally,
we integrate Dfinder in an OTAP testbed and show that it can reduce the update
time and the corresponding energy consumption of IoT networks up to 96%.
|