Code Integrity Checking in Secure and Non-Secure Memory Regions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

IoT devices face challenges in implementing complex security methods due to their lightweight and simple configurations, making them vulnerable to external attacks and difficult to maintain secure operations.

Innovation Solution

An electronic device with a memory divided into a non-secure and a secure region, where a processor can selectively operate between these worlds, checks the integrity of code blocks, moves compromised code blocks to the secure region, and loads original code blocks from the secure region to ensure continued operation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complex security methods are applied to IoT devices, then security reliability is improved, but device complexity and resource consumption increase

Engineering Contradiction:
Improvesecurity reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The memory is segmented into a first region for compromised code blocks and a second region for original code blocks. This segmentation allows the system to isolate compromised code while preserving access to original code, enabling security verification without requiring complete system redesign or complex security infrastructure.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-loads original code blocks into the second memory region before compromise occurs. This preliminary action ensures that when compromise is detected, the original code is already available for immediate execution, eliminating the need for complex real-time retrieval or reconstruction processes.

Inventive Principle:
Principle #10Preliminary action

2Difficulty of detecting and measuring

If code integrity checking is performed continuously, then security detection capability is improved, but processing time and energy consumption increase

Engineering Contradiction:
Improvesecurity detection capabilityVSAvoidprocessing time
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of time

Solution Approach 1:

Instead of continuously verifying all code blocks, the system performs integrity checking only when switching between code blocks or when execution flow changes. This partial action approach maintains security detection capability while significantly reducing processing overhead and energy consumption compared to continuous verification.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The processor acts as an intermediary that manages code block execution by verifying integrity only at transition points. This intermediary role allows the system to maintain security without requiring constant verification of all code, thereby reducing processing time and energy usage.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If compromised code blocks are isolated in secure region, then security is improved, but memory access time increases

Engineering Contradiction:
ImprovesecurityVSAvoidmemory access time
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system merges the compromised code region and original code region within the same memory space, allowing the processor to switch between regions without requiring external memory access or complex memory management operations. This merging maintains security isolation while preserving fast memory access characteristics.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10885229B2Electronic device for code integrity checking and control method thereof
Publication Date: 2021.01.05 SAMSUNG ELECTRONICS CO LTD
  • US10885229B2 patent drawing
  • US10885229B2 patent drawing
  • US10885229B2 patent drawing

AI summary

An electronic device and a control method thereof are provided. The electronic device includes a memory configured to include a non-secure region operating in a normal world and a secure region operating in a secure world, and a processor configured to selectively operate in one of the normal world and the secure world, check integrity of a plurality of code blocks loaded on a first area of the non-secure region while operating in the secure world, and when one of the plurality of code blocks is compromised, change a memory region corresponding to a compromised code block to a secure region, and load an original code block of the compromised code block on a second area of the non-secure region.