Annotation-Based Pointer and Constant Binding for Control Flow Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvecontrol flow integrity verificationVSAvoidbinding and signing mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvecontrol flow integrityVSAvoidsigning operation time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improverestore operation accuracyVSAvoidrestore operation success rate
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11360752B2Electronic device performing restoration on basis of comparison of constant value and control method thereof
Publication Date: 2022.06.14 SAMSUNG ELECTRONICS CO LTD
  • US11360752B2 patent drawing
  • US11360752B2 patent drawing
  • US11360752B2 patent drawing

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.