Remote Timing Attacks on TPMs, AKA TPM-Fail
Daniel Moghimi
Remote Timing Attacks on TPMs, AKA TPM-Fail Daniel Moghimi About - - PowerPoint PPT Presentation
Remote Timing Attacks on TPMs, AKA TPM-Fail Daniel Moghimi About Me Daniel Moghimi @danielmgmi https://moghimi.org Security Researcher PhD Candidate @ WPI Microarchitectural Attacks Side Channels Breaking Crypto
Daniel Moghimi
#BHUSA @BLACKHATEVENTS @DANIELMGMI
2
#BHUSA @BLACKHATEVENTS @DANIELMGMI
3
#BHUSA @BLACKHATEVENTS @DANIELMGMI
4 Encrypt Decrypt Sign m k
c
#BHUSA @BLACKHATEVENTS @DANIELMGMI
5 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π‘1 = π1
β1 π¨ + π 1π πππ π
π‘2 = π2
β1 π¨ + π 2π πππ π
#BHUSA @BLACKHATEVENTS @DANIELMGMI
6 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π1= π2= ππ π‘1 = πβ1 π¨ + π
1π πππ π
π‘2 = πβ1 π¨ + π 2π πππ π
#BHUSA @BLACKHATEVENTS @DANIELMGMI
7 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π1= π2= ππ π‘1 = πβ1 π¨ + π
1π πππ π
π‘2 = πβ1 π¨ + π 2π πππ π π‘2 β π‘1 = π 2 β π
1 π πππ π
#BHUSA @BLACKHATEVENTS @DANIELMGMI
8 Encrypt Decrypt Sign m k
c s
#BHUSA @BLACKHATEVENTS @DANIELMGMI
9
#BHUSA @BLACKHATEVENTS @DANIELMGMI
#BHUSA @BLACKHATEVENTS @DANIELMGMI
11
#BHUSA @BLACKHATEVENTS @DANIELMGMI
12
#BHUSA @BLACKHATEVENTS @DANIELMGMI
13
#BHUSA @BLACKHATEVENTS @DANIELMGMI
14
#BHUSA @BLACKHATEVENTS @DANIELMGMI
15
#BHUSA @BLACKHATEVENTS @DANIELMGMI
.org/membership/certification/
.org/membership/certification/ tpm-certified-products/
16
#BHUSA @BLACKHATEVENTS @DANIELMGMI
17
#BHUSA @BLACKHATEVENTS @DANIELMGMI
18
19
#BHUSA @BLACKHATEVENTS @DANIELMGMI
20
#BHUSA @BLACKHATEVENTS @DANIELMGMI
21 CPU PCH CSME fTPM
#BHUSA @BLACKHATEVENTS @DANIELMGMI
22
Histogram
CPU PCH CSME fTPM
#BHUSA @BLACKHATEVENTS @DANIELMGMI
23
CPU PCH CSME fTPM
#BHUSA @BLACKHATEVENTS @DANIELMGMI
24 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
#BHUSA @BLACKHATEVENTS @DANIELMGMI
25 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
#BHUSA @BLACKHATEVENTS @DANIELMGMI
26 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
#BHUSA @BLACKHATEVENTS @DANIELMGMI
27 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
#BHUSA @BLACKHATEVENTS @DANIELMGMI
28 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
#BHUSA @BLACKHATEVENTS @DANIELMGMI
29 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
3.33 ms
#BHUSA @BLACKHATEVENTS @DANIELMGMI
30
#BHUSA @BLACKHATEVENTS @DANIELMGMI
31
32
#BHUSA @BLACKHATEVENTS @DANIELMGMI
33
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π, π‘π) and timing samples π’π.
π, π‘π) with a known bias.
34
#BHUSA @BLACKHATEVENTS @DANIELMGMI
35
#BHUSA @BLACKHATEVENTS @DANIELMGMI
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
36
#BHUSA @BLACKHATEVENTS @DANIELMGMI
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
37
#BHUSA @BLACKHATEVENTS @DANIELMGMI
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
38
[1] Dan Boneh and Ramarathnam Venkatesan. Hardness of Computing the Most Significant Bits of Secret Keys in Diffie-Hellman and Related Schemes
#BHUSA @BLACKHATEVENTS @DANIELMGMI
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
π π
LLL/BKZ 39
40
#BHUSA @BLACKHATEVENTS @DANIELMGMI
41
42 Timing difference for each window (4.76e8 - 4.72e8)/3600e6 * 1000 = 1.11 ms ping 192.168.1.x average rtt 0.713 ms ping 1.1.1.1 (Cloudflare DNS) average rtt 19.312 ms
#BHUSA @BLACKHATEVENTS @DANIELMGMI
VPN Client VPN Server TPM Device
43
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
44
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) 45
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] 46
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] π½πΏπΉ_π΅π£π’βπ ππ‘ππππ‘π[ πππππ‘ππ, (ππ, β¦ ) ] 47
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] 48
#BHUSA @BLACKHATEVENTS @DANIELMGMI
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] π½πΏπΉ_π΅π£π’βπ ππ‘ππππ‘π[ πππππ‘ππ, (ππ, β¦ ) ] 49
#BHUSA @BLACKHATEVENTS @DANIELMGMI
50
51
#BHUSA @BLACKHATEVENTS @DANIELMGMI
52
[2] F Dall, G De Micheli, T Eisenbarth, D Genkin, N Heninger, A Moghimi, Y Yarom. CacheQuote: Efficiently Recovering Long-term Secrets of SGX EPID via Cache Attacks
#BHUSA @BLACKHATEVENTS @DANIELMGMI
53 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
#BHUSA @BLACKHATEVENTS @DANIELMGMI
54 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
#BHUSA @BLACKHATEVENTS @DANIELMGMI
55 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π»
#BHUSA @BLACKHATEVENTS @DANIELMGMI
56 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π» ππ = 7 β 7 Γ π» = 2 2π» + 2π» + π»
#BHUSA @BLACKHATEVENTS @DANIELMGMI
57 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π» ππ = 7 β 7 Γ π» = 2 2π» + 2π» + π» ππ = 7 β 23 Γ π» = 2 2(2(2π») + π») + π» + π»
#BHUSA @BLACKHATEVENTS @DANIELMGMI
58 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π» ππ = 7 β 7 Γ π» = 2 2π» + 2π» + π» ππ = 7 β 23 Γ π» = 2 2(2(2π») + π») + π» + π» //Scalar Mul: Add & Double Q = 0 R = G for k_b in k: if k_b == 1: Q = add(Q, R) R = double(R) return Q
#BHUSA @BLACKHATEVENTS @DANIELMGMI
59
#BHUSA @BLACKHATEVENTS @DANIELMGMI
60 state[i] = state[i] ^ sbox[roundKey[i]] for(int i = 0; i < Bitlength(key); ++i)
#BHUSA @BLACKHATEVENTS @DANIELMGMI
61
#BHUSA @BLACKHATEVENTS @DANIELMGMI
62
#BHUSA @BLACKHATEVENTS @DANIELMGMI
63
#BHUSA @BLACKHATEVENTS @DANIELMGMI
64
#BHUSA @BLACKHATEVENTS @DANIELMGMI
65
#BHUSA @BLACKHATEVENTS @DANIELMGMI
66
#BHUSA @BLACKHATEVENTS @DANIELMGMI
67
#BHUSA @BLACKHATEVENTS @DANIELMGMI
68
05/15/2019: Report TPM Vuln to STM 05/17/2019: STM Acknowledged 09/12/2019: We verified new version
Post 11/12/2019: HP and Lenovo issued firmware update
#BHUSA @BLACKHATEVENTS @DANIELMGMI
69 02/01/2019: Reported fTPM Vulns to IPSIRT 02/12/2019: Acknowledged Outdated IPP Library 11/12/2019: (CVE-2019- 11090) Firmware Update for CSME
#BHUSA @BLACKHATEVENTS @DANIELMGMI
70
06/22/2018: Report IPP Vulns to IPSIRT 06/25/2018: Acknowledged the Receipt 12/05/2018: CVE-2018-12155 02/01/2019: Report fTPM Vulns to IPSIRT 02/12/2019: Acknowledged Outdated IPP Library 11/12/2019: (CVE-2019- 11090) Firmware Update for CSME
#BHUSA @BLACKHATEVENTS @DANIELMGMI
https://tpm.fail/ https://www.usenix.org/conference/us enixsecurity20/presentation/moghimi
TPM-FAIL
71 https://github.com/ VernamLab/TPM-Fail https://github.com /UzL-ITS/Microwalk