Applet Native Function Verification for Secure Java Card Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Java Card systems face security issues due to applets manipulating data outside the virtual machine, which are not adequately tested in off-card checks, leading to unforeseen data manipulation and security breaches.

Innovation Solution

Implementing a method to detect and verify native functions running directly on the processor outside the Java Card virtual machine by determining and storing information about the arguments and data processed or delivered by these functions, and adding this information to the applet code to enable on-card verification and security processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If applets are allowed to execute functions directly on the processor outside the virtual machine, then execution speed and efficiency are improved, but security risks increase due to lack of verification

Engineering Contradiction:
Improveexecution speedVSAvoidsecurity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by verifying the correctness of native functions during the loading phase (off-card verification) before they are executed on the processor. The verification process checks arguments, data processing logic, and return values in advance, so that when native functions execute directly on the processor for improved performance, their security has already been established through prior verification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary verification mechanism that acts as a bridge between the virtual machine and native function execution. The verification process serves as an intermediary layer that validates native functions before they operate outside the virtual machine environment, ensuring that security checks are performed even when execution occurs directly on the processor.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If comprehensive verification of native functions is implemented, then security is improved, but system complexity increases

Engineering Contradiction:
ImprovesecurityVSAvoidverification system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the verification process into distinct components: argument verification, data processing verification, and return value verification. Each aspect of native function verification is handled separately through specific claims, making the overall complex verification system more manageable and implementable through modular approaches.

Inventive Principle:
Principle #1Segmentation

3Reliability

If off-card verification is performed on all functions, then security is improved, but processing time increases

Engineering Contradiction:
ImprovesecurityVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies local quality by focusing verification efforts specifically on native functions that execute outside the virtual machine, rather than applying comprehensive verification to all functions uniformly. The verification is locally targeted at the specific point where security risks exist (native function boundaries), allowing standard virtual machine functions to execute without additional verification overhead.

Inventive Principle:
Principle #3Local quality

Data Source

PatentEP4367592B1Method for handling the execution of an applet function, and corresponding loading method
Publication Date: 2025.12.03 IDEMIA FRANCE SAS
  • EP4367592B1 patent drawingFigure 1~2
  • EP4367592B1 patent drawingFigure 3~4

AI summary

Method for handling the execution of an applet function by an electronic device, comprising: - receiving (RX_EXEC) a request to execute the function, - checking (VERIF_TYPE) a type associated with the function, - if the type of the function is a given type, determining (DET_INFO) information relating to the arguments that are handled and/or to the data that are delivered by the function, - observing (OBS) the progress of the function and, if the function handles data inconsistently with the information relating to the arguments that are handled and/or to the data that are delivered by the function, performing security handling (T_SEC). The invention also relates to the loading of an applet.