SoC Security Through the Life Cycle
Jerry Backer(1), David Hély(2) and Ramesh Karri(1)
1
Polytechnic School of Engineering, New York University Université Grenoble Alpes, LCIS, Valence
Cycle Jerry Backer (1) , David Hly (2) and Ramesh Karri (1) - - PowerPoint PPT Presentation
SoC Security Through the Life Cycle Jerry Backer (1) , David Hly (2) and Ramesh Karri (1) Polytechnic School of Engineering, New York University Universit Grenoble Alpes, LCIS, Valence 1 Agenda Introduction SoC lifecycle Test
1
Polytechnic School of Engineering, New York University Université Grenoble Alpes, LCIS, Valence
– SoC lifecycle – Test and Debug – Motivations
– Debug and SoC – Debug Threats – A secure Debug mechanism
– Software threats – Test based countermeasure – Debug based countermeasure
2
3
4
5
Main CPU 8051 μCont OTP DMAC AES Mem Cont.
6
7
internal scan cells
wrapped for test, and connected via a test access mechanism (TAM) bus
8
WBY WIR WBR WBR
WSO WSI WSC
wrapped for test, and connected via a test access mechanism (TAM) bus
9
WBY WIR WBR WBR
WSO WSI WSC
wrapped for test, and connected via a test access mechanism (TAM) bus
10
Main CPU WSO WSI WSC OTP WSO WSI WSC 8051 μCont WSO WSI WSC Test Interface TAM Bus WBR WBR WBR
sideband and coherence interfaces
11
Main CPU 8051 μCont OTP DMAC AES Mem Cont.
System bus
12
13
– SoC lifecycle – Test and Debug – Motivations
– Debug and SoC – Debug Threats – A secure Debug mechanism
– Software threats – Test based countermeasure – Debug based countermeasure
14
15
μP μP
DSP
System Fabric
LCD
SF SF SF SF SF
Debug Bus Trace Bus
SF JTAG
WiFi
16
(OSAT) Post-silicon validation
17
Post-silicon validation
developer In-field
18
Post-silicon validation
integrator
In-field retirement
19
Post-silicon validation
integrator
In-field retirement
developer
integrator/debug ger
Security implication: rogue debugger can use DfD to illegally leak SoC assets
20
SoC Assets
21
SoC Assets
Asset Owners
22
SoC Assets
Asset Owners
23
SoC
trace-based debug 010111011001… 100100100110… 0110110110110… 1110110100100… decompress MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 Extract asset MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 compressed traces disassembly firmware
24
SoC
trace-based debug 010111011001… 100100100110… 0110110110110… 1110110100100… decompress MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 Extract asset MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 compressed traces disassembly firmware
and proprietary firmware
25
SoC
trace-based debug 010111011001… 100100100110… 0110110110110… 1110110100100… decompress MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 Extract asset MOV r0, #10 MOV r1, #3 ADD r0, r0, r1 compressed traces disassembly firmware
and proprietary firmware
flow
26
JTAG JTAG
Encrypt(Trace, Key)
0x00000000 – 0x000FFF : restricted 0xFFFFE100 – 0xFFFFE4FF : restricted
27
28
Secure asset tagging 0001 0100 1000
JTAG
debugger ID Debugger authentication 0001
=
0x0000 … DfD funnel Asset filtering debugger ID
29
assets
Asset owner
0001 0xFFF00000 – 0xFFF00003 0001 0x0000FF00 – 0x000102FF 0001 0x00000000 – 0x000FFFFF
Asset address Tag
DfD LUT
30
server
JTAG authentication
31
Ci
Secure Debug Server
UNLOCK
JTAG JTAG IR JTAG authentication
1
Send UNLOCK request Generate(Ci, Ri) Retrieve SoC key K Send Ci
JTAG authentication Debugger Debug server
Send <usr,pswd>, Ci Validate login Get debugger Tag ID Search for (Ci, R’i) Search for SoC key K Send R’I||ID||H(R’i||ID, K) Verify H(R’i||ID,K) if HD(Ri, R’i)≤t , UNLOCK = 1 Initiate debug R’i||ID|| H(R’i||ID,K)
ID
32
data signal
Trace Bus
address data signal 1 signal 2
33
Trace Bus
address data signal 1 signal 2
DfD LUT 0xFFF00000
0x000…
0001 0xFFF00000 – 0xFFF00003 0001 0x0000FF00 – 0x000102FF 0001 0x00000000 – 0x000FFFFF 34
Trace Bus
address data signal 1 signal 2
DfD LUT 0xFFF00000
0x000…
0001 0xFFF00000 – 0xFFF00003 0001 0x0000FF00 – 0x000102FF 0001 0x00000000 – 0x000FFFFF
0001
ID
35
PUF
Ci Ri
PUF
[C1…Cq] [R1…Rq]
IBS-Encode
Si
[1] M.-D. Yu et.al., “Secure and Robust Error Correction for Physical Unclonable Functions”, IEEE Design & Test of Computers, vol. 27, pp 48-65,
NVM
[C1…Cq]
PUF [R’1…R’q] IBS-Encode
Si K’[i]
36
PRNG
IBS PUF SHA- 1HMA C NVM
HD
Ci Ci Ri UNLOCK R’i K R0… ID ID H(R’i||ID,K)
(PRNG)
[C1…Cq]
37
Component Area (μm2) Power (μW) DfD LUT 24,939.5 20,108.6 Authentication Module PRNG 853.7 1,051.8 PUF 22,335 21,110.8 NVM 2,493.4 2,467.6 IBS-Decoder 49.2 38.1 SHA1-HMAC 18,115 18,933.8 Asset Filtering Module 356.7 427.6
[2] S. Segars, “The ARM9 Family-High Performance Microprocessors for Embedded Applications”, IEEE ICCD, Oct. 1998, pp 230-235.
38
39
– SoC lifecycle – Test and Debug – Motivations
– Debug and SoC – Debug Threats – A secure Debug mechanism
– Software threats – Test based countermeasure – Debug based countermeasure
40
USB
read(0xFFFFF000) secret key
0xFFFFF000
secret key secret key
41
USB
BAD BAR*
0xFFFFFF00 SoC Memory
write(0xFFFFFF00, BAD BAR)
*BAR: Base Address Register – Used to configure address mapping of system
42
void vulnerable(char *array) { char buf[8]; strcpy(buf, array); } Program stack local variables
vulnerable return address parameters
vulnerable Software code
43
void vulnerable(char *array) { char buf[8]; strcpy(buf, array); } Software code
Program stack Malicious code injected
0x80044F04 parameters
vulnerable 0xAEEFFE04DC31BA 0x80044F04
44
45
46
47
48
Reuse SoC debug instruments to detect software attacks
49
System Fabric
WiFi DI DI DI DI
SF SF SF SF SF
DI Trace Bus Debug Bus
JTAG
Reuse SoC tracing instruments to detect software attacks
UART
USB
CPU0
50
51
52
53
54
55
process ID buffer
Signature cache Signature generator
reserved v
56
57
58
– SoC lifecycle – Test and Debug – Motivations
– Debug and SoC – Debug Threats – A secure Debug mechanism
– Software threats – Test based countermeasure – Debug based countermeasure
59
60
61