Over-the-air Application Library Provisioning via Segmented Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for updating mobile applications are time-consuming and vulnerable to hacking, as they require users to manually check for updates and download entire application versions, which can lead to security breaches due to the reactive nature of patching security flaws after a hacker has reverse-engineered the application.
Innovation Solution
Partitioning the mobile application into a public and private portion, where the private portion, containing security-sensitive functions, is frequently updated and encrypted with a unique transport key, while the public portion is updated less frequently or not at all, allowing for over-the-air updates without downloading the entire application, and using a server to manage and encrypt updates based on a private portion identifier.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire mobile application is updated manually, then security patches can be deployed, but the update process is time-consuming and users may not receive updates promptly
Solution Approach 1:
The mobile application is divided into a public portion and a private portion. The private portion containing security-sensitive functions is updated automatically and frequently, while the public portion is updated less frequently. This segmentation allows security patches to be deployed rapidly without requiring users to manually update the entire application.
Solution Approach 2:
The system implements automatic update mechanisms where the mobile application client autonomously checks for updates to the private portion, downloads encrypted update data, and installs updates without user intervention. This eliminates the manual update process and ensures timely security patch deployment.
2Reliability
If the entire application is downloaded for updates, then complete security patches can be applied, but data transmission volume and update time increase significantly
Solution Approach 1:
The update mechanism extracts and updates only the necessary private portion of the application rather than downloading the entire application. The server sends encrypted update data specifically for the private portion, significantly reducing data transmission volume while ensuring complete security patches are applied.
Solution Approach 2:
By segmenting the application into public and private portions, the system updates only the private portion which contains security-sensitive functions. This reduces the amount of data that needs to be transmitted and stored while maintaining complete security patch coverage.
3Reliability
If the application code is made frequent updates to counter hacking, then security is improved, but the complexity of managing multiple versions increases
Solution Approach 1:
The application is segmented into public and private portions with different update frequencies. The private portion is updated frequently to counter reverse engineering, while the public portion remains stable. This segmentation simplifies version management compared to updating the entire application frequently.
Solution Approach 2:
The system uses version identifiers and encryption keys as parameters to manage updates. Each update to the private portion includes a version identifier and is encrypted with a specific key, allowing automated verification and installation without complex manual version management.
4Ease of operation
If manual update checks are required, then users have control over updates, but update deployment speed and security response time decrease
Solution Approach 1:
The mobile application client autonomously performs update checks, downloads encrypted update data, and installs updates without requiring user control or intervention. This self-service mechanism maximizes update deployment speed and security response time while maintaining simplicity for the user.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
Techniques for updating an application installed on a communication device may include determining that an update for a private portion of the application is available at a server, sending a request for the update to the server, receiving an updated version of the private portion from the server, and installing the updated version of the private portion on the portable communication device without updating the public portion.