# IoT Privacy and Security Challenges for Smart Home Environments
## 7 Future Smart Home Security Challenges
### IoT Software and Firmware Updates  
Desktop operating systems are updated regularly and automatically as security vulnerabilities are identified and patched. Mobile devices such as smart phones also receive regular software updates, including mechanisms to verify the authenticity of the changes. Such systems are economically viable because the number of operating system variants and operating system manufacturers are small, and deployed devices are in the millions. No such regular update service is available for the hundreds of different IoT devices. An IoT device is a combination of hardware and software to perform specific, dedicated tasks. Firmware is a type of software that is programmed into the non-volatile memory of a smart device. It is an essential part of any IoT system since firmware is the program that directly interfaces with the hardware, controlling the system's operations and functions, from initializing the device, interfacing with users, processing of the requests and performing tasks. As a consequence, it is vital that smart device firmware is kept up-to-date to resolve security vulnerabilities, improve functionality, add new features and fix other bugs. Unlike the enterprise-scale environment which has its own dedicated IT department or technical team to manage and deploy the software updates, the Smart  
Figure 3: Auto-configuration architecture. Home environment usually lacks technical support. The IoT devices for Smart Homes should have mechanisms to implement safe and secure firmware updates automatically, with little or no user intervention. Such functionality can be managed by the home gateway. To ensure the integrity and authenticity of the updates and to prevent possible firmware tampering such as malware injection, certificate-based digital signatures should be applied for the updates. Prior to updating, each update must be verified against its digital signature and the digital certificate should be checked to ensure it is valid and is issued by vendor or a trusted third party. The methodologies used to download new updates also require careful thought. If the update-checking mechanisms are compromised, a hacker could block the new updates from being installed and conduct an attack on unpatched firmware. Attackers could also disguise a legitimate old version of firmware with security vulnerabilities as the latest version, resulting in the firmware reverting back to a faulty version. Therefore, the device vendor or manufacturer should encrypt and digitally sign the updated release information without providing cyber criminals an opportunity to interfere with the update version maintenance process. Due to the low bandwidth and resource-limited nature of many smart devices, delta updates greatly improve efficiency and cut down on installation task time, as the delta updates only contain the data that have changed. This can significantly diminish the possibility of update failure, especially for the battery-operated devices because of battery power exhaustion during the time-consuming firmware upgrade process. The authors in [36] proposed a new software update mechanism for resource-confined IoT devices called Generic extension for Internet-of-Things ARchitectures (GITAR) that can be applied to the existing IoT operating systems. According to the authors, this architecture is able to use standard file structures, tools and methods to apply the partial code updates (delta updates) for protocols and applications during run-time. This architecture comprises three levels: the static system level, the dynamic component level and the kernel level. The core operating system components and hardware drivers are implemented at the system level. For the purpose of improving software portability, the system level is divided into a hardware abstraction (HAL) and a hardware interface (HIL) layer. The static code at the system level only can be updated by upgrading the whole firmware.