Secure Program Memory Segmentation for Debugger Isolation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Software systems that process confidential information are vulnerable to unauthorized analysis due to the ease of access by software debuggers operating on multiple OSes, even when securely implemented, as these debuggers can determine regions of the software that call OS-dependent libraries, potentially exposing confidential information.
Innovation Solution
A computer system architecture is implemented with a processor that fetches and decodes instructions for basic, normal, and secure programs, featuring a memory structure with controlled and uncontrollable areas. The secure program operates independently of the OS, accessing an uncontrollable area, while the normal program accesses a controlled area via the basic program, preventing unauthorized access and analysis by software debuggers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software operates on an OS using OS-dependent libraries, then the software can be securely implemented to process confidential information, but the software becomes vulnerable to software debuggers operating on the OS
Solution Approach 1:
The memory space is segmented into controlled area and uncontrollable area. The secure program is loaded into the uncontrollable area which is inaccessible to the OS and its debuggers, while the OS operates in the controlled area. This spatial segmentation prevents debugger analysis of confidential information in the secure program.
Solution Approach 2:
A memory management unit (MMU) acts as an intermediary between the OS and the secure program. The MMU enforces access control by allowing the OS to access only the controlled area while blocking access to the uncontrollable area where the secure program resides, thus protecting against unauthorized debugger access.
2Object-affected harmful factors
If the secure program is made independent of the OS, then resistance to debugger analysis is improved, but access to memory and system resources becomes more restricted
Solution Approach 1:
The MMU serves as an intermediary that enables the independent secure program to access system resources. When the secure program needs to interact with the OS or hardware, the MMU mediates these access requests, allowing controlled communication while maintaining the isolation that provides security.
Solution Approach 2:
The secure program is extracted from the OS environment and placed in a separate uncontrollable memory area. This extraction makes the secure program independent of the OS, preventing debugger analysis, while the MMU provides necessary resource access channels.
3Reliability
If the memory is divided into controlled and uncontrollable areas, then security is improved, but device complexity increases
Solution Approach 1:
The MMU acts as an intermediary layer that manages the complexity of the divided memory architecture. It automatically handles address translation and access control between the controlled and uncontrollable areas, shielding the CPU from the underlying memory complexity while enforcing security policies.
Data Source
AI summary
A mobile telephone includes a CPU that obtains and decodes instructions included in an OS, a nonsecure program, a switch device driver, and a secure program, and operates according to the decoding results. A memory includes a controlled area and an uncontrollable area. The OS has only the controlled area as its access space, and includes an instruction for mediating access of the nonsecure program to the controlled area and an instruction for instructing the switch device driver to make a switch to the secure program. The nonsecure program includes an instruction to access the controlled area via the OS. The switch device driver includes an instruction to make a switch from execution of the OS to execution of the secure program in response to an instruction of the OS. The secure program has only the uncontrollable area as its access space, and includes an instruction to access the uncontrollable area.


