Remote Programming Using Device-Bound Code Against Cloning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing programmable devices in untrusted environments are vulnerable to hacking, cloning, and malicious attacks, which compromise the integrity and confidentiality of sensitive information and services, and hinder secure software upgrades.
Innovation Solution
A method involving a first program code that retrieves distinctive data unique to a programmable device, generating a second program code tailored to that device, ensuring the sensitive result is only provided when executed on the specific device, and transmitting this code securely over untrusted networks.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a TRNG is used to generate a unique identifier for the programmable device, then the device can be uniquely identified, but the identifier can be cloned once known, compromising security
Solution Approach 1:
The program code is segmented into multiple parts: a first program code that remains on the provider system and a second program code that is transmitted to the programmable device. The second program code is generated based on distinctive device data, creating a segmented security architecture where no single code contains the complete functionality, preventing cloning even if one segment is compromised.
Solution Approach 2:
The system performs preliminary actions by generating the second program code based on distinctive device data before transmission. The first program code is designed to retrieve this distinctive data and generate the tailored second program code in advance, ensuring that the code is device-specific before it leaves the provider system, thereby preventing subsequent cloning attempts.
2Productivity
If software is transmitted remotely for upgrading programmable devices, then device functionality can be improved, but the software is vulnerable to malicious attacks including reverse engineering and modification
Solution Approach 1:
The system applies local quality by making the second program code specific to each individual device based on its distinctive data. The code is tailored locally to each device's unique characteristics, ensuring that even if one device's code is compromised, other devices remain secure with their own customized code versions.
Solution Approach 2:
The system changes parameters by transforming the first program code into a second program code using distinctive device data as a transformation parameter. This parameter change ensures that the transmitted code is uniquely adapted to each device, making reverse engineering and modification attempts ineffective across different devices.
3Ease of operation
If the second program code is transmitted to the programmable device over untrusted networks, then remote programming is enabled, but the code may be intercepted or diverted by hackers
Solution Approach 1:
The system performs preliminary action by generating the device-specific second program code before transmission occurs. The first program code retrieves distinctive device data and generates the tailored second program code in advance, ensuring that the transmitted code is already customized and bound to the specific device, preventing hackers from using intercepted code on other devices.
Solution Approach 2:
The distinctive device data acts as an intermediary that binds the first program code to the second program code. This intermediary element ensures that even if the communication channel is compromised, the intercepted second program code cannot be executed on a different device because it is cryptographically bound to the original device's distinctive characteristics.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method for remotely programming a programmable device (35) designed to provide an expected sensitive result (45), the method comprising : - transmitting a first program code (41) to the programmable device (35), said first program code (41) being configured to get at least one distinctive data (35d) unique and physically inherent to the programmable device (35), - retrieving said distinctive data (35e) to generate a second program code (42) configured to provide the expected sensitive result (45) in case of the second program code (42) is executed on the programmable device (35) having produced the distinctive data (35d), and10 - transmitting said second program code (42) to the programmable device (35), so as to load the second program code (42) into the programmable device (35).