2013
DOI: 10.1007/978-3-642-38530-8_6
|View full text |Cite
|
Sign up to set email alerts
|

A Defensive Virtual Machine Layer to Counteract Fault Attacks on Java Cards

Abstract: Abstract. The objective of Java Cards is to protect security-critical code and data against a hostile environment. Adversaries perform fault attacks on these cards to change the control and data flow of the Java Card Virtual Machine. These attacks confuse the Java type system, jump to forbidden code or remove run-time security checks. This work introduces a novel security layer for a defensive Java Card Virtual Machine to counteract fault attacks. The advantages of this layer from the security and design persp… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
5
0

Year Published

2014
2014
2015
2015

Publication Types

Select...
2
1
1

Relationship

1
3

Authors

Journals

citations
Cited by 4 publications
(5 citation statements)
references
References 20 publications
0
5
0
Order By: Relevance
“…No Applet Preprocessing Required: In [11,12], a defensive JVM that stores the used main data type integralData or reference during run-time for every OS and LV element are proposed. A drawback of this type of storing approach is that it requires additional memory for type storing and additional computational power for the type checks.…”
Section: Related Workmentioning
confidence: 99%
“…No Applet Preprocessing Required: In [11,12], a defensive JVM that stores the used main data type integralData or reference during run-time for every OS and LV element are proposed. A drawback of this type of storing approach is that it requires additional memory for type storing and additional computational power for the type checks.…”
Section: Related Workmentioning
confidence: 99%
“…However, run-time rather than static approaches have also been proposed to achieve similar advantages in the context of bytecode execution on Java smart cards. Lackner et al proposed to adapt the virtual machine (VM) that interprets the bytecode to inject the necessary redundancy in the executed code [27,28]. By duplicating code at run time, they achieve the same goal of providing protection without interfering with the software development cycle.…”
Section: Related Workmentioning
confidence: 99%
“…Calls to setState(), added to the source code, instruct the virtual machine to check the integrity of the control flow by comparing the current state with the allowed ones according to the automaton. The virtual machine can also check the validity of the bytecode address to avoid the execution of any bytecode stored outside the applet currently being executed [20]. However, a small jump inside the allowed bytecode, for example inside a function, would not be detected and might have serious consequences for security.…”
Section: Code Securing and Control Flow Securingmentioning
confidence: 99%
“…Fault detection is generally based on spatial, temporal or information redundancy at hardware or software level. In java card enabled smart cards, software components of the virtual machine can perform security checks [18,20,10].…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation