Server Challenge-Response Authentication for Hybrid Mobile Apps
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Hybrid mode mobile applications expose back-end servers to unauthorized access due to the ability of attackers to inspect and modify JavaScript code, lacking effective mechanisms to validate application authenticity without native code implementation.
Innovation Solution
A method where the server sends a challenge string to the client, which executes and converts it into a command, allowing the server to validate the authenticity of the application by executing the resulting function without requiring native code, thereby determining whether to permit or deny access to server functions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If JavaScript code is used in hybrid mode mobile applications, then cross-platform development is simplified, but back-end servers are exposed to unauthorized access due to code inspection and modification by attackers
Solution Approach 1:
The system performs preliminary authentication by sending a challenge string to the client application before granting server access. The client must execute this challenge and return a valid response, proving authenticity in advance. This preliminary action prevents unauthorized access before it can occur.
Solution Approach 2:
The patent introduces an intermediary authentication mechanism between the client application and the server. Instead of direct access, the server uses an authentication framework that mediates communication, validating the client's authenticity through challenge-response protocols before allowing any server function calls.
2Reliability
If native code implementation is used to check application authenticity, then server security is improved, but device compatibility and ease of operation are reduced
Solution Approach 1:
The authentication framework is designed to be universal and framework-agnostic, working with any mobile application framework (Native, Hybrid, WebView, etc.) without requiring framework-specific native code. The same authentication mechanism can be deployed across different platforms and framework types, providing multi-functionality and broad compatibility.
Solution Approach 2:
The patent replaces the mechanical approach of using native code implementations with a software-based authentication framework that operates through standardized string communication. Instead of relying on platform-specific native libraries, the system uses universal JavaScript-compatible challenge-response protocols that can be executed across all mobile platforms without native code dependencies.
3Adaptability or versatility
If JavaScript code is deployed with the application, then deployment flexibility is improved, but code security is worsened due to attacker ability to inspect and write unauthorized applications
Solution Approach 1:
The patent extracts the authentication logic from the deployed JavaScript code and moves it to the server side. The challenge string is generated and validated on the server, while the client only needs to execute the challenge and return the response. This extraction removes the sensitive authentication logic from the client-side code that attackers can inspect.
Solution Approach 2:
The patent converts the harmful ability of JavaScript interpretability into a benefit. While JavaScript's interpretability allows attackers to inspect code, the same interpretability enables the client to dynamically execute server-provided challenge strings and generate responses. The system turns the potential vulnerability of code inspection into a feature where the client can flexibly execute any challenge without needing pre-hardcoded authentication logic.
Data Source
AI summary
An approach is provided for securing communication between a server computer and a client computer. A first string is sent to the client in response to a request to permit an application being executed by the client computer to access a first function. A second string that includes a parameter of a second function is received. The second string is a result of a conversion of the first string to a command and an execution of the command by the client. A result of an execution of the second function is matched with code information obtained from files of the application. Based on the match to the result of the execution of the second function and without requiring an implementation of native code which checks the authenticity of the application, the server validates the authenticity of the application and permits the application to access the first function.


