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

8.4.1.1 Operand Stack Integrity<br />

Barbu et al. [217] proposed an attack in which values stored on the operand stacks were<br />

manipulated by fault injections. They also proposed a countermeasure to this attack that<br />

was based on calculating the integrity measurement of the whole of the operand stack,<br />

every time the state of the stack was required to be veried. We rened their approach<br />

and removed the need to per<strong>for</strong>m integrity measurement of the entire operand stack on<br />

each validation. In addition, we made the validation process continuous thus checking<br />

the integrity of the operand stack on each pop and push operation. If a malicious user<br />

changes values on the operand stack, the runtime security manager can not only detect the<br />

modication but can also provide error correction service by providing the correct value<br />

that was stored on the operand stand. This is possible because the integrity stack stores<br />

values pushed on to the operand stack as individual components of the integrity chain (i.e.<br />

V Ins-n =S r ⊕Σ n i=1 V i). Furthermore, our proposal also protects against parallel fault injection<br />

attacks that could target both operand and integrity stack simultaneously. The reasoning<br />

behind this is based on the use of S r (random number) that makes the values stored on<br />

the integrity stack unpredictable over dierent execution sessions of the same application.<br />

Thus making it dicult <strong>for</strong> an adversary to know the values stored on the integrity stack,<br />

even if he has the knowledge of all values on the operand stack.<br />

8.4.1.2 Control Flow Analysis<br />

The control ow analysis per<strong>for</strong>med by the runtime security manager during the execution<br />

of an application eectively prevents control ow attacks. If an attacker has the capability<br />

of multiple fault injections simultaneously, (which is beyond the stated capability of our attacker<br />

in section 8.3.2) then he can in theory aect the runtime security manager execution.<br />

Nevertheless, even with simultaneous injection the attacker may be able to skip a node in<br />

the execution tree but the runtime security manager calculation on the subsequent nodes<br />

will reveal an illegal path of execution. There<strong>for</strong>e, even in the parallel injection model the<br />

runtime security manager will detect the erroneous execution path, unless the attacker will<br />

constantly keep on introducing injections <strong>for</strong> the whole execution of an application.<br />

8.4.1.3 Bytecode Integrity<br />

This countermeasure is proposed to prevent an adversary to change an application while<br />

it is stored on a non-volatile memory (capability four of an adversary discussed in section<br />

8.3.2). To avoid such modications, the runtime security manager generates a hash<br />

of individual methods that are requested by the JCVM. If the hash matches the value<br />

206

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

Saved successfully!

Ooh no, something went wrong!