Git Product home page Git Product logo

facewhisperer's Introduction

FaceWhisperer

FaceWhisperer is a hardware add-on for the ChipWhisperer side-channel analysis tool, for working with devices that primarily communicate over USB. The goal is to create a USB host controller scripted with an experiment, all running totally synchronous with the target. This should give predictable timing each time the experiment is run from a target reset.

One proven use for this is to glitch GET_DESCRIPTOR requests into returning firmware images for devices that don't otherwise have firmware available for inspection.

The experiments are scripted from an ATxmega128 processor, same as the one included on ChipWhisperer-Lite. The USB host is a MAX3241E, inspired by Travis Goodspeed's Facedancer21 tool.

For keeping the target device in sync, this board provides a 12 MHz clock output, an open-collector reset output, and a trigger input with adjustable voltage threshold.

This project is a quick hack that builds on the work and inspiration of several great projects:

This repository includes the hardware design itself, as well as a firmware framework and scripts to integrate with ChipWhisperer.

Prototype PCB, rev A

Hardware Errata

The current PCB design is usable, but there are some changes that still need to be made before I'd recommend anyone manufacture the design:

  • Labels on the silkscreen and copper layers. I was milling the Rev A board, so I kept it simple.
  • The CLK output is rather weak. I used the NC7WZ14 because I had them on hand, but they're just barely up to the task.
  • I originally included the second CLK SMA jack for clock glitching via the CWLite's crowbar FET, but that's silly and this should really just have an XOR on-board for inserting glitches in the target clock without disrupting the facewhisperer itself.
  • The SYNCIN didn't make it into the first board design at all, I had to rework it on.
  • I didn't include headers for the spare GPIOs in the first board, for expediency's sake, but these would be an obviously handy addition.
  • Connector placement is awkward. Rethink this around optimal coax routing.
  • FTDI header for sniffing the serial bus. Jumper for optional transmit. I ended up using an FTDI cable to log the results while also allowing CWLite's serial port to orchestrate the glitching process.
  • Maybe use a better transistor for the reset puller. The 2N7000 was just what I had handy. Also maybe take the LED off the gate, it may have been causing some 100ns-scale glitches in the reset's falling edge.
  • Lots more test points and posts and things for you to grab onto with a logic analyzer.

facewhisperer's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.