New to ChipWhisperer? No problem!
This page will give a brief overview of what ChipWhisperer is, where you can find documentation about different parts of the ChipWhisperer toolchain, as well as some of the major changes that have recently happened to ChipWhisperer.
Consider this page the answer to “Help, I’m confused… there are too many websites that have resources related to ChipWhisperer”.
What is ChipWhisperer?¶
ChipWhisperer is a complete open source toolchain for learning about side channel attacks on embedded devices and validating the side channel resistance of these devices. In particular, ChipWhisperer focuses on power analysis, which uses information leaked by a device’s power consumption to mount an attack, as well as voltage and clock glitching attacks, which briefly disrupt a device’s power or clock to cause unintended behaviour (such as skipping a password check).
In total, ChipWhisperer has four layers of open source components:
ChipWhisperer has scope boards, which are used to mount side channel attacks, as well as target boards, which function as a device under test (DuT). Hardware documentation can be found at https://rtfm.newae.com
ChipWhisperer also includes open source firmware for both scopes and targets.
Scope firmware is written in Verilog (for
the FPGA) and C (USB microcontroller) and can be found in the
hardware/capture sections of the ChipWhisperer
Target firmware is mostly written in C (though we do have
a few FPGA targets with code in Verilog) and can be found
hardware/victims/firmware directory of
the ChipWhisperer Github repository.
ChipWhisperer has an open source Python library for controlling the capture hardware and communicating with the target. ChipWhisperer ReadTheDocs (this website) has the API documentation and installation instructions for this part of the ChipWhisperer toolchain.
The source code for the API is located on the ChipWhisperer Github repository.
Finally, ChipWhisperer also includes Jupyter Notebook tutorials and labs that both teach about side channel attacks that can be performed with ChipWhisperer, as well as showcase how to use the Python API. These tutorials/labs are available in the ChipWhisperer Jupyter Github repository.