Secure Firmware Reprogramming via Build-Time License Hard-Coding
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional software licensing techniques are resource-intensive and impractical for smart devices, such as those in the Internet of Things (IoT), due to memory and processor power limitations, making it challenging to implement cryptography algorithms and embedded licensing decision points.
Innovation Solution
The solution involves hard-coding license rights into the program code at build time, using a bootloader to reprogram devices with a firmware image that only includes features and capabilities permitted by the applicable license rights, and utilizing a unique device identifier for secure code updates via a bootloader that manages and enforces license permissions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional software licensing techniques are used with embedded licensing decision points, then license enforcement capability is improved, but device complexity and resource consumption increase beyond what smart devices can tolerate
Solution Approach 1:
The patent applies preliminary action by pre-computing and embedding licensing decisions directly into the binary code at build time. Instead of implementing runtime decision-making logic, the licensing outcomes are determined beforehand and hard-coded into the executable, eliminating the need for complex runtime licensing checks on resource-constrained devices.
Solution Approach 2:
The patent extracts the licensing decision-making process from the runtime execution environment and relocates it to the build-time compilation environment. By separating the licensing determination (performed on a more powerful system during code generation) from the execution (on the constrained smart device), the patent removes the licensing overhead from the device's runtime resources.
2Adaptability or versatility
If conventional software licensing with runtime decision points is implemented, then license control flexibility is improved, but processor power and memory space requirements increase beyond smart device capabilities
Solution Approach 1:
The patent performs all licensing evaluations and decisions during the code build process rather than during device execution. By pre-determining which code paths should be included or excluded based on license rights, the system eliminates runtime licensing computations that would consume processor power and energy on resource-constrained smart devices.
Solution Approach 2:
The patent creates specialized binary copies of the program code tailored to specific license rights. Instead of running a single versatile program with runtime licensing checks, the system generates multiple optimized binary versions, each containing only the code paths permitted by the corresponding license, thereby eliminating the need for runtime adaptability on the device.
3Reliability
If program code includes embedded licensing decision points, then runtime license verification is improved, but code size and memory space requirements exceed smart device limits
Solution Approach 1:
The patent extracts licensing verification logic from the deployed program code and relocates it to the code generation system. By removing licensing decision points from the smart device's memory, the patent reduces the code footprint to only the essential operational instructions, while licensing verification is performed externally during the build process.
Solution Approach 2:
The patent performs license verification and code generation in advance, before deployment to the smart device. By pre-verifying licenses and embedding only the permitted code paths into the binary, the system ensures license verification accuracy without requiring additional memory space on the resource-constrained device for storing licensing logic.
Applied Scientific Principles
This section explains which scientific principles are used to turn an abstract innovation direction into a practical engineering solution.
Function Achieved in This Case
This approach allows for secure and efficient alteration of device functionality based on license rights and privileges, overcoming resource constraints and ensuring secure, authorized operation of IoT devices by restricting code execution to permitted sections and using cryptographic signatures for verification.
Implementation Method 1
using cryptographic signatures for verification
Data Source
AI summary
In programmable equipment where it is either undesirable or impractical to construct the program code with embedded licensing decision points, the program is constructed by hard-coding the license rights into the program code at program build time. License permissions are obtained from a sales order system and used to produce a code image, or select a pre-existing, pre-validated code image which contains only those features, facilities, or capabilities allowed by the applicable license rights for that particular sales order and on that particular programmable unit. Functionality of the device is updated as appropriate by use of a bootloader on the device for installation of a firmware image. In this way, the invention overcomes the technical limitations inherent in such devices by reprogramming the device to alter device functionality in keeping with rights and privileges added or deleted therefrom with regard to software installed thereon.


