CHES 2018 | Amsterdam 10.09.2018
Stealthy Opaque Predicates in Hardware -
Obfuscating Constant Expressions at Negligible Overhead
Max Hoffmann, Christof Paar Ruhr University Bochum, Horst-Görtz Institute for IT-Security, Germany
Obfuscation Source: www.constructionknowledge.net Stealthy Opaque - - PowerPoint PPT Presentation
Stealthy Opaque Predicates in Hardware - Obfuscating Constant Expressions at Negligible Overhead Max Hoffmann, Christof Paar Ruhr University Bochum, Horst-Grtz Institute for IT-Security, Germany CHES 2018 | Amsterdam 10.09.2018 Obfuscation
CHES 2018 | Amsterdam 10.09.2018
Stealthy Opaque Predicates in Hardware -
Obfuscating Constant Expressions at Negligible Overhead
Max Hoffmann, Christof Paar Ruhr University Bochum, Horst-Görtz Institute for IT-Security, Germany
2
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Obfuscation
Source: www.constructionknowledge.net
3
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Why Obfuscation?
High-level Description Finished Product “easy” “not that easy”
4
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Why Obfuscation?
High-level Description Finished Product “easy” “not that easy” aes.c aes.vhd
5
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Why Obfuscation?
High-level Description Finished Product “easy” “not that easy” 01010100101 01000100101 01110101010 01101010010 aes.c aes.vhd
6
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Why Obfuscation?
High-level Description Finished Product “easy” “insanely difficult” Obfuscation
7
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Software Obfuscation
8
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Software Obfuscation
9
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Software Obfuscation
10
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– is an expression – looks like having a dynamic value – evaluates to a constant, known value
Software Obfuscation
Example: (x * (x + 1)) % 2 == 0
11
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– is an expression – looks like having a dynamic value – evaluates to a constant, known value
Software Obfuscation
executing a binary. Example: (x * (x + 1)) % 2 == 0
12
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
static analyzer:
Example: Software Opaque Predicates
if ((x * (x + 1)) % 2 == 0): foo() else bar() … check (x*(x+1))%2 foo() bar() =0 ≠0
… foo()
13
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
A Software Obfuscation Technique in Hardware?
14
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
A Software Obfuscation Technique in Hardware?
15
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
A Software Obfuscation Technique in Hardware?
reduces starting points for reverse engineers. makes understanding of any component harder.
16
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Example: Hardware Reversing
if a = "0110" then
end if; if a = b then
end if;
vs.
17
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Use OPs to hide information introduced by constant signals.
Example: Hardware Reversing
if a = "0110" then
end if; if a = b then
end if;
vs.
18
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
19
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Translation to Hardware
[1] Sergeichik and Ivaniuk. "Implementation of opaque predicates for fpga designs hardware obfuscation." (JICMS, 2014).
1 1 1 1 … <feedback logic> OR 1
20
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
demonstrated in [1].
Stealthiness
1 1 1 1 … <feedback logic> OR 1
[1] Wallat, Fyrbiak, Schlögel, and Paar. “A Look at the Dark Side of Hardware Reverse Engineering – A Case Study” (IVSW, 2017)
21
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
demonstrated in [1].
– Impossible (?) to measure – Human factor plays a role – Different in hardware and software
Stealthiness
1 1 1 1 … <feedback logic> OR 1
[1] Wallat, Fyrbiak, Schlögel, and Paar. “A Look at the Dark Side of Hardware Reverse Engineering – A Case Study” (IVSW, 2017)
22
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
23
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs – Idea
24
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– Signals are changing constantly. – A signal’s value is only important while evaluated.
Hardware OPs – Idea
25
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– Signals are changing constantly. – A signal’s value is only important while evaluated. → Use an existing signal which
Hardware OPs – Idea
26
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Example: Hardware OPs
27
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Example: Hardware OPs
28
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Example: Hardware OPs
29
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Example: Hardware OPs
30
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– Constant 11010002 to be obfuscated. – 5-bit FSM passes 3 states during the processing period.
Hardware OPs
31
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs
1 1 1 1 1
32
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs
1 1 1 1 1
33
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs
1 1 1 1 1 1
34
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs
1 1
35
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Hardware OPs
36
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Reversing of control- and data-path required for identification of constants.
Hardware OPs
37
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Reversing of control- and data-path required for identification of constants.
Hardware OPs
38
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
– Make it reset outside of the processing period. – Make it stabilize in a known state after some cycles. – Generate OP value from stable state.
Hardware OPs
39
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
40
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Scenario
41
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Scenario
42
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Results
Platform: XILINX Artix-7 35T FPGA Legend: Unobfuscated: no opaque predicates were used Strategy 1:
Strategy 2: new circuitry for the opaque predicate
43
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
44
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Watermarking
[1] Schmid, Moritz, and Ziener, Daniel, and Teich, Jurgen. "Netlist-level IP protection by watermarking for LUT-based FPGAs." (FPT 2008)
theft.
presence of his watermark.
scheme for FPGAs which implements a watermark into LUT configurations [1].
45
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
FPGA LUT Configuration
46
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Watermarking by Schmid et al.
47
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Watermarking by Schmid et al.
48
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Watermarking by Schmid et al.
49
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Applying OPs
50
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Applying OPs
51
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
52
Stealthy Opaque Predicates in Hardware | CHES 2018 | 10.09.2018
Conclusion
– Existing circuitry. – Additional circuitry.
CHES 2018 | Amsterdam
10.09.2018