Application Spoofing Prevention via Challenge-Response Authentication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for verifying the identity of applications, such as web browsers, are vulnerable to application spoofing, where a malicious application can falsely identify itself as an authorized application, thereby accessing unauthorized functionality or data.

Innovation Solution

A mechanism is provided where a verifier sends a challenge to the application, which computes a challenge answer based on a challenge computation known to the application. The challenge answer is then sent to the verifier for verification, ensuring that the application is of the required type and preventing spoofing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application identification data is sent to the server, then the server can authenticate the application, but malicious applications can spoof this data to pose as authorized applications

Engineering Contradiction:
Improveapplication authentication reliabilityVSAvoidapplication spoofing
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The server performs preliminary verification by sending a challenge request before granting access. The application must compute the challenge answer using its embedded challenge computation code and prove its identity in advance. This preliminary action prevents spoofing by ensuring only legitimate applications with the correct computation code can authenticate.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A challenge computation code acts as an intermediary verification mechanism. Instead of directly trusting application-provided identification data, the server uses the challenge-response protocol with embedded computation code as an intermediary to verify the application's authenticity. This intermediary layer prevents malicious applications from successfully spoofing their identity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the server verifies application identity through challenge-response, then application spoofing is prevented, but the authentication process becomes more complex

Engineering Contradiction:
Improveapplication identity verificationVSAvoidauthentication process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The application performs the challenge computation itself using its embedded challenge computation code, without requiring external verification infrastructure. The application serves its own verification by computing the challenge answer locally and sending it to the server. This self-service approach simplifies the overall system architecture while maintaining strong security.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The server embeds a copy of the challenge computation code within the application during application generation. This copied code allows the application to independently compute challenge answers without requiring the server to perform complex verification computations. The copying mechanism distributes the computational burden and simplifies the server's verification process.

Inventive Principle:
Principle #26Copying

3Measurement precision

If challenge computation code is embedded in the application, then the application can prove its identity, but the application structure becomes more complex

Engineering Contradiction:
Improveapplication type identificationVSAvoidapplication structure
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The challenge computation code serves multiple functions: it acts as a unique identifier for the application type, enables the application to compute challenge answers for authentication, and can be used for verifying application integrity. This multi-functionality reduces the need for separate verification mechanisms and simplifies the overall application structure despite embedding the code.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS20250190536A1Application identification
Publication Date: 2025.06.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250190536A1 patent drawing
  • US20250190536A1 patent drawing
  • US20250190536A1 patent drawing

AI summary

A method for verifying an application structured to execute on a client device. A challenge request is sent to the application. A candidate challenge answer is received from the application in response to the challenge request, which is then provided as input to a verification computation with a challenge input. Based on an output of the verification computation, it is determined that the candidate challenge answer is generated by providing the challenge input to a challenge computation. Based on the determination that the candidate challenge answer is generated by providing the challenge input to the challenge computation, the application is verified.