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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

8.3 Runtime Protection Mechanism<br />

checks simultaneously while the execution engine is executing an application. Having<br />

multiple processors on a smart card is technically possible [5]. The main question regarding<br />

the choice is not the hardware, but the balance between the per<strong>for</strong>mance and latency.<br />

Per<strong>for</strong>mance, as the name suggests is concerned with the computational speed. Whereas,<br />

latency deals with the number of instructions executed between an injected-error to the<br />

point it is detected. For example, if during the execution of an application `A', at instruction<br />

A4 a malicious user injects an error, which is detected by the plat<strong>for</strong>m security<br />

mechanism at instruction A7 of the application, the latency is three (i.e. 4-7=3). A point<br />

to note is that the lower the latency value the better the protection mechanism, as it will<br />

catch the error quickly. There<strong>for</strong>e, theoretically we can assume that a serial runtime security<br />

manager will have the low per<strong>for</strong>mance but also low latency value, where <strong>for</strong> a parallel<br />

runtime security manager it will have good per<strong>for</strong>mance measure but higher latency value.<br />

We will return to this discussion later in section 8.4 where we provide test (simulated)<br />

implementation results.<br />

It is obvious that implementation of additional components like runtime security manager<br />

will also incur additional economic costs (i.e. increase in the price of a UCTD); however,<br />

in this thesis we are not concerned with the economic cost of UCTDs.<br />

8.3.7 Runtime <strong>Security</strong> Counter-Measures<br />

The runtime security manager along with the runtime environment would apply the required<br />

security counter-measures (as part of the runtime protection mechanism) that are<br />

discussed in subsequent sections.<br />

8.3.7.1 Operand Stack Integrity<br />

As discussed in section 8.2.1, an operand stack is part of the Java stacks and they are<br />

associated with individual Java frames (methods). During the execution of an application,<br />

the runtime environment pushes and pops local variables, constant elds, and object references<br />

to the operand stack. The instructions specied in an application can then process<br />

the values at the top of the stack. Barbu et el. [217] showed that a fault injection that<br />

changes the values stored on the operand stack could have adverse eect on an application's<br />

security. Furthermore, they also provided three dierent counter-measures to the<br />

proposed attack and their second-rened method (countermeasure) is closely related to our<br />

protection mechanism.<br />

The proposed countermeasure (second-rened method) of Barbu et al. [217] is based on the<br />

200

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

Saved successfully!

Ooh no, something went wrong!