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.4 Analysis of the Runtime Protection Mechanism<br />

stored (MethodIntegrity in listing 8.1) in the respective property le, the JCVM will<br />

proceed with execution of the method; otherwise, the runtime security manager will signal<br />

the termination of the application (and possibly mark it malicious and up <strong>for</strong> deletion).<br />

Furthermore, this protection mechanism can also safeguard the dynamic loading of applications/classes/routines<br />

as part of the web server or other applications, which are stored<br />

on o-card storage.<br />

8.4.2 Evaluation Context<br />

For evaluation of proposed counter-measures, we have selected four sample applications.<br />

Two of the applications selected are part of the Java Card development kit distribution:<br />

Wallet and Java Purse. The other two applications are the implementation of our proposed<br />

mechanisms that include the oine attestation algorithm (section 4.5) and STCP SP<br />

protocol (section 6.3).<br />

8.4.3 Latency Analysis<br />

As discussed be<strong>for</strong>e, latency is the number of instructions executed after an adversary<br />

mounts an attack and the system becomes aware of it. There<strong>for</strong>e, in this section we<br />

analyse the latency of proposed counter-measures under the concept of serial and parallel<br />

runtime security managers that are listed in table 8.1 and discussed subsequently.<br />

Table 8.1: Latency measurement of individual countermeasure<br />

counter-measures Serial runtime<br />

security manager<br />

Parallel runtime<br />

security manager<br />

Operand Stack Integrity 0 + i 3 + i<br />

Control Flow Analysis 0 3(C n )<br />

Bytecode Integrity 0 0<br />

In case of the operand stack integrity, the serial runtime security manager nds the occurrence<br />

of an error (e.g. fault injection) with latency 0+i, where `i' is the number of<br />

instructions executed be<strong>for</strong>e the manipulated value reaches the top of the operand stack.<br />

For example, consider an operand stack with values V 1 , V 2 , V 3 , V 4 , and V 5 , where V 5 is<br />

the value on the top. If an adversary changes the value of V 3 by physical perturbation, then<br />

the runtime security manager will not nd out about his change until the value is popped<br />

out of the stack. There<strong>for</strong>e, the value of `i' depends upon the number of instructions that<br />

will execute until the V 3 reaches the top of the operand stack and JCVM pops it out.<br />

Similarly, the latency value in case of the operand stack integrity <strong>for</strong> the parallel runtime<br />

security manager is 3+i, where `3' is the number of instructions required to per<strong>for</strong>m a<br />

207

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

Saved successfully!

Ooh no, something went wrong!