Embedded System Device Identification via Self-Generated Hash

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing embedded system devices face challenges in secure authentication due to limitations of serial numbers and MAC addresses, which can be easily spoofed, necessitating a more robust method for device identification.

Innovation Solution

Embedded system devices self-generate a unique device identifier based on non-user-configurable parameters, such as hardware and executable code information, which is then verified through a communication link with an authentication server to ensure authenticity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If serial numbers or MAC addresses are used for device identification, then device identification is achieved, but the identification can be easily spoofed and is not secure

Engineering Contradiction:
Improveauthentication securityVSAvoididentification method complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The embedded system device autonomously generates its own device identifier by processing executable code through a hash function. The device uses its own internal resources (processor, memory containing the executable code) to create the identifier without requiring external assignment or configuration, making the identification process self-service and inherently tied to the device's actual software state

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The invention changes the parameter used for identification from static hardware identifiers (serial numbers, MAC addresses) to a dynamic identifier generated from the executable code. By applying a hash function to the executable code, the system transforms the code into a fixed-length identifier that changes if the code changes, providing a reliable indicator of the device's actual software state

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If user-configurable parameters are used for identification, then flexibility is improved, but security is reduced because users can alter identification data

Engineering Contradiction:
Improveconfiguration flexibilityVSAvoididentifier authenticity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The memory space is segmented into two distinct parts: a first memory space containing the executable code that is protected from user modification, and a second memory space containing user-configurable parameters. This segmentation ensures that the identifier generation process uses only the protected executable code, while users retain flexibility to configure other system parameters without affecting the authenticity of the device identifier

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The hash function acts as an intermediary that processes the executable code to generate the device identifier. This intermediary transformation ensures that even if users have access to the system, they cannot directly manipulate the identifier without altering the underlying executable code, which is protected. The hash function mediates between the protected code and the identifier, providing both security and determinism

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9047450B2Identification of embedded system devices
Publication Date: 2015.06.02 DEVICE AUTHORITY LTD
  • US9047450B2 patent drawing
  • US9047450B2 patent drawing
  • US9047450B2 patent drawing

AI summary

An embedded system device comprises a processor operatively coupled to a first memory space, a second memory space, and a plurality of user controls. The processor is configured to execute only executable code residing within the first memory space, and the executable code includes authentication routine configured to generate a device identifier based at least upon non-user-configurable parameters of the embedded system device. The second memory space includes user configurable options for use by the processor when executing the executable code. The user controls are adapted to configure the user configurable options within the second memory space, wherein the user controls cannot configure the first memory space.