Breaking Deployed Crypto
The Side Channel Analystβs Way
Daniel Moghimi (@danielmgmi)
04/30/2020 Hardwear.io
Breaking Deployed Crypto The Side Channel Analyst s Way Daniel - - PowerPoint PPT Presentation
Breaking Deployed Crypto The Side Channel Analyst s Way Daniel Moghimi (@danielmgmi) 04/30/2020 Hardwear.io About Me Daniel Moghimi @danielmgmi Security Researcher PhD Student @ WPI Microarchitectural Security Side
Daniel Moghimi (@danielmgmi)
04/30/2020 Hardwear.io
2
3 Encrypt Decrypt Sign m k
c
4 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π‘1 = π1
β1 π¨ + π 1π πππ π
π‘2 = π2
β1 π¨ + π 2π πππ π
5 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π1= π2= ππ π‘1 = πβ1 π¨ + π
1π πππ π
π‘2 = πβ1 π¨ + π 2π πππ π
6 Encrypt Decrypt Sign m k
c πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
π1= π2= ππ π‘1 = πβ1 π¨ + π
1π πππ π
π‘2 = πβ1 π¨ + π 2π πππ π π‘2 β π‘1 = π 2 β π
1 π πππ π
7 Encrypt Decrypt Sign m k
c s
8
10
11
12
13
14
.org/membership/certification/
.org/membership/certification/ tpm-certified-products/
15
16
17
18 CPU PCH CSME fTPM
19
Histogram
CPU PCH CSME fTPM
20
CPU PCH CSME fTPM
21
22 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
23 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
24 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
25 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
26 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
27 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
28 0101000100111111...111 t 4.8 4.84 4.76 4.72 4.67 0000100100111111...111 1101000100111111...111 0000000000111111...111 0000000000001111...111
29
30
π, π‘π) and timing samples π’π.
π, π‘π) with a known bias.
31
32
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
33
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
34
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
35
[1] Dan Boneh and Ramarathnam Venkatesan. Hardness of Computing the Most Significant Bits of Secret Keys in Diffie-Hellman and Related Schemes
β1 β π‘π β1π ππ β π‘π β1π¨ β‘ 0 πππ π
β1π π, πΆπ = βπ‘π β1π¨ β ππ + π΅ππ + πΆπ = 0
π π
LLL/BKZ 36
37
38
VPN Client VPN Server TPM Device
39
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
40
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) 41
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] 42
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] π½πΏπΉ_π΅π£π’βπ ππ‘ππππ‘π[ πππππ‘ππ, (ππ, β¦ ) ] 43
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] 44
π½πΏπΉ_π½ππ½π[ ππ ππππ‘ππ, ππ¦, ππ½, β¦ ]
VPN Client VPN Server TPM Device
π½πΏπΉ_π½ππ½π
π ππ‘ππππ‘π[ ππ ππππ‘ππ, ππ¦, ππ, β¦ ]
π‘π‘βππ ππβπ‘πππ ππ’ = πππΊβ(ππ¦π§) π½πΏπΉ_π΅π£π’β[ πππππ‘ππ½, (ππ, β¦ ) ] π½πΏπΉ_π΅π£π’βπ ππ‘ππππ‘π[ πππππ‘ππ, (ππ, β¦ ) ] 45
46
47
48
[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
49 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
50 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
51 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π»
52 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π» ππ = 7 β 7 Γ π» = 2 2π» + 2π» + π»
53 πΉπ·πΈππ΅ ππππ: π¦1, π§1 = ππ Γ π» π π = π¦1 πππ π π‘π = ππ
β1 π¨ + π ππ πππ π
ππ = 3 β 3 Γ π» = 2π» + π» ππ = 7 β 7 Γ π» = 2 2π» + 2π» + π» ππ = 7 β 23 Γ π» = 2 2(2(2π») + π») + π» + π»
54 πΉπ·πΈππ΅ ππππ: π¦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
55
56 state[i] = state[i] ^ sbox[roundKey[i]] for(int i = 0; i < Bitlength(key); ++i)
57
58
59
60
61
62
63
64
65
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
66 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
67
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
68
https://tpm.fail/ https://www.usenix.org/conference/us enixsecurity20/presentation/moghimi
TPM-FAIL
69 https://github.com/ VernamLab/TPM-Fail https://github.com /UzL-ITS/Microwalk