{"id":13025,"date":"2023-03-06T11:00:49","date_gmt":"2023-03-06T09:00:49","guid":{"rendered":"https:\/\/atostek.com\/?p=13025"},"modified":"2023-03-09T13:05:59","modified_gmt":"2023-03-09T11:05:59","slug":"secure-remote-updating-of-iot-devices-without-compromising-on-their-operation","status":"publish","type":"post","link":"https:\/\/atostek.com\/en\/secure-remote-updating-of-iot-devices-without-compromising-on-their-operation\/","title":{"rendered":"Secure remote updating of IoT devices without compromising on their operation"},"content":{"rendered":"
A remote updating system can be used to not only update but also manage terminal devices in a flexible, scalable and secure way. What should be taken into account in the update process?<\/strong><\/p>\n
In a conventional IoT system, most functions can be available in a cloud service, making the installation of updates very simple. However, with more complex IoT systems and higher number of terminal devices, update management and the update process itself becomes more complicated.<\/p>\n
In an edge computing system, more and more computing power and other functions have been transferred for the IoT terminal devices to perform. This may be a system that utilizes machine learning directly on the terminal device. A system like this is more complex and decentralized than a similar system built on a centralized service.<\/p>\n
What if the update fails?<\/h2>\n
The greatest challenges with remotely updated IoT systems concern disruptions caused by failed installations. This could be triggered by a power cut during the update, for example. However, even if the update has been successfully performed, it does not guarantee that the software will work without any faults. In the worst-case scenario, the device may be stuck in a state from which it cannot recover to be fully functional without assistance.<\/p>\n
Other challenges with remote updates include limited access to the content of updates. In edge computing type of systems, such content may be a machine learning model used on the terminal device that is not to be shared publicly. The device to be updated must be able to ensure that the update has been sent from a reliable source, and the update system must also work together with disk encryption, if applied.<\/p>\n
The update implementation depends on how extensively the software on the device must be modified. Updating a single piece of software is more simple than an entire operating system. If the update tool does not touch the device\u2019s operating system or the piece of software that retrieves updates, a failed update will not compromise their operation. In case of a failed update, the update package can be either retrieved again, or you can wait for the next update that includes a correction package.<\/p>\n
Updating an entire operating system may compromise the operation of the entire device. For example, a failed update of a Linux kernel or a client used for the installation may cause the device to be become so seriously jammed that it cannot recover without assistance.<\/p>\n
Secure operating system updates<\/h2>\n
The most common solution for a secure operating system update on an IoT device is to have two parallel OS installations on different partitions. The bootloader keeps a record of an active installation and starts up the operating system from the partition containing it. When the operating system is updated, the new system is installed on the partition that is currently not used.<\/p>\n