Attacks and countermeasures are typically presented in a one-to-one manner: one attack, one countermeasure. This approach gives a false sense of simplicity of the problem. After all, complex programs have many vulnerabilities and require multiple countermeasures. It may be surprising to discover just how many vulnerabilities can be found even in a simple program.
In this work, I'll present a deep-dive into one case study. Using simple password check on Arm Cortex-M4 I'll show 20+ vulnerabilities in a program that originally only has 10 lines of code. I'll attempt to secure the program against a wide range of side-channel attacks, showing that countermeasures carry heavy trade-offs between number of vulnerabilities, their severity, and unwelcome side-effects in program complexity, portability and performance. As it turns out, defending against multiple side-channel attacks at once is hard.
Entrepreneur since graduating Computer Science in 2010, with specialization in cryptography and reverse-engineering.
Founder of CloudVA since 2021 - a self-funded startup for IoT/embedded security. Providing remote access to side-channel software and hardware.
Founder and CEO of MyreLabs software house since 2010. Providing software services with deep knowledge about underlying hardware: