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.

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

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 at https://rtfm.newae.com

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

_images/cwlite_basic.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 hardware/capture sections of the ChipWhisperer 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 hardware/victims/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. 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.

Tutorials

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.

_images/jupyter_example.png