Annotation-Based Pointer and Constant Binding for Control Flow Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing electronic devices face challenges in ensuring control flow integrity due to difficulties in verifying the integrity of pointers and constants across different threads or time points, leading to potential restore operation failures.
Innovation Solution
An electronic device and method that bind and sign both pointer and constant objects using an annotation, allowing for concurrent signing and restore operations based on value matching between declared and signed objects, ensuring control flow integrity by comparing both pointer and constant values.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If only pointer signing is performed without constant binding, then the signing process is simpler and faster, but control flow integrity verification becomes unreliable due to potential mismatches between pointers and constants
Solution Approach 1:
The patent merges pointer binding and constant binding into a unified annotation-based mechanism. The `annotation` structure combines both pointer and constant information, allowing them to be bound and signed together. This integration ensures that both components are verified consistently, improving control flow integrity verification reliability while managing complexity through a cohesive design.
Solution Approach 2:
The `annotation` acts as an intermediary structure that mediates between pointer and constant binding. It provides a standardized interface for declaring and verifying the relationship between pointers and constants, enabling reliable verification without requiring complex direct verification mechanisms between the two components.
2Reliability
If concurrent signing of pointer and constant is implemented, then control flow integrity is improved, but the signing operation time increases due to additional verification steps
Solution Approach 1:
The patent applies preliminary action by performing binding operations during the declaration phase rather than during execution. The `annotation` is processed and binding is established when the code is compiled or the object is created, so that when signing occurs later, only the verification step is needed. This separates the time-consuming binding operation from the critical signing operation, reducing signing time while maintaining integrity.
3Reliability
If restore operation requires matching both pointer and constant values, then false positives are prevented, but restore operation failure rate increases when values differ
Solution Approach 1:
The patent implements feedback by comparing the bound pointer and constant values against the signed values during restore operations. This feedback mechanism allows the system to detect mismatches and respond appropriately by preventing restore operations when values differ, thereby avoiding false positives while maintaining high accuracy in restore operations.
Data Source
AI summary
An electronic device includes a memory storing one or more instructions, and at least one processor configured to execute the one or more instructions to identify whether an annotation binding a first type object and a second type object is declared, and bind the first type object and the second type object, and sign both the bound first type object and the bound second type object based on identifying that the annotation is declared.


