Stack Frame Checksums for Virtual Machine Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The execution of applications compiled in intermediate code on digital apparatuses with virtual execution machines is not adequately secured against faults and attacks, particularly in resource-constrained environments like smart cards, where existing protection methods are resource-intensive and require developer expertise.

Innovation Solution

A method is implemented that calculates global and local checksums for each stack frame during the execution of code, using a combination of global and local checksum functions to dynamically verify the integrity of data, ensuring that data manipulation is secure by comparing calculated checksums with expected values, even if data is modified.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a redundant control code with checksum verification is added to protect against fault attacks, then data integrity is improved, but resource consumption and calculation time increase significantly

Engineering Contradiction:
Improvedata integrityVSAvoidcalculation time
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the checksum verification process into two distinct parts: a global checksum computed once per stack frame containing all local variables and operand stack data, and local checksums computed individually for each accessed variable. This segmentation allows the system to verify data integrity without requiring full recomputation of all checksums on every access, thereby reducing calculation time while maintaining comprehensive integrity protection.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary computation of the global checksum for the entire stack frame before execution begins. This preliminary action establishes a baseline integrity value that can be quickly referenced during execution, eliminating the need to recalculate the entire stack frame checksum during runtime and significantly reducing calculation time for individual variable accesses.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If comprehensive checksum verification is implemented for all data, then data integrity is improved, but resource consumption increases

Engineering Contradiction:
Improvedata integrityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent divides the verification mechanism into a global checksum covering the entire stack frame and localized checksums for individual variables. This segmentation enables selective verification where only relevant portions of data require full checksum validation, reducing overall computational resources and energy consumption compared to comprehensive verification of all data at all times.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different verification intensities to different data locations: the global checksum provides comprehensive coverage for the entire stack frame, while local checksums provide targeted verification for specifically accessed variables. This local quality approach optimizes resource consumption by applying verification only where and when needed, rather than uniformly across all data.

Inventive Principle:
Principle #3Local quality

3Reliability

If protection mechanisms are built into the code structure, then data integrity is improved, but device complexity and implementation difficulty increase

Engineering Contradiction:
Improvedata integrityVSAvoidcode structure complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates a universal protection mechanism where a single global checksum structure serves multiple purposes: it protects all local variables within a stack frame, enables efficient local verification through derived checksums, and works across different data types and operation types. This multi-functionality reduces implementation complexity compared to separate protection mechanisms for each variable or data type.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces checksum values as intermediary elements that mediate between the raw data in the stack frame and the integrity verification process. These intermediary checksum values simplify the verification logic by providing pre-computed validation metrics that can be quickly compared against expected values, reducing the complexity of direct data integrity checking.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2047366B1A method of dynamic protection of data during the execution of a software code in intermediate language in a digital apparatus
Publication Date: 2017.10.25 THALES DIS FRANCE SA
  • EP2047366B1 patent drawing
  • EP2047366B1 patent drawing
  • EP2047366B1 patent drawing

AI summary

The invention concerns a method for protecting the data of an application compiled in intermediate code planned for being executed on a digital apparatus equipped with a virtual machine managing the execution of the code via a execution stack defining at least one stack frame (10) corresponding to a method called during the execution of the code, characterised in that it comprises the application of a secured execution mode of the code, comprising: the determination of at least one global checksum (gck) associated with each stack frame and, each time that a datum (a) of the code is manipulated, the calculation of a local checksum (LCK (a) ) associated with said datum, based on one hand, on the global checksum associated with the stack frame corresponding to the manipulated datum and, on the other hand, on at least one part of the other data constituting said stack frame.