Application Code Verification via Partial Memory Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

There is a need to verify whether an application installed on a device has been hacked, as existing methods lack effective means to determine if the application is forged or falsified, especially when executed by a user.

Innovation Solution

A method and device that store application codes, load a part of these codes into memory, and verify the application by comparing the loaded codes with the original codes stored on a disk, using hash generation and verification data transmitted to a security server for attestation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the device directly verifies the entire application, then verification reliability is improved, but verification time and computational resources increase

Engineering Contradiction:
Improveverification reliabilityVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application is divided into multiple code sections, and verification is performed on selected portions rather than the entire application. The verification unit determines which code sections to verify based on risk levels, application types, and security policies, thereby reducing verification time while maintaining reliability for critical components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different verification depths are applied to different code sections based on their security sensitivity. Critical code sections undergo rigorous verification, while less critical sections receive lighter verification, optimizing the balance between reliability and time consumption.

Inventive Principle:
Principle #3Local quality

2Reliability

If the device verifies the application through a security server, then verification reliability is improved, but communication overhead and verification complexity increase

Engineering Contradiction:
Improveverification reliabilityVSAvoidverification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A verification unit is introduced as an intermediary component within the device that prepares verification data locally and communicates only essential information to the security server. This reduces communication overhead and simplifies the overall verification process while maintaining reliability through server-based validation.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The verification unit performs preliminary processing of application codes before submitting them to the security server, including generating hash values and identifying critical code sections. This preliminary action reduces the amount of data that needs to be transmitted and processed by the server, thereby reducing communication overhead and complexity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all application codes are loaded into memory for verification, then verification completeness is improved, but memory usage increases

Engineering Contradiction:
Improveverification completenessVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Only the necessary portions of application codes are extracted and loaded into memory for verification, rather than loading the entire application. The verification unit identifies and extracts critical code sections based on security policies and risk assessments, reducing memory usage while maintaining verification completeness for essential components.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of loading all application codes into memory, the system loads only the partial set of codes that are necessary for verification based on the determined verification scope. This partial action approach optimizes memory usage while ensuring that critical verification objectives are met.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11281778B2Device and method for verifying application
Publication Date: 2022.03.22 SAMSUNG ELECTRONICS CO LTD
  • US11281778B2 patent drawing
  • US11281778B2 patent drawing
  • US11281778B2 patent drawing

AI summary

A method of verifying an application, according to an embodiment, includes: storing application codes; loading a part of the application codes into a memory; and verifying the application by using the codes loaded into the memory.