Hardware security course
I recently taught a brand new Hardware security course to roughly 70 master’s students at Paderborn University. Since I pretty much had a free hand in shaping the course and making it what I wanted I made it the hardware security course I missed during my bachelor’s and master’s. It contains everything from secure hardware to fault injection. I am now releasing all the materials under CC BY-SA on hwsec.neuromancer.sk, so feel free to browse and get inspired for your own course or learning path.
- 1 Intro
Introduces and motivates the course: secure hardware, side-channel attacks, and cryptography. - 1 Intro (tutorial)
Hands-on experience with cryptographic code: AES, RSA, and ECC. - 2 Smartcards
Smartcards: ISO 7816, JavaCard, protocols, and applications (EMV, eID, eMRTD). - 3 Authenticators
Authenticators: The need for them, from U2F to FIDO2, and evil-maid attacks. - 4 TPMs
TPMs: API, principles, applications (boot integrity, remote attestation), and attacks.
- 5 HSMs,TEEs
HSMs: Properties, tamper resistance, applications. TEEs: threat model, applications, and attacks. - 5 Smartcards (tutorial)
Hands-on experience breaking and reverse-engineering MIFARE Classic. - 6 Timing and cache attacks
Timing attacks: Principles, remote/local, noise. Cache attacks: Caches, Evict+Time, Flush+Reload, Prime+Probe. Constant-time programming: Principles, tools. - 7 Microarchitectural attacks
Microarchitecture: state, speculation, branch prediction, SMT, pre-fetching. Microarchitectural attacks: transient execution, Meltdown, Spectre, and defences. - 8 Physical side channel attacks 1
Invasive attacks: Micro-probing, circuit editing, and reverse-engineering. Non-invasive passive attacks: dynamic/static, vertical/horizontal. Side-channels: power, EM, leakage models. SPA and DPA. - 8 SCA (tutorial)
Hands-on experience breaking and fixing a password check with ChipWhisperer-Nano. - 9 Physical side channel attack defences 1
Countermeasures: algorithmic/hardware/cell level. Hiding: time domain/amplitude domain, random delays, noise generation, current flattening, DPA-resistant logic styles. Masking: boolean/arithmetic/multiplicative. Blinding. - 10 Physical side channel attacks 2
DPA: generalized. CPA. MIA. Higher-order attacks: pre-processing, trace explosion. Profiled attacks: template attacks, deep-learning. Horizontal attacks. Tools and metrics: alignment, TVLA, correlations, SNR, success rate, guessing entropy. - 11 Physical side channel attacks 3
Fault injection: timing, voltage glitching, clock glitching, EMFI, laser, software (Plundervolt/Rowhammmer). Fault attacks: DFA, SFA, SIFA, Bellcore attack, attacks on ECDSA, safe-error attacks. - 12 Physical side channel attack defences 2
Fault attack killchain. Countermeasures: prevention, detection + response, redundancy, randomness, infection. - 12 FA (tutorial)
Hands-on experience voltage glitching with the ChipWhisperer-Nano. - 13 Guest lecture (Thomas Roche)
A talk on: “A Side Journey to Titan” and “EUCLEAK”. - 14 Guest lecture (Lukasz Chmielewski)
A talk on: “SCA-secure ECC in software”. - 15 Certifications and recap
Security certifications: Common Criteria, EUCC, FIPS 140, EMVCo, sec-certs. Recap of the course. - 15 Exam questions (tutorial)
Preparing and discussing exam questions.