Overview#

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.

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).

Components#

In total, ChipWhisperer has four layers of open source components:

Hardware#

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 in the “Hardware” section of this site.

Hardware is for the most part open source and design files/schematics can be found either on the ChipWhisperer Capture Github repository, or on a UFO target board repository.

_images/cwlite_basic1.png

Firmware#

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 ChipWhisperer Capture Github repository, with the exception of Husky which has its own ChipWhisperer Husky Github repository.

Target firmware is mostly written in C (though we do have a few FPGA targets with code in Verilog) and can be found in the firmware directory of the ChipWhisperer Github repository.

Software#

ChipWhisperer has an open source Python library for controlling the capture hardware and communicating with the target. On this site you’ll find the Python API documentation, organized in four sections:

The source code for the API is located on the ChipWhisperer Github repository.

For software installation instructions, head over to the installation section.

Tutorials#

The best way to learn ChipWhisperer basics is to follow our Jupyter Notebook tutorials and labs.

By going through our notebooks, you will simultaneously learn (1) the basic mechanics of side-channel and fault attacks, and (2) how to execute these attacks with ChipWhisperer.

Approach these tutorials like homework assignments: most of them require you to figure out some things on your own. The more work you put into it, the more you’ll learn. If you are really stuck, some tutorials have a corresponding “solution” notebook; you can also ask for help on our NewAE Forum.

_images/jupyter_example.png