Secure Firmware Reprogramming via Build-Time License Hard-Coding

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvelicense enforcement capabilityVSAvoidprogram code complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improvelicense control flexibilityVSAvoidprocessor power consumption
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

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

Engineering Contradiction:
Improvelicense verification accuracyVSAvoidmemory space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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.

Inventive Principle:
Principle #10Preliminary action

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

Methodology Applied
Scientific EffectCryptographic signature verification:

Data Source

PatentUS10365908B2Secure reprogramming of smart devices to alter device functionality based on license rights
Publication Date: 2019.07.30 FLEXERA SOFTWARE LLC
  • US10365908B2 patent drawing
  • US10365908B2 patent drawing
  • US10365908B2 patent drawing

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.