About this project
UPDATE: Check Updates #4 & #5 - you now get more with the rewards! The $225 and higher rewards include stand-offs with cap socket head screws, and the $260 and $300 rewards now include a blank 'breakout board' PCB!
ChipWhisperer® is the first open-source toolchain (GPL licenced) for embedded hardware
security research including side-channel power analysis and glitching.
The innovative synchronous capture technology is unmatched by other
tools, even from commercial vendors. Similar commercial equipment is too
expensive ($30k - $400k), and being closed-source limits usefulness for
academics. Instead this project bridges the gap between academic
research and in-the-trenches engineering. Several peer-reviewed
publications describe the design, matched with hours of hands-on
tutorials for getting started.
The objective of ChipWhisperer is nothing short of revolutionizing the entire embedded security industry. Every designer who uses encryption in their design should be able to perform a side-channel attack, and understand the ramifications of these attacks on their designs. The open-source nature of the ChipWhisperer makes this possible, and my hope is that it becomes the start of a new era of hardware security research.
ChipWhisperer was previously featured as the second-prize winner in the Hackaday Prize 2014, you can see what some of the judges thought about this project, so you don't have to just believe us about how great this is.
Lots of people have tried to design secure systems, and alas there are lots of failures. But what if you did everything correct: no buffer overflows, no unsanitized inputs, no default passwords. Unfortunately this isn't good enough - even perfectly implemented encryption algorithms such as AES-256 will reveal encryption keys. It's not due to incorrect implementation, it's a fundamental artifact of the design.
This has been known for a long time - the first paper on this was published in 1998. But if you are an engineer or independent researcher, tools to get started are expensive, or require you to do a lot of work yourself scripting together lower-cost tools. This project is my attempt to eliminate this problem.
We're eliminating the problem for good by making the tools open source. Because this whole area is an active research area, the tools need to be open source. This isn't a case of attempting to seem sexy by adding the word 'open-source', but placing something of commercial value into the open-source domain, in the hope it spurs a larger community. This includes hours of tutorials on this area, more than just a few board files and some source code.
Side-Channel Analysis Examples
Side channel analysis takes advantage of the fact that changing the state of a digital line uses a small amount of power. We can use this to actually break cryptographic implementations of otherwise secure algorithms (such as AES-128 or AES-256).
For more details see my write-up on the theory of a CPA attack, along with a nice example of step-by-step breaking of the AES using Python from the ChipWhisperer tutorial list. For the attack to work, we basically just need to be able to tell the encryption/decryption algorithm to operate while we monitor the power, and know either the output or input to the system.
This can be done with ~20 power traces on an AVR device for example, so it's not a case of taking an unrealistic number of measurements. For example see a real-time example of me breaking an AES-128 implementation in 120 seconds.
Glitching is another devious attack on embedded systems. This takes advantage of the fact that at some point in your code you'll have a test of the input password, signature, or whatever else. So consider we have this code:
It's actually possible to manipulate the system to cause that check to fail, or for instructions to be skipped. You can glitch a Raspberry Pi as this video shows for example as I show you in the following video:
This attack works with the ChipWhisperer-Lite too (we tested it already!).
What is ChipWhisperer-Lite
ChipWhisperer-Lite brings the cost of side channel analysis and hardware hacking even lower than before - 150x to 1000x cheaper than previous commercial solutions! It'll only be about $180 USD for the KickStarter (NOTE: all prices are in Canadian dollars in the KickStarter rewards, so $225 CAD is about $180 USD).
ChipWhisperer-Lite gives one board that has everything you want - side channel and glitching in your pocket. What fun!
The board uses a Spartan 6 LX9 (as it's available in hand-soldering friendly TQFP), along with a 105 MS/s ADC, low-noise amplifier, Atmel SAM3U chip for high-speed USB communication, MOSFETs for glitch generation, and Atmel XMEGA128 as a target device. This allows you to experiment with cryptographic algorithms as varied as AES-128 in both software and hardware to public-key encryption (NB: final device may not have hardware crypto depending on export requirements, in which case you can still experiment with all sorts of software algorithms).
The analog front-end and FPGA code is similar to that in the full ChipWhisperer unit, meaning the ChipWhisperer-Lite is built on a proven platform - a platform which has been used by defence contractors, research institutions, universities around the world, hobbiests, students, and government research labs.
Not a Digital MacGyver
Generic instruments are all the rage. But this project does not aim to work as a generic instrument, and even though you might think this project can be replaced by a generic instrument, you are wrong. Sorry.
Maybe this project looks a lot like a generic oscilloscope combined with a logic analyzer and pulse generator. But like a raisin cookie you thought was chocolate chip, looks can be deceiving.
As an example, the analog front-end of this device provides up to 55 dB of gain - meaning the full-scale input would be about ±4 mV. The range of input voltages allowed by the ChipWhisperer-Lite is about ±4mV to ±250mV. High-end oscilloscopes typically go down to about ±50 mV full-scale input, and more typical scopes might only go down to ±100 to ±500 mV full-scale (we are talking full-scale remember, not per-division scales).
The ADC on the ChipWhisperer-Lite is a 10-bit device (compared to typical 8-bit for most scopes). This all results in an extremely low-noise measurement environment. As an example, here is a comparison of measuring a small 1 MHz signal with our favourite oscilloscope:
And the same signal with the ChipWhisperer-Lite, note how little noise is present by comparison:
The analog capture is performed synchronously to a device clock, with all sorts of logic to multiply or divide the clock frequency and dynamically adjust the phase relative to an external clock. Even scopes costing $100,000 don't have the synchronous capture abilities offered by the ChipWhisperer-Lite, as they typically can only synchronize to a small range of frequencies (normally a 10 MHz reference, sometimes others are allowed).
For glitch generation, the system can insert glitches into a clock, or generate very short (< 2nS) pulses. Such capabilities would otherwise only be available in high-end pulse or signal generators.
Not Arduino Compatible
If you are looking for something that is Arduino compatible, works with a Raspberry-Pi or BeagleBone, this project might not be for you. I want to be as upfront as possible: this project is designed as a fairly advanced piece of test equipment. While you definitely don't need to be an expert at embedded development to work with this project, it does require you to have patience as you work through the examples, install different open-source software programs, and compile C code. Because this is a new product you might run into errors, for example because I haven't tested this thing with every possible OS version.
This project is designed for anything from 'advanced makers' to embedded or computer engineers. It assumes you aren't thrown for a loop by some Python coding or a little bit of C. Luckily I've already published a whole lot of examples, so you can read through them yourself to decide if ChipWhisperer sounds like something you are interested in.
While you can run through the examples with some limited knowledge of C and Python, the more you can put in the more you'll get out. ChipWhisperer's open-source nature means that you can write entirely new modules on the FPGA, or code new algorithms on the target device such as ECC or RSA.
It's all about the Documentation
ChipWhisperer takes documentation seriously - there is already a number of tutorials dealing with everything from side-channel analysis, to power glitching, to breaking embedded bootloaders. You can see the current state of the documentation online, but note it's already got all sorts of tutorials, most of which are applicable to the ChipWhisperer-Lite.
Building Your Own
This product doesn't use any BGA parts, and makes it reasonable to assemble on your own. It does have 0402 sized resistors and capacitors, so please note this is a fairly advanced SMD assembly product.
There is no kit for the main unit - if you want to build your own you can use the Digikey parts list (just copy and paste!), or order from your favourite supplier. It's too much hassle to kit parts, so I just provide a BOM you can copy-paste into Digikey. The parts cost approximately $90 USD - you don't save too much going DIY, but some people like to be difficult.
Buying the PCB through the Kickstarter means you also get a mylar stencil - this stencil might have small imperfections like a few broken connections between fine-pitch TQFP packages.
The software has been developed as an open-source project over several years. It's still beta - but it works well! Based on Python it's completely cross-platform: Windows, Linux, and Mac are all supported.
Feel free to download and install the software already, you can run some of the tutorials with existing power traces! You can get the software release from ChipWhisperer.com, which also includes links to the source code repository.
Snap to Expand
ChipWhisperer-Lite allows you to snap off the 'target board', giving you two boards: the main measurement tool, and the target device.
Reconnecting them is done with SMA lines and a few cables, which is available as part of the breaker pack:
You can instead connect the ChipWhisperer-Lite to other boards, or some of our existing products such as breakout boards or multi-target boards:
We Lied About the Arduino Stuff
On the topic of add-ons, there actually is going to be an Arduino compatible target board (we call the NOTDUINO). This board uses an Atmel ATMega328P target - meaning you can program the target device from the Arduino environment. But you don't have to - you can just write C code (we provide examples of AES-128 using avr-crypto-lib).
This add-on board is available in kit form - it's all nice through-hole soldering, meaning it's the perfect addition if you like a little soldering to give you that 'I built it myself' good feeling:
Made in Canada
The production board is assembled right here in Nova Scotia, Canada. This means you are getting a high-quality product that was built ethically - no concern about supporting questionable labour standards or companies ignoring environmental rules. The PCB and assembly process is fully RoHS compliant.
Of course this makes fulfilment and quality control easier - we don't have to worry about sending some faceless company thousands of dollars, and can just stop in to see how things are progressing.
High Quality Design
This board aims to be the bees knees of high-quality design. The Micro-USB connector for example uses through-holes for pin strength, here is me hanging 900 grams (2 lbs) off the connector:
We only have the most expert quality control - our QA Manager Luna diligently inspects each device to ISO-K9000 and rejects any that fail to meet her demanding specifications:
The USB interface itself is custom firmware (all open source) based on the Atmel SAM3U microcontroller. This micro contains a lot of features: it communicates with the FPGA and achieves about 350 MBit/second data rates for quick downloads, can reprogram the FPGA in 0.3 seconds with a new bitstream, or can reprogram the XMEGA device on the target board. Even if you don't want side-channel this board makes a pretty nice FPGA development board too!
The USB drivers are signed with a legitimate certificate and use a valid USB VID/PID pair (we joined USB-IF for this project). The board should work as expected - no tricks to get unsigned drivers installed or issues with Windows 8.1.
The USB device features working 'suspend' mode, meaning it can power down sections of the board when your computer goes to sleep.
Play Along without Hardware
ChipWhisperer is a real open-source project. This mean you can even use it without giving us a dime - the documentation includes details of the supported scope modules, and some target devices you can build yourself. While generic scopes may not have as many features as our custom-designed hardware, you might already have one on-hand and want to get started right away!
When we say that our objective for ChipWhisperer is nothing short of revolutionizing the entire embedded security industry we aren't kidding - even if it means encouraging people to not buy our hardware! We hope you will, but as a serious open-source project we aren't too fussed if you already have the right equipment.
- The source code, design files, and wiki is located at http://chipwhisperer.com/
- Read about my project on Hackaday.io, including lots of updates: http://hackaday.io/project/956-ChipWhisperer
- There is a mirror of the GIT repo on github: http://github.com/newaetech/chipwhisperer
- The tutorials are available at http://www.newae.com/sidechannel/cwdocs/
- There is an existing forum at http://www.newae.com/forum
Open Source Stuff
The entire ChipWhisperer project is licensed under the GPL. Certain aspects of the design are licensed under the more permissive BSD license to allow use in commercial products (particularly the code dealing with analog data capture section).
As ChipWhisperer includes extensive amounts of software, documentation, PCB files, and FPGA design files, we may eventually re-release portions under more suitable licenses (i.e. the PCB files under CERN-OHL). This will require more careful splitting of the project, so for now we use the GPL as a catch-all for everything.
Where's $50k going?
Our objective is to do a small production run, which allows us to get the price down. Using Kickstarter for funding means we are not beholden to an investor or bank, and rather than give someone else interest on a loan we can just offer you a cheaper product.
We plan on ordering extra boards - after the Kickstarter these will be offered as a regular product, hopefully through distributors that handle all the logistics for us. Ultimately this will mean a higher selling price than the Kickstarter, so take advantage of this short-lived deal!
This project is being handled under NewAE Technology Inc. This is a very small company which is revolutionizing the hardware security market. Rather than focusing on immediate profit, our vision is for a completely changed design landscape where security is the first thing on design engineers mind, not the last.
Overview of All the Rewards
The following infograph shows you the cost of rewards. Remember are rewards are in Canadian dollars - we've added some approximate exchange rates, but be aware they will fluctuate. Your credit card is charged in Canadian Dollars. We are unable to accept Tim Horton gift cards in lieu of actual money at this time, even though we are located in Canada.
At this time we've added some costs to cover overseas shipping as well, typically $15 CAD outside of North America.
- Kickstarter Finishes - March/April 2015
- Prototypes Shipped - April 2015
- Order placed for Production Units - April 2015
- Production Finished - July 2015
- Ongoing Test and Shipping - August 2015 to September 2015
This schedule is fairly aggressive, which we discuss in the 'risk' section. We have streamlined our reward options to keep this possible, by offering only a single assembled device.
Shipping / Fulfilment Details
We're hoping to get these out ahead of DEFCON, so am aiming for shipment in July. Assume for now things are shipped using standard postal service, which won't be tracked (our Canadian postal service has no low-cost tracked option). This could mean delivery times of 1-8 weeks at worst.
Our hope is instead to use a fulfilment service (such as Fulfilled by Amazon) to ship them to you, without any surprise duty or tax payments. We might have to collect VAT ahead of time if so, but will save you all the extra fees couriers love to charge you! If there are certain export restrictions we can't do that and will be forced to directly mail the boards to you.
Most of our experience dealing with customs has ranked somewhere around 'a fiddle competition with the devil' in terms of difficulty, so we make no promises yet.
Assume you might need to pay duty/tax as applicable. We may require additional information from you for part of the export processing, and it may not be possible to export this product to certain countries. If it's not possible to deliver to your country we will refund your pledge.
About the Team
This project is being run by NewAE Technology Inc., a Canadian company founded in Dec 2013.
This company was founded by Colin O'Flynn and Hilary Taylor. Hilary is responsible for day-to-day operations (aka everything), whereas Colin primarily does some design work when time permits, as he is still working full-time on his PhD.
Hilary has been managing operations at NewAE for over a year now, since it's founding in Dec 2013.
ChipWhisperer is a trademark of NewAE Technology Inc., registered in the United States of America. While this project is open source, you cannot use the ChipWhisperer name without our permission (to sell your own hardware for example).
Risks and challenges
Kickstarter rewards are famously late - anything within 3 months of the expected date is normally pretty amazing! We're hoping to keep this project on track, and there's a number of reasons why we have fairly aggressive timing:
1) Using existing suppliers. The board assembly house is located in Nova Scotia, Canada, and it's one we've used extensively before. Pending a disaster (factory has major equipment malfunction or fire) this should stay on track.
2) Building on already working products. The software and FPGA design being used for the ChipWhisperer-Lite is based entirely on my existing ChipWhisperer product, reducing the risk of fundamental design flaws.
3) Prototyping is done. We've already done a prototype along with a small prototype run for validation of the design. These will be shipped to the beta users, and hopefully any issues solved before the final production run occurs.
4) No stretch goals. We're not adding things that might delay the main production - so no stretch goals, no cases, none of that nonsense. If we get 10x the amount pledges it means 10x the amount of work already, so we're not going to further cause headaches by promising intricately carved balsa-wood figurines to stage your re-enactment of a Harry Potter quidditch match or something.
There's only a few things that could cause catastrophic failure of this project:
1) Facility fire / theft before shipment. We have insurance on our inventory to cover the cost, but it would mean another 2-month delay while boards are being manufactured again.
2) Canadian dollar collapses. We pay our major suppliers in USD (even though they are here in Canada too). We are assuming the dollar stays around $1.00 CAD = $0.80 USD for this project. Realistically if it drops so much that it kills this project there will be much bigger issues with the economy at large, and we'll be too busy fighting over the remaining supplies of maple syrup to answer your emails.
3) That $1 fish taco turns out to be a bad idea and one of us dies of botulism. For the duration of this project we'll avoid any meals costing less than $4 to be safe.
Be aware you are NOT simply preordering some product, you are helping to make a project a reality that wouldn't exist otherwise. We are going to try very hard to meet our goals, but things do happen - an upstream supplier could go out of stock of some needed parts, and it delays the order. We'll keep you updated throughout the fulfilment cycle.Learn about accountability on Kickstarter
Support this project
- (30 days)