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.

All presentations zip | tar.gz