Online Course content
Eliminate logical errors
The first line of defense in securing an embedded system is protecting the software from bugs. This course provides guidelines on removing the most widely encountered type of vulnerability for embedded systems: memory corruption. Compared to most other available resources for secure coding, our course is comprehensive, practise oriented and highly engaging.
Harden critical code against faults
Fault attacks influence the intended behavior of a program by changing critical values in memory or the instruction flow of a program. Fault attacks are used to bypass robust security features such as secure boot and authentication mechanisms. This is the first fault injection course created specifically for developers who want to harden embedded systems.
Protect the crypto engines
Protecting sensitive data requires utilizing theoretically secure cryptographic algorithms. Nevertheless, the physical implementation of such algorithms could be susceptible threats such as side channel analysis attacks. This is the first side channel analysis course created specifically for developers. Learn how to protect devices and applications, countermeasures and their cost
- Challenge assumptions: making assumptions is a common but dangerous programming practice, e.g. it can lead to incorrectly validated input. You will learn how software programs are executed in the memory, what happens when a device operates out of bounds and how instantaneous power consumption can be used to extract secret information.
- Find vulnerabilities: because a device or application can be compromised when even a single vulnerability is identified by an attacker, the goal of a developer is to remove all vulnerabilities. You will learn how to eliminate the most common logical errors in software, add extra defense to the critical areas of code, and secure the crypto engines.
- Choose and implement defenses: while there are many possible defense mechanisms, each comes at a cost: execution time, required memory, access to hardware components such as RNGs. You will learn how to analyze the cost and effect tradeoff, and thus be able to make informed strategic decisions.