06.11.2014 Views

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

A User Centric Security Model for Tamper-Resistant Devices

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.2 Smart Card Runtime Environment<br />

compared to the Multos AAM. The rationale is that the JCRE has an open specication,<br />

and new attacks mostly target Java Cards. Furthermore, we consider that Java Card is<br />

more closely related to the UCTD proposal.<br />

Structure of the Chapter: We begin the discussion with a brief introduction of the<br />

SCRT and the combined attacks (i.e. software and fault attacks). In section 8.3, we provide<br />

the motivation behind the runtime protection mechanism, which is a collective term used<br />

to refer to the proposed counter-measures. Subsequently, we discuss attacker's capability,<br />

and detail the runtime protection mechanism. In section 8.4, we analyse the proposed<br />

counter-measures <strong>for</strong> their security, and per<strong>for</strong>mance.<br />

8.2 Smart Card Runtime Environment<br />

In this section, we open the discussion with a brief description of the Java Card Virtual<br />

Machine (JCVM) with emphasis on those components that we will refer to in the rest of the<br />

chapter. Subsequently, we discuss the threat landscape that targets the SCRTs followed<br />

by a brief discussion on related work, and nally, we nish the section with the description<br />

of fault attacks.<br />

8.2.1 Java Card Virtual Machine<br />

The concepts regarding the Java Card application development and runtime environment<br />

are not exhaustively covered in this section. Nevertheless, the rationale <strong>for</strong> a brief introduction<br />

is to make it easy to follow the subsequent discussion regarding the SCRTs.<br />

The JCRE illustrated in gure 3.3 consists of APIs, system classes, Java Card Virtual<br />

Machine (JCVM), and native methods. The architecture of the JCVM is more or less similar<br />

between various version of Java Cards including the latest Java Card 3.0.1 Connected<br />

Edition [16]. The main dierence is the support <strong>for</strong> various system classes and APIs. As<br />

far as the core processes are concerned, JCVM <strong>for</strong> both Java Card 2.X or 3.0.1 Classic<br />

Edition and Java Card 3.0.1 Connected Edition are similar, which is in adherence to the<br />

Java virtual machine specication [200] (i.e. JCVM is a subset of the Java virtual machine<br />

specication [16, 28]).<br />

Be<strong>for</strong>e we delve into the details of the JCVM, we rst look at the development process of<br />

a Java Card application, as illustrated in gure 8.1. An application is coded in a subset<br />

of Java language that is supported by the JCVM, which is represented as a Java le in<br />

gure 8.1. The application is then compiled into a class le, and it is packaged along with<br />

189

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!