First year review WP2 overview
Trento - September 24th, 2007
1
First year review WP2 overview Trento - September 24th, 2007 1 - - PowerPoint PPT Presentation
First year review WP2 overview Trento - September 24th, 2007 1 Goal To investigate software-only methodologies to implement the remote entrusting principle 2 Partners POLITO (WP leader) Team: Team: Team: - - - Mario
Trento - September 24th, 2007
1
to implement the remote entrusting principle
2
Team:
Mario BALDI
Stefano DI CARLO
Paolo FALCARIN
Antonio DURANTE
Alberto SCIONTI
Davide D’ ’APRILE APRILE
3
Team:
Paolo TONELLA
Mariano CECCATO
Jasvir NAGRA
Milla DALLA PREDA
Amitabh SAXENA
4
Team:
Bart PRENEEL
Brecht WYSEUR
Jan CAPPAERT
Thomas HERLEA
5
Team:
Igor KOTENKO
Vasily DESNITSKY
Victor VORONTSOV
Vitaly BOGDANOV
6
Team:
Pierre GIRARDSté éphane SOCIE phane SOCIE
7
T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5
D2.1 D2.2
T2.6 T2.6
8
T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5 T2.1 T2.1
9
T2.1 T2.1
D2.1:
based TR methods
T2.1 T2.1
10
Untrusted platform (U)
HW HW OS OS P P M M
Trusted platform (T)
TAG seq. TAG seq. TAG seq. TAG seq.
TAG TAG Validation Validation Monitor Monitor factory factory
M
i t
r e p l a c e m e n t M
i t
r e p l a c e m e n t Monitor replacement Monitor replacement
T2.1 T2.1
11
T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5
12
T2.2 T2.2
Secure interlocking and authenticity checking
monitor M
T2.2 T2.2
13
T2.2 Secure interlocking and authenticity checking
Invariants Monitoring (POLITO)
true at a particular program execution point
attacks to the state of a program P by continuously checking dynamically inferred invariants
T2.2 T2.2
14
T2.2 Secure interlocking and authenticity checking
Invariants Monitoring (POLITO)
DAIKON by Michael D. Ernst)
invariants to protect a subset S’ of the state of P
T2.2 T2.2
15
T2.2 Secure interlocking and authenticity checking
Invariants Monitoring (POLITO)
periodically send information about S’ to T
strings elaboration is available
T2.2 T2.2
16
T2.2 Secure interlocking and authenticity checking
Barrier slicing (UNITN)
part of its code from U to T
the presented trust model
performance
T2.2 T2.2
17
T2.2 Secure interlocking and authenticity checking
Barrier slicing (UNITN)
protect is removed U
(executable) slice of P responsible of the variables in S is moved to T
1 time2 = System.currentTimeMillis(); 2 double delta = speed * (time2 – time); 3 x = x + delta * cos(direction); 4 y = y + delta * sin(direction); 5 Server.sendPosition(x,y); 6 if (track.isInBox(x, y)){ 7 gas = maxGas; 8 lastFuel = time2; 9 } 10 else { 11 gas = maxGas - (int) (time2-lastFuel); 12 if (gas < 0) { 13 gas = 0; 14 if (speed > maxSpeed /10) 15 speed = maxSpeed /10; 16 else if (speed < minSpeed/10) 17 speed = minSpeed/10; } } 18 time = time2; 1 time2 = System.currentTimeMillis(); 2 double delta = speed * (time2 – time); 3 x = x + delta * cos(direction); 4 y = y + delta * sin(direction); 5 Server.sendPosition(x,y); 6 if (track.isInBox(x, y)){ 7 gas = maxGas; 8 lastFuel = time2; 9 } 10 else { 11 gas = maxGas - (int) (time2-lastFuel); 12 if (gas < 0) { 13 gas = 0; 14 if (speed > maxSpeed /10) 15 speed = maxSpeed /10; 16 else if (speed < minSpeed/10) 17 speed = minSpeed/10; } } 18 time = time2;
18T2.2 T2.2
T2.2 Secure interlocking and authenticity checking
Barrier slicing (UNITN)
and synchronization statements to T
untrusted platform
managed for each untrusted platform
T2.2 T2.2
19
T2.2 Secure interlocking and authenticity checking
Barrier slicing (UNITN)
simple car race game written in JAVA
published
Paolo Tonella, Barrier Slicing for Remote Software Trusting, 7th IEEE International Working Conference on Source Code Analysis and Manipulation
Verification to Increase Application Performance”, in PDP2008, February 13-15, 2008, Toulose, France
T2.2 T2.2
20
T2.2 Secure interlocking and authenticity checking
White-Box Remote Procedure Call - WBRPC (UNITN, KUL)
trusted platform T to execute an arbitrary program P on an untrusted platform U
HERZBERG
Virtual Machine (OVM)
T2.2 T2.2
21
T2.2 Secure interlocking and authenticity checking
White-Box Remote Procedure Call - WBRPC (UNITN, KUL)
execution under OVM
T2.2 T2.2
22
T2.2 Secure interlocking and authenticity checking
White-Box Remote Procedure Call - WBRPC (UNITN, KUL)
y = P(a) = D(z)
T2.2 T2.2
23
T2.2 Secure interlocking and authenticity checking
White-Box Remote Procedure Call - WBRPC (UNITN, KUL)
we can show that OVM provides confidentiality of programs and integrity of execution of program
T2.2 T2.2
24
T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5
25
T2.3 T2.3
Dynamic replacement for increased tamper resistance
exploiting the “time dimension” to increase
contribute to the deliverable D2.2:
secure software module and to securely interlock applications with secure software modules
T2.3 T2.3
26
Dynamic replacement for increased tamper resistance
bundle monitoring code with application code:
exploit any type of reverse engineering facilities to break the monitoring code
T2.3 T2.3
27
Dynamic replacement for increased tamper resistance
reverse engineering costs too high
T2.3 T2.3
28
T2.3 Dynamic replacement for increased tamper resistance
(POLITO)
both Windows and Linux
T2.3 T2.3
29
T2.3 Dynamic replacement for increased tamper resistance
Aspect Oriented Programming
(POLITO)
T2.3 T2.3
30
T2.3 Dynamic replacement for increased tamper resistance
implement the mobility infrastructure and the binding support
for mobility)
client but a complete working prototype is still under construction
T2.3 T2.3
31
T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5
32
T2.4 T2.4
Increased reverse engineering complexity for software protection
monitor M from tampering
avoid trivial reverse engineering
encryption keys) must be hidden in order to be not easily spotted
T2.4 T2.4
33
T2.4 Increased reverse engineering complexity for software protection
Obfuscation of Java byte code
(GEM)
and a server
based simulator
T2.4 T2.4
34
T2.4 Increased reverse engineering complexity for software protection
Obfuscation of Java byte code
(GEM)
transformation
T2.4 T2.4
35
T2.4 Increased reverse engineering complexity for software protection
Obfuscation of Java byte code
(GEM)
them crash
T2.4 T2.4
36
T2.4 Increased reverse engineering complexity for software protection
Obfuscation of Java byte code
(GEM)
T1 T1
FRAMEWORK FRAMEWORK
Applies transformations Applies transformations
Initial set Initial set
Obfuscated set Obfuscated set
Obfuscation Obfuscation project file project file
T2 T2 ... ... Tn Tn
T2.4 T2.4
37
T2.4 Increased reverse engineering complexity for software protection
which code in an executable is encrypted
application code
code
T2.4 T2.4
38
T2.4 Increased reverse engineering complexity for software protection
crypto guards make sure that:
end executed
the execution
T2.4 T2.4
39
T2.4 Increased reverse engineering complexity for software protection
C CFG flattening with TxL(KUL)
aims at breaking down the structure of a program
unknown (statically)
coverage)
T2.4 T2.4
40
T2.4 Increased reverse engineering complexity for software protection
C CFG flattening with TxL(KUL)
transformations
the program and transformed into a single switch-case statement
T2.4 T2.4
41
T2.4 Increased reverse engineering complexity for software protection
Snippets (KUL)
assembly code after compilation (before linking):
making pattern based cracks fail
T2.4 T2.4
42
T2.4 Increased reverse engineering complexity for software protection
Snippets (KUL)
affect the overall program behavior
remove all snippets completely
T2.4 T2.4
43
T2.4 Increased reverse engineering complexity for software protection
White-Box Cryptography(KUL)
implementations of cryptographic algorithms (e.g., AES)”
secure basic blocks and secure implementations
T2.4 T2.4
44
T2.4 Increased reverse engineering complexity for software protection
White-Box Cryptography(KUL)
Box DES Implementations
Paul Gorissen, and Bart Preneel, "Cryptanalysis of White-Box DES Implementations with Arbitrary External Encodings", in Selected Areas of Cryptography, SAC 2007, August 16-17, Ottawa, Canada
T2.4 T2.4
45
T2.4 Increased reverse engineering complexity for software protection
Implementation (KUL)
T2.4 T2.4
46
T2.1 T2.1 T2.2 T2.2 T2.3 T2.3 T2.4 T2.4 T2.5 T2.5
47
T2.5 T2.5
cryptographic and synchronization concerns of the communication protocol employed between the monitor and the trusted platform
T2.5 T2.5
48
involved in remote entrusting mechanisms
data, quantitative and time intensity assessments of data
security requirements
49
T2.5 T2.5
cryptographic protocols
facilities to fulfill the target protocol security requirements
design of entrusting protocol
50
T2.5 T2.5
techniques (T2.2, T2.3 and T2.4) and investigation of alternative architectures
Factory (T2.3)
for software only remote entrusting (T2.6)
51