Dynamic Device Identifier Binding for Software Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software applications with modularized components are vulnerable to security threats where a software layer can be extracted from a legitimate device and used on an unauthorized device, compromising sensitive information.

Innovation Solution

A method is implemented to securely bind a software application to a communication device by generating a dynamic device identifier during initialization, which is verified during runtime to ensure execution only on the original device, preventing unauthorized use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If software applications are modularized with separate software layers, then ease of manufacture and adaptability are improved, but security vulnerability increases as layers can be extracted and used on unauthorized devices

Engineering Contradiction:
Improvesoftware layer extractionVSAvoidsecurity vulnerability
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent implements dynamic device identifiers that change based on the runtime environment. The binding information is not static but dynamically generated and verified, making extracted software layers ineffective on unauthorized devices since they cannot replicate the dynamic binding verification process.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces a server as an intermediary that generates and manages binding information. This intermediary layer prevents direct extraction and reuse of software layers by requiring server-mediated authentication, where the server verifies device identifiers and provides binding information that ties the software to specific authorized devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If device binding verification is implemented, then security is improved, but device complexity and processing overhead increase

Engineering Contradiction:
ImprovesecurityVSAvoidverification process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs binding verification at initialization time before the software application becomes operational. By completing the authentication and binding check in advance, the system avoids repeated verification overhead during runtime while ensuring security, thus reducing overall processing complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the complex verification logic to a separate server environment. The mobile device only needs to communicate binding information and device identifiers to the server, which handles the computationally intensive verification processes. This extraction reduces the complexity burden on the resource-constrained mobile device.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10785287B2Secure binding of software application to a communication device
Publication Date: 2020.09.22 VISA INTERNATIONAL SERVICE ASSOCIATION
  • US10785287B2 patent drawing
  • US10785287B2 patent drawing
  • US10785287B2 patent drawing

AI summary

Techniques for securely binding a software application to a communication device may include sending a set of device identifiers associated with the computing device to a server, receiving a server-generated dynamic device identifier that is generated based on the set of device identifiers; and storing the server-generated dynamic device identifier during initialization of the application. During runtime execution of the application, the application may receive a request to execute an application specific task. In response to receiving the request, the application may generate a runtime dynamic device identifier, determine whether the runtime dynamic device identifier matches the server-generated dynamic device identifier, execute the application specific task when the runtime dynamic device identifier matches the server-generated dynamic device identifier; and prevent the application specific task from being executed when the runtime dynamic device identifier does not match the server-generated dynamic device identifier.